:root {
    color-scheme: light;
    --blue: #008FD1;
    --blue-dark: #0075ad;
    --ink: #080A0D;
    --panel: #151A1F;
    --muted: #76818d;
    --line: #e8edf1;
    --canvas: #f5f8fa;
    --white: #fff;
    --success: #17845c;
    --danger: #c34444;
    font-family: "DM Sans", "Segoe UI", sans-serif;
    font-synthesis: none;
    text-rendering: optimizeLegibility;
}

* { box-sizing: border-box; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
body { margin: 0; min-width: 320px; background: var(--canvas); color: var(--ink); }
button, input, select { font: inherit; }
button { cursor: pointer; }
.boot-screen { min-height: 100vh; display: grid; place-content: center; justify-items: center; gap: 14px; color: var(--muted); }
.brand-mark { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 15px; background: var(--blue); color: #fff; font: 800 24px Manrope, sans-serif; }

.login-page { position: relative; isolation: isolate; min-height: 100vh; min-height: 100svh; overflow: hidden; background: #050d16; }
.login-aside { position: relative; isolation: isolate; overflow: hidden; display: flex; flex-direction: column; justify-content: space-between; min-height: 100vh; min-height: 100svh; padding: 42px clamp(48px, 6.6vw, 118px); color: #fff; background: radial-gradient(ellipse at 70% 48%, #082846 0, #071827 36%, #050c14 76%); }
.login-aside::before { content: ""; position: absolute; z-index: -1; width: min(74vw, 1080px); aspect-ratio: 1; right: -18%; top: 49%; transform: translateY(-42%); border-radius: 50%; background: radial-gradient(circle at 38% 42%, rgba(0,150,255,.15), rgba(0,113,209,.07) 34%, transparent 68%), radial-gradient(circle, rgba(0,155,255,.8) 1px, transparent 1.5px); background-size: auto, 12px 12px; mask-image: radial-gradient(circle, #000 40%, transparent 71%); opacity: .75; }
.login-aside::after { content: ""; position: absolute; z-index: -1; width: min(70vw, 990px); aspect-ratio: 1; right: -14%; top: 49%; transform: translateY(-42%); border: 1px solid rgba(0,143,209,.42); border-radius: 50%; box-shadow: 0 0 70px rgba(0,143,209,.13), inset 0 0 60px rgba(0,143,209,.09); }
.login-brand-copy { display: grid; gap: 5px; }
.login-brand-copy strong { font-size: 17px; }
.login-brand-copy small { color: #9cacba; font: 700 9px "DM Sans", sans-serif; letter-spacing: .2em; }
.brand-lockup, .login-copy, .login-foot { position: relative; z-index: 1; }
.brand-lockup { display: flex; align-items: center; gap: 13px; font: 700 17px Manrope, sans-serif; letter-spacing: -.03em; }
.brand-lockup .brand-mark { width: 58px; height: 58px; border-radius: 16px; font-size: 29px; box-shadow: 0 8px 24px rgba(0,143,209,.28); }
.login-brand-copy strong { font-size: 21px; }
.login-brand-copy small { font-size: 10px; }
.login-copy { width: min(56vw, 900px); max-width: 900px; margin-top: auto; margin-bottom: auto; padding: 48px 0 60px; }
.eyebrow { color: #34c7ff; text-transform: uppercase; letter-spacing: .24em; font-size: 13px; font-weight: 700; }
.login-copy h1 { max-width: 900px; margin: 23px 0 21px; font: 800 clamp(58px, 5.7vw, 96px)/.99 Manrope, sans-serif; letter-spacing: -.06em; }
.login-copy h1 span { color: #159ff2; }
.login-copy p { max-width: 640px; margin: 0; color: #b6c2cd; font-size: 20px; line-height: 1.65; }
.login-features { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 26px; margin-top: 56px; }
.login-feature { display: grid; justify-items: start; gap: 5px; color: #fff; }
.login-feature > span { display: grid; place-items: center; width: 70px; height: 70px; margin-bottom: 10px; border: 1px solid rgba(255,255,255,.08); border-radius: 19px; color: #24b9ff; background: linear-gradient(145deg, rgba(255,255,255,.09), rgba(255,255,255,.025)); box-shadow: 0 8px 24px rgba(0,0,0,.15); }
.login-feature > span svg { width: 36px; height: 36px; }
.login-feature strong { font-size: 15px; }
.login-feature small { color: #9eabb7; font-size: 13px; line-height: 1.4; }
.login-foot { display: flex; align-items: center; gap: 15px; color: #23b9f7; font-size: 10px; font-weight: 700; letter-spacing: .25em; }
.login-foot span { width: 48px; height: 1px; background: #169bd2; }
.login-main { position: absolute; z-index: 2; inset: 0; display: flex; align-items: center; justify-content: flex-end; padding: clamp(48px, 6.2vw, 112px); pointer-events: none; }
.login-card { width: min(36vw, 560px); min-width: 450px; margin-right: clamp(20px, 3vw, 56px); padding: clamp(38px, 3.6vw, 58px); border: 1px solid rgba(230,237,243,.9); border-radius: 23px; background: #fff; box-shadow: 0 28px 85px rgba(0,0,0,.28); pointer-events: auto; }
.login-card h2 { margin: 14px 0 8px; color: #101820; font: 750 42px Manrope, sans-serif; letter-spacing: -.05em; }
.login-card > p { margin: 0 0 34px; color: #697782; font-size: 17px; }
.login-field { display: grid; gap: 8px; margin-top: 17px; }
.login-field label { color: #34414b; font-size: 11px; font-weight: 700; }
.login-input-wrap { display: flex; align-items: center; gap: 12px; min-height: 54px; padding: 0 14px; border: 1px solid #dfe6ec; border-radius: 11px; color: #84919d; background: #fff; transition: border-color .18s, box-shadow .18s; }
.login-input-wrap:focus-within { border-color: #1599e8; box-shadow: 0 0 0 4px rgba(0,143,209,.1); }
.login-input-wrap > span { display: grid; place-items: center; width: 20px; flex: 0 0 20px; }
.login-input-wrap > span svg { width: 20px; height: 20px; }
.login-input-wrap input { width: 100%; min-width: 0; height: 50px; border: 0; outline: 0; color: #1c2730; background: transparent; font-size: 13px; }
.login-input-wrap input::placeholder { color: #a0abb4; }
.password-toggle { flex: 0 0 auto; border: 0; padding: 7px 0 7px 7px; color: #087cbd; background: transparent; font-size: 10px; font-weight: 700; }
.password-toggle:hover { color: #005d92; }
.login-error { margin: -10px 0 18px; border: 1px solid #f2d5d5; border-radius: 9px; padding: 11px 13px; color: #a73535; background: #fff7f7; font-size: 12px; line-height: 1.45; }
.login-submit { display: flex; align-items: center; justify-content: center; gap: 12px; width: 100%; min-height: 54px; margin-top: 24px; border: 0; border-radius: 11px; color: #fff; background: linear-gradient(105deg, #0877e8, #079be9); box-shadow: 0 9px 20px rgba(0,125,220,.2); font-size: 13px; font-weight: 700; transition: transform .18s, box-shadow .18s; }
.login-submit:hover { transform: translateY(-1px); box-shadow: 0 12px 24px rgba(0,125,220,.28); }
.login-submit:active { transform: translateY(0); }
.login-card-foot { display: flex; justify-content: center; align-items: center; gap: 7px; margin-top: 21px; color: #81909b; font-size: 10px; }
.login-card-foot span { color: #078ecb; font-size: 14px; }
.login-input-wrap { min-height: 60px; }
.login-input-wrap input { height: 56px; font-size: 15px; }
.login-field { gap: 9px; margin-top: 20px; }
.login-field label { font-size: 12px; }
.login-submit { min-height: 60px; margin-top: 29px; font-size: 15px; }
.login-card-foot { margin-top: 24px; font-size: 11px; }

.app-shell { min-height: 100vh; display: grid; grid-template-columns: 248px minmax(0, 1fr); transition: grid-template-columns .2s ease; }
.app-shell.sidebar-collapsed { grid-template-columns: 72px minmax(0, 1fr); }
.sidebar { position: sticky; top: 0; height: 100vh; padding: 25px 16px; color: #fff; background: var(--ink); display: flex; flex-direction: column; }
.sidebar .brand-lockup { padding: 0 10px 34px; }
.sidebar-collapse { display: inline-grid; place-items: center; width: 34px; height: 34px; flex: 0 0 34px; border: 1px solid #e5ebef; border-radius: 9px; color: #53616b; background: #fff; font-size: 24px; line-height: 1; transition: color .18s, background .18s, border-color .18s; }
.sidebar-collapse:hover { border-color: #b9e2f1; color: var(--blue-dark); background: #f2fbfe; }
.nav-label { margin: 0 10px 12px; color: #71808e; font-size: 10px; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; }
.nav-list { display: grid; gap: 5px; }
.nav-item { width: 100%; display: flex; align-items: center; gap: 12px; border: 0; border-radius: 10px; padding: 11px 12px; color: #aab5bf; background: transparent; text-align: left; font-size: 13px; font-weight: 600; transition: .18s ease; }
.nav-item:hover { color: #fff; background: rgba(255,255,255,.07); }
.nav-item.active { color: #fff; background: rgba(0,143,209,.2); box-shadow: inset 3px 0 var(--blue); }
.nav-icon { width: 18px; text-align: center; color: #8da0ae; font-size: 16px; }
.sidebar-bottom { margin-top: auto; border-top: 1px solid rgba(255,255,255,.09); padding: 18px 10px 0; }
.sidebar-bottom p { margin: 0; color: #8997a3; font-size: 11px; line-height: 1.6; }
.sidebar-collapsed .sidebar { padding-right: 10px; padding-left: 10px; }
.sidebar-collapsed .sidebar .brand-lockup { justify-content: center; padding-right: 0; padding-left: 0; }
.sidebar-collapsed .sidebar .brand-lockup > span:not(.brand-mark), .sidebar-collapsed .nav-label, .sidebar-collapsed .nav-text, .sidebar-collapsed .sidebar-bottom { display: none; }
.sidebar-collapsed .nav-item { justify-content: center; padding-right: 6px; padding-left: 6px; }
.sidebar-collapsed .nav-icon { width: auto; font-size: 19px; }

.workspace { min-width: 0; }
.topbar { height: 74px; display: flex; align-items: center; justify-content: space-between; padding: 0 clamp(22px, 2vw, 38px); border-bottom: 1px solid var(--line); background: rgba(255,255,255,.88); }
.crumb { color: var(--muted); font-size: 12px; }
.top-actions { display: flex; align-items: center; gap: 18px; }
.support-notification-button { position:relative; display:grid; place-items:center; width:38px; height:38px; border:1px solid var(--line); border-radius:11px; color:#536574; background:#fff; font-size:19px; cursor:pointer; }
.support-notification-button:hover { color:var(--blue-dark); border-color:#acd7e8; background:#f4fbfe; }
.support-notification-count { position:absolute; top:-5px; right:-5px; min-width:18px; height:18px; display:grid; place-items:center; padding:0 4px; border:2px solid #fff; border-radius:99px; color:#fff; background:#087cb5; font-size:9px; font-weight:800; }
.support-notification-list { display:grid; gap:8px; }
.notification-dialog { width:min(720px,calc(100vw - 28px)); }
.notification-filters { display:flex; gap:8px; flex-wrap:wrap; margin:0 0 16px; }
.notification-filters .button { min-height:36px; padding:8px 13px; font-size:11px; }
.notification-filters .button.active { border-color:#81c5e4; color:#006f9f; background:#e9f7fd; }
.notification-pagination { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; margin-top:15px; color:#697b89; font-size:11px; }
.notification-pagination>div { display:flex; align-items:center; gap:9px; flex-wrap:wrap; }
.notification-pagination .button { min-height:34px; padding:7px 11px; font-size:11px; }
.notification-pagination .button:disabled { opacity:.45; cursor:not-allowed; }
.support-notification-item { display:flex; align-items:center; gap:12px; width:100%; padding:13px; border:1px solid var(--line); border-radius:11px; color:var(--ink); background:#fff; text-align:left; cursor:pointer; }
.support-notification-item:hover { border-color:#acd7e8; background:#f6fbfd; }
.support-notification-item.unread { background:#f1f9fc; }
.support-notification-dot { width:9px; height:9px; flex:0 0 9px; border-radius:50%; background:transparent; }
.support-notification-item.unread .support-notification-dot { background:#0784c3; box-shadow:0 0 0 3px #d5eef8; }
.support-notification-main { display:grid; min-width:0; flex:1; gap:4px; }
.support-notification-main strong { font-size:12px; }
.support-notification-main span { overflow:hidden; color:#52616c; font-size:12px; text-overflow:ellipsis; white-space:nowrap; }
.support-notification-main small { color:var(--muted); font-size:10px; }
.support-notification-empty { padding:26px; color:var(--muted); text-align:center; font-size:13px; }
@media(max-width:560px){.notification-pagination{align-items:flex-start;flex-direction:column}.notification-pagination>div{justify-content:space-between;width:100%}}
.notification-preferences { display:grid; gap:8px; }
.notification-preference { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:13px 14px; border:1px solid var(--line); border-radius:11px; background:#fff; cursor:pointer; }
.notification-preference span { display:grid; gap:4px; }
.notification-preference strong { color:var(--ink); font-size:12px; }
.notification-preference small { color:var(--muted); font-size:11px; }
.notification-preference input { width:18px; height:18px; flex:0 0 18px; accent-color:#0784c3; cursor:pointer; }
.user-chip { display: flex; align-items: center; gap: 10px; }
.avatar { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; color: #006b9e; background: #dff4fc; font: 700 12px Manrope, sans-serif; }
.user-name { font-size: 12px; font-weight: 700; }
.user-role { display: block; margin-top: 2px; color: var(--muted); font-size: 10px; font-weight: 400; }
.content { width: 100%; max-width: none; min-width: 0; margin: 0; padding: 34px clamp(22px, 2vw, 38px) 60px; }
.page-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin-bottom: 28px; }
.page-heading h1 { margin: 6px 0 5px; font: 700 clamp(25px, 3vw, 34px) Manrope, sans-serif; letter-spacing: -.045em; }
.page-heading p { margin: 0; color: var(--muted); font-size: 13px; }
.vacation-heading-actions { display: flex; align-items: flex-end; justify-content: flex-end; gap: 12px; flex-wrap: wrap; }
@media(max-width:760px) { .vacation-heading-actions { width: 100%; justify-content: flex-start; } }
.section-kicker { color: var(--blue-dark); font-size: 10px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }

.button { display: inline-flex; justify-content: center; align-items: center; gap: 8px; min-height: 40px; border: 1px solid transparent; border-radius: 9px; padding: 0 15px; font-size: 12px; font-weight: 700; transition: .18s ease; }
.button-primary { color: #fff; background: var(--blue); box-shadow: 0 5px 12px rgba(0,143,209,.16); }
.button-primary:hover { background: var(--blue-dark); transform: translateY(-1px); }
.button-secondary { color: #39444d; background: #fff; border-color: var(--line); }
.button-secondary:hover { border-color: #bdcbd4; background: #fbfdfe; }
.button-quiet { min-height: 34px; color: #67727c; background: transparent; padding: 0 9px; }
.button-quiet:hover { color: var(--blue-dark); background: #eaf7fc; }
.button-danger { color: var(--danger); background: #fff; border-color: #f0d9d9; }
.button:disabled { opacity: .5; cursor: wait; }

.stat-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 15px; margin-bottom: 22px; }
.stat-card, .panel { border: 1px solid var(--line); border-radius: 13px; background: #fff; box-shadow: 0 5px 20px rgba(19,38,54,.025); }
.stat-card { padding: 20px 21px; }
.stat-card-button { width: 100%; color: inherit; font: inherit; text-align: left; cursor: pointer; transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease; }
.stat-card-button:hover { border-color: #b8e3f4; box-shadow: 0 8px 24px rgba(19,38,54,.08); transform: translateY(-1px); }
.stat-card-button:focus-visible { outline: 3px solid rgba(0,143,209,.32); outline-offset: 3px; }
.stat-grid-dashboard { grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); }
.schedule-publish-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.stat-card-featured { border-color: #b8e3f4; background: linear-gradient(135deg, #f0faff, #fff 72%); }
.stat-card-featured .stat-value { color: var(--blue-dark); }
.schedule-actual-panel { margin: 0 0 18px; }
.schedule-actual-stats { margin: 0 0 15px; }
.schedule-actual-stats .stat-value { font-size: 21px; }
.schedule-actual-note { margin: 12px 0 0; line-height: 1.5; }
.stat-top { display: flex; align-items: center; justify-content: space-between; color: var(--muted); font-size: 11px; font-weight: 600; }
.stat-icon { display: grid; place-items: center; width: 32px; height: 32px; border-radius: 9px; color: var(--blue-dark); background: #e7f7fc; font-size: 15px; }
.stat-value { margin-top: 16px; font: 700 29px Manrope, sans-serif; letter-spacing: -.05em; }
.stat-note { margin-top: 3px; color: #8a949c; font-size: 10px; }
.dashboard-grid { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(260px, .75fr); gap: 15px; }
.dashboard-grid-single { grid-template-columns: minmax(0, 1fr); }
.panel { padding: 21px; }
.panel-heading { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-bottom: 18px; }
.panel-heading h2 { margin: 0; font: 700 15px Manrope, sans-serif; }
.panel-heading p { margin: 4px 0 0; color: var(--muted); font-size: 11px; }
.welcome-panel { min-height: 168px; overflow: hidden; position: relative; color: #fff; background: linear-gradient(115deg, #111820, #18232d 70%, #073b55); border: 0; }
.welcome-panel::after { content: ""; position: absolute; right: 20px; top: 50%; width: clamp(112px, 22%, 178px); aspect-ratio: 372 / 366; transform: translateY(-50%); background: url("/assets/favicon.png?v=brand-20261017") center / contain no-repeat; opacity: .2; pointer-events: none; }
.welcome-panel > * { position: relative; z-index: 1; }
.welcome-panel h2 { margin: 0 0 9px; font: 700 22px Manrope, sans-serif; letter-spacing: -.04em; }
.welcome-panel p { max-width: 540px; margin: 0; color: #b7c3cc; font-size: 12px; line-height: 1.7; }
@media (max-width: 600px) { .welcome-panel::after { width: 112px; right: 12px; opacity: .12; } }
.quick-actions { display: grid; gap: 9px; }
.quick-action { display: flex; align-items: center; justify-content: space-between; width: 100%; min-height: 51px; padding: 0 12px; border: 1px solid var(--line); border-radius: 9px; color: #313d46; background: #fff; text-align: left; font-size: 12px; font-weight: 600; }
.quick-action:hover { border-color: #b6e1f0; background: #f4fbfe; }
.arrow { color: var(--blue); font-size: 16px; }
.dashboard-team-list { display: grid; gap: 8px; }
.dashboard-team-row { display: flex; align-items: center; gap: 11px; width: 100%; min-width: 0; padding: 9px 11px; border: 1px solid var(--line); border-radius: 9px; background: #fff; color: var(--ink); text-align: left; }
.dashboard-team-row:hover { border-color: #b6e1f0; background: #f4fbfe; }
.dashboard-team-row:focus-visible { outline: 3px solid rgba(0,143,209,.2); outline-offset: 2px; }
.dashboard-team-row .arrow { margin-left: auto; }
.dashboard-team-meta { display: grid; min-width: 0; gap: 3px; }
.dashboard-team-meta strong, .dashboard-team-meta small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dashboard-team-meta strong { font-size: 12px; }
.dashboard-team-meta small, .dashboard-team-caption { color: var(--muted); font-size: 11px; }
.dashboard-team-caption { margin: 10px 0 14px; }

.toolbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 14px; }
.task-filter-label { display: flex; align-items: center; gap: 10px; color: var(--muted); font-size: 11px; font-weight: 600; }
.task-filter-label select { min-width: 205px; min-height: 38px; border: 1px solid var(--line); border-radius: 9px; padding: 0 11px; color: var(--ink); background: #fff; font: inherit; }
.task-filter-label select:focus-visible { outline: 3px solid rgba(0,143,209,.2); border-color: var(--blue); }
.absence-toolbar { flex-wrap: wrap; justify-content: flex-start; }
.absence-toolbar #absence-result-count { margin-left: auto; }
.absence-date-filter { display: grid; gap: 3px; color: var(--muted); font-size: 10px; font-weight: 600; }
.absence-date-filter input { width: 145px; height: 38px; border: 1px solid var(--line); border-radius: 9px; padding: 0 9px; color: var(--ink); background: #fff; font-size: 11px; }
.absence-date-filter input:focus-visible { outline: 3px solid rgba(0,143,209,.2); border-color: var(--blue); }
.search-wrap { position: relative; width: min(340px, 100%); }
.search-wrap::before { content: "⌕"; position: absolute; left: 12px; top: 7px; color: #82909a; font-size: 20px; }
.search-input { width: 100%; height: 40px; padding: 0 12px 0 35px; border: 1px solid var(--line); border-radius: 9px; outline: none; color: var(--ink); background: #fff; font-size: 12px; }
.search-input:focus, .field input:focus, .field select:focus { border-color: var(--blue); box-shadow: 0 0 0 3px rgba(0,143,209,.1); }
.people-select-tools { display: grid; gap: 7px; padding: 10px; border: 1px solid var(--line); border-radius: 10px; background: #f8fbfd; }
.people-select-tools .search-wrap { display: block; width: 100%; }
.people-select-tools .search-input { padding-left: 35px; font-size: 12px; }
.people-select-pager { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.people-select-pager > span { color: var(--muted); font-size: 10px; line-height: 1.5; }
.people-select-pager > div { display: flex; gap: 5px; flex-shrink: 0; }
.people-select-pager .button { min-height: 28px; height: 28px; min-width: 30px; padding: 0 8px; }
.error-reference-tools { display: flex; justify-content: center; flex-wrap: wrap; gap: 9px; margin: 12px 0 18px; }
.document-toolbar { justify-content: flex-start; flex-wrap: wrap; }
.document-toolbar .search-wrap { flex: 0 1 400px; width: min(400px, 100%); }
.document-toolbar #document-result-count { margin-top: 0; margin-left: auto; }
.document-toolbar select:focus-visible { outline: 3px solid rgba(0,143,209,.15); outline-offset: 1px; border-color: var(--blue); }
@media (max-width: 760px) {
    .document-toolbar .search-wrap { flex: none; width: 100%; }
    .document-toolbar .employee-filter-label, .document-toolbar select { width: 100%; }
    .document-toolbar #document-result-count { width: 100%; margin-left: 0; }
}
.table-wrap { overflow-x: auto; border: 1px solid var(--line); border-radius: 11px; background: #fff; }
table { width: 100%; border-collapse: collapse; text-align: left; }
th { padding: 12px 15px; color: #7b8790; background: #fafcfd; border-bottom: 1px solid var(--line); font-size: 9px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; white-space: nowrap; }
td { padding: 13px 15px; border-bottom: 1px solid #eff2f4; color: #34414b; font-size: 11px; vertical-align: middle; }
tr:last-child td { border-bottom: 0; }
tbody tr:hover { background: #fbfdfe; }
.person-cell { display: flex; align-items: center; gap: 10px; min-width: 180px; }
.person-main { display: grid; min-width: 0; gap: 2px; }
.person-main .subtext { margin-top: 0; }
.person-dot { display: grid; place-items: center; width: 31px; height: 31px; flex: 0 0 31px; border-radius: 9px; color: #0876a7; background: #e5f6fc; font-size: 10px; font-weight: 700; }
.person-name { color: #17212a; font-weight: 700; }
.subtext { display: block; margin-top: 3px; color: #8b969f; font-size: 10px; }
.badge { display: inline-flex; align-items: center; gap: 5px; border-radius: 20px; padding: 5px 8px; color: #197451; background: #e8f7ef; font-size: 9px; font-weight: 700; white-space: nowrap; }
.badge::before { content: ""; width: 5px; height: 5px; border-radius: 50%; background: currentColor; }
.badge-muted { color: #727d86; background: #f0f2f4; }
.table-actions { display: flex; align-items: center; justify-content: flex-end; gap: 3px; white-space: nowrap; }
.time-entry-actions { white-space: nowrap; }
.time-entry-actions .button { margin: 2px 2px 2px 0; }
.time-entry-history { display: grid; gap: 12px; }
.time-entry-history-item { border: 1px solid var(--line); border-radius: 10px; padding: 14px; background: #fff; }
.time-entry-history-item > p { margin: 7px 0 0; color: var(--muted); font-size: 11px; line-height: 1.5; }
.time-entry-history-comparison { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-top: 10px; }
.time-entry-history-snapshot { border-radius: 8px; padding: 10px; background: #f8fafb; font-size: 11px; }
.time-entry-history-reason { padding-top: 9px; border-top: 1px solid var(--line); }
.time-entry-history-values { display: grid; grid-template-columns: auto 1fr; gap: 5px 12px; margin: 12px 0 0; font-size: 11px; }
.time-entry-history-values dt { color: var(--muted); }
.time-entry-history-values dd { margin: 0; color: var(--ink); }
@media (max-width: 600px) { .time-entry-history-comparison { grid-template-columns: 1fr; } }
.empty-state { padding: 48px 22px; color: var(--muted); text-align: center; font-size: 12px; }
.empty-state strong { display: block; margin-bottom: 6px; color: #27333d; font: 700 15px Manrope, sans-serif; }
.loading { padding: 42px; color: var(--muted); text-align: center; font-size: 12px; }

.field-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.field { display: grid; gap: 6px; }
.field.full { grid-column: 1 / -1; }
.field label { color: #65717b; font-size: 10px; font-weight: 700; }
.field input, .field select, .field textarea { width: 100%; min-height: 41px; border: 1px solid #dfe6eb; border-radius: 8px; padding: 0 11px; outline: none; color: #202a32; background: #fff; font: inherit; font-size: 12px; }
.field textarea { min-height: 82px; padding: 10px 11px; resize: vertical; }
.form-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 22px; }
#employee-form .employee-account-hint { margin: 16px 0 -10px; line-height: 1.5; }
#employee-form .form-actions { flex-wrap: wrap; }
dialog { width: min(600px, calc(100vw - 28px)); max-height: min(88vh, 760px); overflow-y: auto; border: 0; border-radius: 15px; padding: 0; color: var(--ink); box-shadow: 0 24px 80px rgba(5,18,28,.26); }
dialog::backdrop { background: rgba(5,12,18,.54); backdrop-filter: blur(3px); }
.dialog-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; padding: 22px 24px 18px; border-bottom: 1px solid var(--line); }
.dialog-head h2 { margin: 0; font: 700 19px Manrope, sans-serif; letter-spacing: -.03em; }
.dialog-head p { margin: 5px 0 0; color: var(--muted); font-size: 11px; }
.icon-button { width: 30px; height: 30px; border: 0; border-radius: 8px; color: #69747d; background: #f1f4f6; font-size: 18px; }
.dialog-body { padding: 21px 24px 24px; }
.notice { margin-bottom: 15px; border-radius: 8px; padding: 11px 13px; color: #7a4d12; background: #fff6e5; font-size: 11px; line-height: 1.55; }
.form-error { margin: 0 0 16px; border: 1px solid #f1d0d0; border-radius: 9px; padding: 12px 14px; color: #9c3434; background: #fff6f6; font-size: 12px; line-height: 1.5; }
.form-error[hidden] { display: none; }
.absence-types-dialog { width: min(920px, calc(100vw - 28px)); }
.absence-type-rules { display: grid; gap: 12px; margin: 20px 0; }
.absence-type-rules > label { display: flex; align-items: flex-start; gap: 11px; padding: 14px; border: 1px solid var(--line); border-radius: 10px; background: #f8fbfd; font-size: 12px; }
.absence-type-rules input { margin-top: 3px; accent-color: var(--blue); }
.absence-type-rules span { display: grid; gap: 4px; }
.absence-type-rules small { color: var(--muted); font-size: 11px; line-height: 1.6; }
#absence-type-form .form-actions, .absence-types-dialog .form-actions { flex-wrap: wrap; }
#absence-type-form .field-grid { align-items: start; }
#absence-type-form [data-absence-type-reload][hidden] { display: none; }
#absence-type-form [data-absence-credit-fixed][hidden] { display: none; }
#absence-type-form [data-absence-credit-change][hidden] { display: none; }
.absence-credit-settings { margin: 20px 0; padding: 16px; border: 1px solid var(--line); border-radius: 10px; background: #f8fbfd; }
.absence-credit-settings h3 { margin: 0 0 9px; color: var(--ink); font-size: 14px; }
.absence-credit-settings .subtext { line-height: 1.7; overflow-wrap: anywhere; }
.absence-approval-summary { display: grid; gap: 5px; padding: 14px 16px; margin-bottom: 18px; border: 1px solid var(--line); border-radius: 10px; background: #f8fbfd; font-size: 13px; }
.absence-approval-summary small { color: var(--muted); font-size: 11px; }
#absence-approval-correction-form .form-actions { flex-wrap: wrap; }
.absence-approval-history-list { margin-top: 22px; padding-top: 16px; border-top: 1px solid var(--line); }
.absence-approval-history-list h3 { font-size: 13px; }
.absence-approval-history { display: grid; gap: 5px; padding: 12px 14px; border: 1px solid var(--line); border-radius: 10px; margin-top: 10px; font-size: 12px; }
.absence-approval-history p { margin: 5px 0; white-space: pre-wrap; overflow-wrap: anywhere; line-height: 1.6; }
.absence-approval-history small { color: var(--muted); font-size: 11px; }
.organisation-section { padding: 22px; border: 1px solid var(--line); border-radius: 15px; background: #fff; box-shadow: 0 6px 22px rgba(19,38,54,.035); }
.organisation-tabs { display: inline-flex; gap: 5px; padding: 5px; border: 1px solid #e9eef3; border-radius: 12px; background: #f4f7fa; }
.organisation-tab { display: inline-flex; align-items: center; justify-content: center; gap: 9px; min-height: 42px; padding: 0 18px; border: 1px solid transparent; border-radius: 9px; background: transparent; color: #657480; font: inherit; font-size: 12px; font-weight: 700; }
.organisation-tab:hover { color: var(--blue-dark); background: #eaf3f9; }
.organisation-tab.is-active { color: var(--blue-dark); border-color: #e4edf4; background: #fff; box-shadow: 0 3px 9px rgba(19,38,54,.055); }
.organisation-tab:focus-visible { outline: 2px solid var(--blue); outline-offset: 3px; }
.organisation-tab-count { display: inline-flex; align-items: center; justify-content: center; min-width: 23px; min-height: 21px; padding: 2px 6px; border-radius: 6px; background: #e9eef3; color: #657480; font-size: 10px; }
.organisation-tab.is-active .organisation-tab-count { color: var(--blue-dark); background: #e6f5fc; }
.organisation-explanation { margin: 24px 0 20px; }
.organisation-explanation strong { color: #24333f; font-size: 15px; font-weight: 700; }
.organisation-explanation p { max-width: 900px; margin: 7px 0 0; color: var(--muted); font-size: 12px; line-height: 1.7; }
.organisation-toolbar { flex-wrap: wrap; justify-content: flex-start; }
.organisation-toolbar .search-wrap { flex: 0 1 390px; }
.organisation-toolbar #organisation-count { margin-left: auto; }
.organisation-table-wrap table { min-width: 680px; }
.organisation-table-wrap th:first-child { width: 25%; }
.organisation-table-wrap td { padding-top: 17px; padding-bottom: 17px; }
.organisation-name { display: flex; align-items: center; gap: 11px; min-width: 145px; color: #1f2d37; font-size: 12px; }
.organisation-name strong { overflow-wrap: anywhere; }
.organisation-item-icon { display: grid; place-items: center; flex: 0 0 35px; width: 35px; height: 35px; border: 1px solid #daf0fa; border-radius: 10px; color: #087caf; background: #eef9fe; font-size: 20px; }
.organisation-description { width: 36%; min-width: 150px; max-width: 460px; color: #73808c; line-height: 1.65; white-space: pre-wrap; overflow-wrap: anywhere; }
.organisation-scope { display: inline-block; max-width: 200px; color: #5e6e7a; font-size: 11px; line-height: 1.5; overflow-wrap: anywhere; }
.organisation-assignment-count { color: #2d3c47; font-size: 14px; font-weight: 700; }
.organisation-row-actions .button { min-height: 34px; padding: 0 10px; font-size: 11px; }
.organisation-row-actions .button:hover { background: #edf6fb; }
.organisation-footnote { margin: 17px 0 0; color: #8895a0; font-size: 10px; line-height: 1.6; }
.organisation-status-summary { display: grid; gap: 6px; margin-bottom: 16px; padding: 16px; border: 1px solid var(--line); border-radius: 10px; background: #f8fbfd; }
.organisation-status-summary strong { font-size: 14px; overflow-wrap: anywhere; }
.organisation-status-summary span { color: var(--muted); font-size: 11px; }
.organisation-dialog .form-actions { flex-wrap: wrap; }
.organisation-assignment-link { display: flex; align-items: center; flex-wrap: wrap; gap: 10px 14px; margin: 17px 0 12px; padding: 12px; border: 1px solid #e3eef5; border-radius: 10px; background: #f7fbfe; }
.organisation-assignment-link .subtext { flex: 1 1 220px; margin: 0; line-height: 1.6; }
@media (max-width: 650px) {
    .organisation-section { padding: 14px; border-radius: 12px; }
    .organisation-tabs { display: flex; }
    .organisation-tab { flex: 1 1 0; min-width: 0; padding: 0 8px; }
    .organisation-explanation { margin-top: 20px; }
    .organisation-toolbar .search-wrap { flex: 0 1 auto; width: 100%; max-width: none; }
    .organisation-toolbar #organisation-count { margin-left: 0; }
    .organisation-dialog .form-actions .button { flex: 1 1 180px; }
    .organisation-assignment-link .button { width: 100%; }
}
.toast-region { position: fixed; right: 20px; bottom: 20px; z-index: 10; display: grid; gap: 8px; }
.toast { max-width: 360px; border: 1px solid #cce9dc; border-radius: 10px; padding: 12px 15px; color: #176646; background: #f2fbf6; box-shadow: 0 10px 30px rgba(10,30,20,.12); font-size: 12px; }
.toast.error { border-color: #f1d0d0; color: #9c3434; background: #fff6f6; }
.mobile-menu { display: none; border: 0; color: var(--ink); background: transparent; font-size: 20px; }

@media (max-width: 980px) {
    .app-shell { grid-template-columns: 210px minmax(0,1fr); }
    .content { padding: 28px 24px 48px; }
    .topbar { padding: 0 24px; }
    .dashboard-grid { grid-template-columns: 1fr; }
    .login-aside { padding-right: 42px; padding-left: 42px; }
    .login-copy { width: 53vw; }
    .login-copy h1 { font-size: clamp(48px, 5.3vw, 70px); }
    .login-main { padding: 42px; }
    .login-card { width: 42vw; min-width: 380px; margin-right: 0; padding: 34px; }
}
@media (max-width: 760px) {
    .login-page { min-height: 100vh; min-height: 100svh; overflow: visible; background: #06111d; }
    .login-aside { min-height: auto; padding: 24px 26px 12px; background: radial-gradient(ellipse at 80% 44%, #092c48 0, #071827 42%, #050c14 82%); }
    .login-aside::before, .login-aside::after { width: 440px; right: -240px; top: 58%; }
    .login-brand-copy strong { font-size: 18px; }
    .brand-lockup .brand-mark { width: 46px; height: 46px; border-radius: 13px; font-size: 23px; }
    .login-copy { width: 100%; max-width: 610px; padding: 46px 0 33px; }
    .login-copy h1 { max-width: 600px; margin: 14px 0 12px; font-size: clamp(39px, 8vw, 58px); }
    .login-copy p { max-width: 500px; margin-bottom: 0; font-size: 15px; }
    .eyebrow { font-size: 10px; }
    .login-features { grid-template-columns: repeat(2, minmax(0,1fr)); gap: 17px 22px; margin-top: 30px; }
    .login-feature > span { width: 48px; height: 48px; margin: 0; border-radius: 13px; }
    .login-feature > span svg { width: 25px; height: 25px; }
    .login-feature strong { font-size: 12px; }
    .login-feature small { font-size: 10px; }
    .login-foot { display: none; }
    .login-main { position: relative; inset: auto; justify-content: center; padding: 0 20px 40px; }
    .login-card { width: min(100%, 500px); min-width: 0; margin-right: 0; padding: 32px 27px; }
    .login-card h2 { font-size: 35px; }
    .login-card > p { margin-bottom: 25px; font-size: 14px; }
    .app-shell { display: block; }
    .sidebar { position: fixed; z-index: 5; left: -270px; width: 248px; transition: left .2s ease; box-shadow: 10px 0 35px rgba(0,0,0,.15); }
    .sidebar.open { left: 0; }
    .app-shell.sidebar-collapsed .sidebar { padding-right: 16px; padding-left: 16px; }
    .app-shell.sidebar-collapsed .sidebar .brand-lockup { justify-content: flex-start; padding-right: 10px; padding-left: 10px; }
    .app-shell.sidebar-collapsed .sidebar .brand-lockup > span:not(.brand-mark), .app-shell.sidebar-collapsed .nav-label, .app-shell.sidebar-collapsed .nav-text, .app-shell.sidebar-collapsed .sidebar-bottom { display: initial; }
    .app-shell.sidebar-collapsed .sidebar-bottom { display: block; }
    .app-shell.sidebar-collapsed .nav-item { justify-content: flex-start; padding: 11px 12px; }
    .app-shell.sidebar-collapsed .nav-icon { width: 18px; font-size: 16px; }
    .mobile-menu { display: inline-grid; place-items: center; }
    .sidebar-collapse { display: none; }
    .topbar { height: 62px; padding: 0 17px; }
    .content { padding: 24px 16px 40px; }
    .page-heading { align-items: flex-start; flex-direction: column; margin-bottom: 20px; }
    .page-heading .button { width: 100%; }
    .stat-grid { grid-template-columns: 1fr; gap: 9px; }
    .stat-card { display: flex; align-items: center; justify-content: space-between; padding: 15px; }
    .stat-value { margin: 0; font-size: 24px; }
    .stat-note { display: none; }
    .toolbar { align-items: stretch; flex-direction: column; }
    .task-filter-label { align-items: stretch; flex-direction: column; }
    .task-filter-label select { width: 100%; }
    .search-wrap { width: 100%; }
    .absence-toolbar #absence-result-count { margin-left: 0; }
    .absence-date-filter { display: flex; align-items: center; justify-content: space-between; }
    .absence-date-filter input { width: min(220px, 70%); }
    .toolbar .button { width: 100%; }
    .field-grid { grid-template-columns: 1fr; }
    .field.full { grid-column: auto; }
    .user-name-block { display: none; }
}
@media (max-width: 380px) {
    .login-aside { padding-right: 20px; padding-left: 20px; }
    .login-features { column-gap: 10px; }
    .login-card { padding: 27px 20px; }
}

.password-hint { margin: 10px 0 0; color: #71808b; font-size: 12px; line-height: 1.5; }
#first-password-form > .button-quiet { display: block; margin: 14px auto 0; }
.role-manage-list { display: grid; gap: 10px; max-height: 55vh; overflow: auto; }
.role-manage-card { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding: 15px; border: 1px solid var(--line, #e4e9ee); border-radius: 12px; background: #fff; }
.role-manage-card > div { display: grid; gap: 4px; min-width: 0; }
.role-manage-card > div > strong { color: var(--ink, #16212a); font-size: 14px; }
.role-manage-card small { color: var(--muted, #74818b); font-size: 11px; line-height: 1.45; }
.role-permission-summary { color: var(--muted, #65737e); font-size: 11px; line-height: 1.55; }
.role-protected-notice { margin: 16px 0; padding: 13px 15px; border: 1px solid #cde7f3; border-radius: 10px; color: #25556e; background: #eff9fd; font-size: 12px; line-height: 1.6; }
.role-protected-notice p { margin: 4px 0 0; }
.permission-groups { display: grid; gap: 13px; max-height: min(52vh, 520px); overflow: auto; margin-top: 18px; padding-right: 5px; }
.permission-group { display: grid; gap: 8px; min-width: 0; margin: 0; padding: 13px; border: 1px solid var(--line, #e4e9ee); border-radius: 12px; }
.permission-group legend { padding: 0 6px; color: var(--ink, #16212a); font-size: 12px; font-weight: 700; }
.permission-option { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 9px; border-radius: 8px; background: #f7f9fb; }
.permission-option label { display: flex; align-items: flex-start; gap: 10px; min-width: 0; flex: 1; cursor: pointer; }
.permission-option input { width: 16px; height: 16px; min-height: 16px; margin: 2px 0 0; accent-color: #087fe0; flex: 0 0 16px; }
.permission-option select { width: min(215px, 45%); min-width: 135px; min-height: 34px; padding: 6px 9px; border: 1px solid var(--line, #dfe5eb); border-radius: 7px; background: #fff; color: var(--ink, #16212a); font: inherit; font-size: 11px; }
.permission-option span { display: grid; gap: 3px; }
.permission-option strong { color: var(--ink, #16212a); font-size: 12px; }
.permission-option small { color: var(--muted, #74818b); font-size: 11px; line-height: 1.4; }
@media(max-width:600px) { .permission-option { align-items: flex-start; flex-direction: column; } .permission-option select { width: 100%; min-width: 0; margin-left: 26px; } }
.employee-filter-label select { width: 165px; height: 40px; padding: 0 11px; border: 1px solid var(--line); border-radius: 9px; color: var(--ink); background: #fff; font-size: 12px; }
.employee-toolbar { flex-wrap: wrap; justify-content: flex-start; align-items: flex-end; gap: 14px; padding: 16px; border: 1px solid var(--line); border-radius: 13px; background: #fff; }
.employee-toolbar .employee-filter-label { display: grid; gap: 7px; min-width: 0; }
.employee-toolbar .employee-filter-label > span:not(.search-wrap) { color: #65717b; font-size: 11px; font-weight: 700; }
.employee-toolbar .employee-market-filter { flex: 1 1 240px; }
.employee-toolbar .employee-search-filter { flex: 2 1 260px; }
.employee-toolbar .employee-status-filter { flex: 0 1 160px; }
.employee-toolbar .employee-filter-label select { width: 100%; min-width: 0; height: 44px; font: inherit; font-size: 12px; }
.employee-toolbar .search-wrap { display: block; width: 100%; }
.employee-toolbar .search-input { min-height: 44px; }
.employee-toolbar .search-wrap::before { top: 9px; }
.employee-toolbar #employee-result-count { padding-bottom: 12px; font-size: 11px; }
.employee-toolbar .employee-export-actions { margin-left: auto; flex-wrap: wrap; }
.employee-toolbar .employee-export-actions .button { min-height: 44px; }
.employee-toolbar select:focus-visible { border-color: var(--blue); outline: 3px solid rgba(0,143,209,.15); outline-offset: 1px; }
@media (max-width: 760px) {
    .employee-toolbar { align-items: stretch; }
    .employee-toolbar .employee-filter-label { flex: none; width: 100%; }
    .employee-toolbar #employee-result-count { padding: 0; }
    .employee-toolbar .employee-export-actions { width: 100%; margin-left: 0; }
    .employee-toolbar .employee-export-actions .button { flex: 1 1 130px; width: auto; }
}
@media print { .employee-toolbar { padding: 0; border: 0; background: none; } }
.user-audit-panel { margin-top: 20px; }
.user-audit-toolbar { justify-content: flex-start; flex-wrap: wrap; gap: 12px; margin-bottom: 18px; }
.user-audit-toolbar .search-wrap { flex: 0 1 400px; width: min(400px, 100%); }
.user-audit-filter select { width: 190px; font: inherit; font-size: 12px; }
.user-audit-filter select:focus-visible { outline: 3px solid rgba(0,143,209,.15); outline-offset: 1px; border-color: var(--blue); }
@media (max-width: 760px) {
    .user-audit-panel .panel-heading { align-items: flex-start; flex-direction: column; }
    .user-audit-toolbar .search-wrap { flex: none; width: 100%; }
    .user-audit-filter, .user-audit-filter select { width: 100%; }
}
.employee-table-wrap th:nth-child(1) { width: 27%; }
.employee-table-wrap th:nth-child(2) { width: 31%; }
.employee-table-wrap th:nth-child(3) { width: 27%; }
.employee-table-wrap th:nth-child(4) { width: 15%; }
.employee-table-wrap td:nth-child(2) { overflow-wrap: anywhere; }
.employee-history-list { display: grid; gap: 11px; max-height: 58vh; overflow: auto; }
.employee-history-item { padding: 14px 15px; border: 1px solid var(--line); border-radius: 11px; background: #fff; }
.employee-history-item > div { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
.employee-history-item strong { color: var(--ink); font-size: 13px; }
.employee-history-item time, .employee-history-item small { color: var(--muted); font-size: 11px; }
.employee-history-item p { margin: 9px 0 5px; color: var(--ink); font-size: 12px; line-height: 1.5; }
.person-profile-link { border: 0; padding: 0; color: inherit; background: transparent; text-align: left; cursor: pointer; }
.person-profile-link:hover { color: var(--blue-dark); }
.person-profile-link:focus-visible { outline: 2px solid var(--blue); outline-offset: 3px; border-radius: 2px; }
.employee-profile-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.employee-profile-field { min-width: 0; padding: 12px 14px; border: 1px solid var(--line); border-radius: 10px; background: #fbfcfd; }
.employee-profile-field span { display: block; color: var(--muted); font-size: 10px; }
.employee-profile-field strong { display: block; margin-top: 5px; overflow-wrap: anywhere; color: var(--ink); font-size: 12px; font-weight: 600; }
.employee-profile-navigation { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-top: 15px; }
.employee-profile-section { min-width: 0; padding: 12px; border: 1px solid var(--line); border-radius: 12px; background: #f8fafc; }
.employee-profile-section h3 { margin: 0 0 9px; color: var(--muted); font-size: 10px; font-weight: 700; letter-spacing: .075em; text-transform: uppercase; }
.employee-profile-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; }
.employee-profile-actions .button-quiet { display: flex; align-items: center; justify-content: space-between; min-width: 0; min-height: 38px; padding: 8px 10px; border: 1px solid var(--line); border-radius: 8px; background: #fff; text-align: left; }
.employee-profile-actions .button-quiet::after { content: "›"; margin-left: 8px; color: var(--muted); font-size: 17px; line-height: 1; }
.employee-profile-primary-actions { display: flex; flex-wrap: wrap; gap: 8px; padding-top: 2px; }
.employee-profile-primary-actions:empty { display: none; }
#employee-positions-form .form-actions, #employee-departments-form .form-actions { flex-wrap: wrap; }
@media (max-width: 520px) { .employee-profile-grid { grid-template-columns: 1fr; } }
@media (max-width: 620px) { .employee-profile-navigation { grid-template-columns: 1fr; } }
@media (max-width: 390px) { .employee-profile-actions { grid-template-columns: 1fr; } }
.employee-profile-dialog { width: min(760px, calc(100vw - 28px)); }
.employee-export-actions { display: flex; gap: 6px; margin-left: auto; }
.task-description { max-width: 400px; white-space: pre-wrap; }
.task-assignment-cell { min-width: 145px; }
.task-assignee-progress { display: block; margin-top: 5px; font-size: 10px; }
.task-progress { display: block; width: min(100%, 180px); height: 5px; margin-top: 5px; overflow: hidden; border-radius: 999px; background: #e9eef1; }
.task-progress > span { display: block; height: 100%; border-radius: inherit; background: var(--blue); transition: width .2s ease; }
.task-completion-notes { margin-top: 7px; color: #52616c; font-size: 10px; }
.task-completion-notes summary { width: fit-content; color: var(--blue-dark); cursor: pointer; font-weight: 700; }
.task-completion-notes ul { display: grid; gap: 5px; margin: 6px 0 0; padding-left: 15px; line-height: 1.45; }
.task-own-completion-note { max-width: 220px; margin-top: 5px; white-space: pre-wrap; }
.task-status-select { min-width: 135px; height: 34px; padding: 0 9px; border: 1px solid var(--line); border-radius: 8px; background: #fff; color: var(--ink); font-size: 12px; }
.task-overdue { color: #bd3b32; font-weight: 600; }
.badge-danger { color: #a9322a; background: #fff0ee; }
.badge-warning { color: #91620a; background: #fff7df; }
.task-assignee-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; max-height: 190px; overflow: auto; padding: 2px; }
.task-assignee-option { display: flex; align-items: center; gap: 9px; min-width: 0; padding: 10px; border: 1px solid var(--line); border-radius: 9px; color: var(--ink); font-size: 12px; cursor: pointer; }
.task-assignee-option input { flex: 0 0 16px; width: 16px; height: 16px; min-height: 16px; accent-color: var(--blue); }
.task-assignee-option span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.message-unread td { background: #f5fbff; }
.message-unread td:nth-child(2) { box-shadow: inset 3px 0 0 var(--blue); }
.message-body { padding: 12px 0; color: var(--ink); font-size: 14px; line-height: 1.7; white-space: pre-wrap; overflow-wrap: anywhere; }
.document-icon { display: grid; place-items: center; width: 36px; height: 36px; flex: 0 0 36px; border-radius: 10px; color: var(--blue-dark); background: #e7f7fc; font-size: 18px; }
.document-actions { justify-content: flex-start; flex-wrap: wrap; white-space: normal; }
.person-cell strong { color: var(--ink); font-size: 12px; }
input[type="file"] { padding: 8px 10px; }
@media (max-width: 700px) { .task-assignee-list { grid-template-columns: 1fr; } }
@media print {
    body, #app { background: #fff !important; }
    .sidebar, .topbar, .page-heading button, .employee-export-actions, .employee-filter-label, .search-wrap, .table-actions { display: none !important; }
    .app-shell, .workspace, .content { display: block !important; width: 100% !important; max-width: none !important; margin: 0 !important; padding: 0 !important; }
    .table-wrap { overflow: visible !important; border: 0 !important; box-shadow: none !important; }
    table { min-width: 0 !important; width: 100% !important; }
    th, td { padding: 7px 5px !important; font-size: 9pt !important; }
}
.mfa-secret { display: grid; justify-items: start; gap: 9px; margin: 14px 0 18px; padding: 15px; border: 1px solid var(--line); border-radius: 11px; background: #f7fafc; }
.mfa-secret span { color: var(--muted); font-size: 11px; }
.mfa-secret code { padding: 9px 11px; border-radius: 7px; color: var(--ink); background: #fff; font-size: 16px; letter-spacing: .12em; overflow-wrap: anywhere; }
.mfa-recovery-codes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin: 16px 0; }
.mfa-recovery-codes code { padding: 10px; border: 1px solid var(--line); border-radius: 8px; color: var(--ink); background: #f8fafc; text-align: center; font-size: 13px; }
@media(max-width:520px) { .mfa-recovery-codes { grid-template-columns: 1fr; } }
.employment-contract-dialog { width: min(980px, calc(100vw - 28px)); }
.employment-contract-dialog .table-wrap { margin: 0; }
.employee-heading-actions { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 9px; }
.work-time-model-dialog { width: min(960px, calc(100vw - 28px)); }
.work-time-week-summary { display: grid; grid-template-columns: 1fr auto; gap: 3px 12px; align-items: center; margin: 18px 0 13px; padding: 14px 16px; border: 1px solid #d7eafa; border-radius: 11px; background: linear-gradient(110deg,#f1f8ff,#fff); }
.work-time-week-summary span { color: var(--muted); font-size: 11px; font-weight: 700; }
.work-time-week-summary strong { grid-column: 2; grid-row: 1 / span 2; color: var(--blue-dark); font-size: 20px; }
.work-time-week-summary small { color: var(--muted); font-size: 10px; }
.work-time-days { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; }
.work-time-day-card { min-width: 0; padding: 12px; border: 1px solid var(--line); border-radius: 10px; background: #fbfcfd; }
.work-time-day-toggle { display: flex; align-items: center; gap: 8px; color: var(--ink); font-size: 12px; cursor: pointer; }
.work-time-day-toggle input { width: 16px; height: 16px; min-height: 16px; accent-color: var(--blue); }
.work-time-day-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; margin-top: 11px; }
.work-time-day-fields .field:first-child { grid-column: 1 / -1; }
.work-time-day-fields .field span { color: var(--muted); font-size: 9px; font-weight: 600; }
.work-time-model-dialog .table-wrap { margin: 0; }
.work-time-model-dialog [data-worktime-flex-fields][hidden],
.work-time-model-dialog [data-worktime-fixed-hours][hidden] { display: none; }
.work-time-flex-fields { margin-top: 16px; padding: 14px; border: 1px solid var(--line); border-radius: 10px; background: #f7fbfe; }
.work-time-distribution-note { margin: 16px 0 12px; }
.work-time-distribution-note h3 { margin: 0 0 6px; color: var(--ink); font-size: 13px; }
.work-time-distribution-note p { margin: 0; color: #52697a; font-size: 11px; line-height: 1.7; overflow-wrap: anywhere; }
.work-time-week-summary > small { line-height: 1.6; overflow-wrap: anywhere; }
.work-time-day-toggle { min-height: 44px; }
.work-time-day-fields:has([data-worktime-fixed-hours][hidden]) .field { grid-column: auto; }
@media(max-width:480px) { .work-time-week-summary { grid-template-columns: minmax(0,1fr); } .work-time-week-summary strong { grid-column: auto; grid-row: auto; } .work-time-day-fields { grid-template-columns: minmax(0,1fr); } }
@media(max-width:650px) { .work-time-days { grid-template-columns: 1fr; } .employee-heading-actions { width: 100%; justify-content: flex-start; } }
.support-summary { display:flex; align-items:center; gap:14px; margin:20px 0; padding:17px 20px; border:1px solid #d9e8f5; border-radius:14px; background:linear-gradient(110deg,#f3f9ff,#fff); }
.support-summary-icon,.support-case-icon { display:grid; place-items:center; flex:0 0 42px; width:42px; height:42px; border-radius:12px; color:#087be8; background:#e2f2ff; font-size:23px; }
.support-summary div { display:grid; gap:4px; }.support-summary strong { color:var(--ink); font-size:14px; }.support-summary span:not(.support-summary-icon) { color:var(--muted); font-size:12px; line-height:1.5; }
.support-case-list { display:grid; gap:10px; }.support-case-card { display:flex; align-items:center; gap:14px; width:100%; padding:16px; border:1px solid var(--line); border-radius:13px; background:#fff; color:var(--ink); text-align:left; cursor:pointer; transition:border-color .16s,transform .16s,box-shadow .16s; }.support-case-card:hover { transform:translateY(-1px); border-color:#a8d2f1; box-shadow:0 8px 24px #193a5710; }.support-case-main { display:grid; gap:5px; flex:1; min-width:0; }.support-case-main strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:14px; }.support-case-main>span,.support-case-meta small { color:var(--muted); font-size:11px; }.support-case-meta { display:grid; justify-items:end; gap:5px; }.support-case-arrow { color:#1384e8; font-size:20px; }.support-status-waiting_for_support { color:#8a5b00; background:#fff3d5; }.support-status-waiting_for_customer { color:#125f9c; background:#e8f4ff; }.support-status-resolved { color:#16734c; background:#e9f8ef; }.support-status-closed { color:#596273; background:#eef0f4; }
.support-thread,.hq-support-thread { display:grid; gap:11px; max-height:min(48vh,440px); overflow:auto; padding:2px 3px 12px 0; }.support-message { max-width:88%; padding:12px 14px; border:1px solid var(--line); border-radius:13px; background:#f8fafc; }.support-message-customer { justify-self:end; border-color:#cfe8ff; background:#eef7ff; }.support-message-head { display:flex; justify-content:space-between; gap:16px; color:var(--muted); font-size:11px; }.support-message-head strong { color:var(--ink); }.support-message p { margin:8px 0 0; color:var(--ink); font-size:13px; line-height:1.6; white-space:pre-wrap; overflow-wrap:anywhere; }.support-reply-field { display:grid; gap:7px; margin-top:12px; }.support-closed-note { padding:12px 14px; border-radius:10px; color:#596273; background:#f1f3f6; font-size:12px; }
@media(max-width:650px) { .support-case-card { gap:9px; padding:12px; }.support-case-icon { flex-basis:34px; width:34px; height:34px; }.support-case-meta .badge { max-width:130px; text-align:center; white-space:normal; }.support-case-arrow { display:none; }.support-message { max-width:96%; } }
.time-period-report { margin: 18px 0; }
.time-period-report .panel-heading { align-items: flex-end; }
.time-report-actions { display: flex; align-items: flex-end; flex-wrap: wrap; gap: 8px; }
.time-report-actions select { min-width: 220px; }
.time-period-report .stat-grid { margin: 14px 0; }
.time-report-note { display: block; margin: 12px 0 0; line-height: 1.5; }
@media(max-width:760px) { .time-period-report .panel-heading { align-items: flex-start; flex-direction: column; } .time-report-actions, .time-report-actions .field, .time-report-actions select { width: 100%; } }
/* Weekly planning calendar */
.schedule-plan-toolbar { flex-wrap: wrap; justify-content: flex-start; gap: 10px; margin-bottom: 16px; padding: 15px; border: 1px solid var(--line); border-radius: 15px; background: #fff; box-shadow: 0 6px 22px rgba(19,38,54,.035); }
.schedule-plan-toolbar .field { flex: 1 1 340px; min-width: 0; max-width: 100%; margin: 0; }
.schedule-plan-toolbar .field > span { color: #65717b; font-size: 11px; font-weight: 700; }
.schedule-plan-toolbar .schedule-site-picker { flex-basis: 220px; }
.schedule-plan-toolbar select { min-width: 0; min-height: 46px; width: 100%; border: 1px solid var(--line); border-radius: 10px; padding: 0 13px; color: var(--ink); background: #fff; font: inherit; font-size: 13px; }
.schedule-plan-status { min-height: 32px; padding: 7px 11px; font-size: 10px; }
.schedule-week-section { margin: 18px 0 24px; padding: 22px; border: 1px solid var(--line); border-radius: 17px; background: #fff; box-shadow: 0 7px 26px rgba(19,38,54,.04); }
.schedule-week-toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 18px; margin-bottom: 18px; padding: 0 0 17px; border-bottom: 1px solid #edf1f4; }
.schedule-week-toolbar h2 { margin: 5px 0 0; font: 750 23px Manrope, sans-serif; letter-spacing: -.04em; }
.schedule-week-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.schedule-week-actions .button { min-height: 42px; }
.schedule-card-actions .schedule-remove-shift { min-height: 44px; color: var(--danger); }
#shift-removal-error .button { display: flex; margin-top: 12px; }
.schedule-template-list { display: grid; gap: 8px; }
.schedule-template-list h3, .schedule-template-form h3 { margin: 4px 0 2px; font: 700 15px Manrope, sans-serif; }
.schedule-template-row { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 12px; padding: 11px 12px; border: 1px solid var(--line); border-radius: 10px; background: #fbfdfe; }
.schedule-template-row > div { display: grid; gap: 4px; }
.schedule-template-row > div span { color: var(--muted); font-size: 12px; }
.schedule-template-form { display: grid; gap: 14px; margin-top: 18px; padding-top: 16px; border-top: 1px solid var(--line); }
.staffing-panel { margin: 18px 0 22px; }
.staffing-panel .panel-heading { margin-bottom: 14px; }
.staffing-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0 0 14px; }
.staffing-stats .stat-card { padding: 13px 16px; }
.staffing-stats .stat-value { margin-top: 6px; font-size: 22px; }
.weekday-picker { display: flex; flex-wrap: wrap; gap: 7px; }
.weekday-option { position: relative; cursor: pointer; }
.weekday-option input { position: absolute; opacity: 0; pointer-events: none; }
.weekday-option span { display: grid; min-width: 42px; min-height: 38px; place-items: center; border: 1px solid var(--line); border-radius: 9px; color: var(--muted); background: #fff; font-size: 12px; font-weight: 700; }
.weekday-option input:checked + span { border-color: var(--blue); color: var(--blue); background: #eef8fd; }
.weekday-option input:focus-visible + span { outline: 3px solid #9dd8f2; outline-offset: 2px; }
.schedule-week-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-bottom: 17px; }
.schedule-week-stats .stat-card { padding: 16px 18px; border-radius: 12px; box-shadow: none; }
.schedule-week-stats .stat-value { margin-top: 8px; font-size: 23px; }
.schedule-calendar-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 12px; align-items: stretch; }
.schedule-day { min-width: 0; min-height: 250px; overflow: hidden; border: 1px solid #e4ebef; border-radius: 13px; background: #fff; box-shadow: 0 3px 12px rgba(19,38,54,.025); }
.schedule-day.is-outside-period { border-style: dashed; background: #f8fafb; box-shadow: none; }
.schedule-day-heading { display: flex; min-height: 66px; align-items: center; justify-content: space-between; gap: 8px; padding: 12px 13px; border-bottom: 1px solid #edf1f4; background: linear-gradient(135deg, #f7fbfd, #fff); }
.schedule-day-heading > div { display: grid; gap: 4px; }
.schedule-day-heading > div > span { color: #788692; font-size: 11px; font-weight: 700; text-transform: capitalize; }
.schedule-day-heading strong { color: #17242c; font: 750 15px Manrope, sans-serif; letter-spacing: -.025em; }
.schedule-day-count { max-width: 82px; border-radius: 20px; padding: 5px 7px; color: #63717b; background: #eff3f5; font-size: 9px; font-weight: 700; text-align: center; white-space: nowrap; }
.schedule-day-shifts { display: grid; align-content: start; gap: 9px; min-height: 182px; padding: 10px; }
.schedule-day-empty { display: grid; min-height: 112px; place-items: center; padding: 12px; border: 1px dashed #e1e8ec; border-radius: 10px; color: #88949d; background: #fbfcfd; font-size: 11px; line-height: 1.5; text-align: center; }
.schedule-shift-card { min-width: 0; padding: 12px; border: 1px solid #dceaf0; border-left: 3px solid #0788c5; border-radius: 11px; background: linear-gradient(145deg, #f5fbfe, #fff 80%); }
.schedule-shift-card.is-assigned { border-color: #d9eee5; border-left-color: #21845d; background: linear-gradient(145deg, #f3fbf7, #fff 80%); }
.schedule-shift-card.is-open { border-color: #f0e5c4; border-left-color: #d29a24; background: linear-gradient(145deg, #fffaf0, #fff 80%); }
.schedule-shift-card.is-cancelled { border-color: #e1e5e8; border-left-color: #aab2b8; background: #f7f8f9; opacity: .72; }
.schedule-shift-card-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; }
.schedule-shift-time { color: #17242c; font: 750 15px Manrope, sans-serif; letter-spacing: -.035em; white-space: nowrap; }
.schedule-shift-state { flex: 0 0 auto; border-radius: 20px; padding: 4px 7px; color: #91620a; background: #fff2d2; font-size: 9px; font-weight: 700; line-height: 1.2; }
.schedule-shift-state.is-assigned { color: #197451; background: #e6f5ed; }
.schedule-shift-state.is-cancelled { color: #727d86; background: #eceff1; }
.schedule-shift-meta { margin-top: 7px; color: #74818a; font-size: 11px; }
.schedule-shift-tags { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 8px; }
.schedule-shift-tag { max-width: 100%; overflow: hidden; border-radius: 6px; padding: 4px 6px; color: #526775; background: #edf3f6; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.schedule-assignees { display: grid; gap: 5px; margin-top: 10px; }
.schedule-person { display: flex; min-width: 0; align-items: center; gap: 7px; color: #35434c; font-size: 11px; font-weight: 650; }
.schedule-person-avatar { display: grid; width: 25px; height: 25px; flex: 0 0 25px; place-items: center; border: 1px solid #dcecf3; border-radius: 50%; color: #0876a8; background: #e6f5fb; font-size: 9px; font-weight: 800; }
.schedule-person-name { min-width: 0; flex: 1; overflow-wrap: anywhere; }
.schedule-unassign { display: grid; width: 25px; height: 25px; flex: 0 0 25px; place-items: center; padding: 0; border: 0; border-radius: 7px; color: #74818a; background: transparent; font-size: 17px; cursor: pointer; }
.schedule-unassign:hover { color: var(--danger); background: #fff0f0; }
.schedule-empty-assignee { margin-top: 9px; color: #936610; font-size: 11px; }
.schedule-shift-note { margin: 9px 0 0; padding-top: 8px; border-top: 1px solid rgba(125,145,158,.16); color: #64727c; font-size: 11px; line-height: 1.5; overflow-wrap: anywhere; }
.schedule-card-actions { display: flex; flex-wrap: wrap; gap: 4px; margin: 9px -4px -4px; padding-top: 7px; border-top: 1px solid rgba(125,145,158,.16); }
.schedule-card-actions .button { min-height: 31px; padding: 0 7px; border-radius: 7px; font-size: 10px; }
@media(max-width:1200px) { .schedule-calendar-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media(max-width:760px) { .schedule-calendar-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .schedule-week-section { padding: 17px; } .staffing-stats { grid-template-columns: 1fr; } }
@media(max-width:520px) { .schedule-calendar-grid { grid-template-columns: 1fr; } .schedule-week-section { padding: 14px; border-radius: 13px; } .schedule-week-toolbar { align-items: flex-start; flex-direction: column; } .schedule-week-toolbar h2 { font-size: 20px; } .schedule-week-actions { width: 100%; } .schedule-week-actions .button { flex: 1 1 115px; } .schedule-plan-toolbar > .button { flex: 1 1 135px; } .schedule-week-stats { grid-template-columns: 1fr; } .schedule-template-row { grid-template-columns: minmax(0, 1fr) auto; } .schedule-template-row .button { grid-column: 1 / -1; justify-self: start; } }
.absence-evidence-dialog{width:min(860px,calc(100% - 36px));max-width:none}.absence-evidence-content{display:grid;gap:22px}.evidence-summary{padding:19px 22px;border:1px solid #d7e7f0;border-radius:11px;background:linear-gradient(135deg,#edf8ff,#f6fbff)}.evidence-summary>strong{font-size:16px;color:#13354b;line-height:1.7}.evidence-summary>p{font-size:12px;color:#587083;line-height:1.9;margin:8px 0 0}.absence-evidence-list{display:grid;gap:13px}.absence-evidence-list>.empty-state{padding:24px 20px;border:1px dashed #d9e5ed;border-radius:10px;font-size:12px}.absence-evidence-row{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 21px;border:1px solid #dfE9f0;border-radius:11px;background:#fff}.absence-evidence-row>div:first-child{min-width:0;flex:1}.absence-evidence-row strong{display:block;font-size:13px;font-weight:650;color:#173b52;line-height:1.8;overflow-wrap:anywhere}.absence-evidence-row span,.absence-evidence-row small{display:block;font-size:11px;color:#688195;line-height:1.8;margin-top:5px}.absence-evidence-row small{font-size:10px;color:#8093a3}.absence-evidence-row.withdrawn{background:#f7f9fb;border-color:#e7edf2}.absence-evidence-row.withdrawn strong{color:#76899a}.absence-evidence-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.absence-evidence-actions .button{font-size:11px;min-height:35px;padding:8px 11px}.evidence-upload{display:grid;gap:17px;padding:23px 25px;border:1px solid #dce8f0;border-radius:12px;background:#f9fcff}.evidence-upload>h3,.evidence-withdraw>h3{margin:0;color:#153c56;font-size:17px;font-weight:650;line-height:1.7}.evidence-upload>p,.evidence-withdraw>p{margin:0;color:#6b8396;font-size:11px;line-height:1.95}.evidence-upload>.notice{margin:0;font-size:12px;line-height:1.85}.evidence-upload>button{justify-self:start}.evidence-upload .field input[type=file]{background:#fff;padding:12px;font-size:12px;border:1px solid #d8e5ef;border-radius:9px;max-width:100%}.evidence-selected{display:grid;gap:6px;padding:15px 18px;border:1px solid #c5deec;border-radius:9px;background:#edf8fd}.evidence-selected strong{font-size:12px;color:#24516a;line-height:1.8;overflow-wrap:anywhere}.evidence-selected small{color:#68849a;font-size:10px;line-height:1.8}.evidence-feedback{padding:16px 19px;margin:0 0 21px;border:1px solid #eed1cf;border-radius:10px;background:#fff4f2;color:#9d4641;font-size:12px;line-height:1.9;overflow-wrap:anywhere}.evidence-feedback[hidden]{display:none}.evidence-feedback.info{background:#eff8fd;border-color:#c7e1ef;color:#396b88}.evidence-feedback.success{background:#f0fbf5;border-color:#c6e9d5;color:#3a7554}.evidence-withdraw{display:grid;gap:21px;padding:23px 25px;border:1px solid #e0e8ef;border-radius:11px;background:#fbfcfe}.absence-evidence-dialog>.dialog-body>.form-actions{margin-top:24px}
@media(max-width:650px){.absence-evidence-dialog{width:calc(100% - 18px)}.evidence-summary{padding:18px 16px}.evidence-summary>strong{font-size:15px}.evidence-summary>p{font-size:11px}.absence-evidence-row{align-items:flex-start;flex-direction:column;gap:14px;padding:17px 16px}.absence-evidence-row strong{font-size:12px}.absence-evidence-actions{align-self:flex-end;gap:8px}.absence-evidence-actions .button{font-size:10px;padding:8px 10px}.evidence-upload,.evidence-withdraw{padding:20px 17px;gap:17px}.evidence-upload>h3,.evidence-withdraw>h3{font-size:16px}.evidence-upload>button{justify-self:stretch;font-size:11px}.evidence-feedback{padding:15px 16px;font-size:11px}.evidence-selected{padding:15px}.absence-evidence-content{gap:18px}}

/* Vacation account overview: filters and a compact, full-width team table. */
.vacation-summary-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 15px;
    margin: 0 0 22px;
}
.vacation-summary-card {
    appearance: none;
    display: grid;
    align-content: start;
    gap: 9px;
    width: 100%;
    min-width: 0;
    min-height: 133px;
    margin: 0;
    padding: 20px 22px;
    border: 1px solid var(--line);
    border-radius: 13px;
    color: var(--ink);
    background: #fff;
    box-shadow: 0 5px 20px rgba(19,38,54,.025);
    font: inherit;
    text-align: left;
    transition: border-color .16s ease, background .16s ease, box-shadow .16s ease;
}
.vacation-summary-card > span {
    color: #667580;
    font-size: 11px;
    font-weight: 650;
    line-height: 1.5;
}
.vacation-summary-card > strong {
    color: #172d3c;
    font: 750 29px/1.15 Manrope, sans-serif;
    font-variant-numeric: tabular-nums;
    letter-spacing: -.04em;
    overflow-wrap: anywhere;
}
.vacation-summary-card > small {
    color: #7a8791;
    font-size: 10px;
    line-height: 1.6;
}
.vacation-summary-card[data-status="NEGATIVE"] > strong { color: #b34040; }
.vacation-summary-card[data-status="SETUP_REQUIRED"] > strong,
.vacation-summary-card[data-status="LOW"] > strong { color: #9b701d; }
.vacation-summary-card:hover:not(:disabled):not([aria-disabled="true"]) {
    border-color: #acd9ec;
    background: #fbfdff;
    box-shadow: 0 7px 22px rgba(19,64,87,.065);
}
.vacation-summary-card.is-selected {
    border-color: #9bd4eb;
    background: linear-gradient(125deg, #edf9ff, #fff 85%);
    box-shadow: inset 0 3px var(--blue), 0 5px 20px rgba(19,64,87,.035);
}
.vacation-summary-card.is-selected > span { color: var(--blue-dark); }
.vacation-summary-card.is-selected:hover:not(:disabled):not([aria-disabled="true"]) {
    border-color: #7cc4e2;
    background: linear-gradient(125deg, #edf9ff, #fff 85%);
    box-shadow: inset 0 3px var(--blue), 0 7px 22px rgba(19,64,87,.065);
}
.vacation-summary-card:focus-visible,
.vacation-overview .button:focus-visible {
    outline: 3px solid rgba(0,143,209,.32);
    outline-offset: 3px;
}
.vacation-summary-card:disabled,
.vacation-summary-card[aria-disabled="true"] {
    cursor: default;
    opacity: .55;
}
.vacation-overview {
    display: flex;
    flex-direction: column;
    width: 100%;
    min-width: 0;
    padding: 0;
    overflow: hidden;
}
.vacation-toolbar {
    display: grid;
    grid-template-columns: minmax(230px, 1.9fr) repeat(3, minmax(115px, 1fr)) minmax(95px, .65fr);
    align-items: end;
    gap: 14px;
    padding: 22px;
}
.vacation-search { width: 100%; min-width: 0; align-self: end; }
.vacation-search .search-wrap { width: 100%; min-width: 0; }
.vacation-search .search-input {
    width: 100%;
    min-width: 0;
    height: 42px;
    background: #fff;
    font-size: 12px;
}
.vacation-filter {
    display: grid;
    min-width: 0;
    gap: 7px;
    color: #687782;
    font-size: 10px;
    font-weight: 650;
    line-height: 1.5;
}
.vacation-filter select {
    width: 100%;
    min-width: 0;
    height: 42px;
    margin: 0;
    padding: 0 10px;
    border: 1px solid #e0e8ed;
    border-radius: 9px;
    color: #273c4a;
    background: #fff;
    font: 500 11px "DM Sans", "Segoe UI", sans-serif;
    text-overflow: ellipsis;
}
.vacation-filter select:focus-visible {
    outline: 3px solid rgba(0,143,209,.15);
    outline-offset: 1px;
    border-color: var(--blue);
}
.vacation-toolbar > .button { min-height: 42px; align-self: end; }
.vacation-results {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 7px 18px;
    padding: 12px 22px;
    border-top: 1px solid #edf1f4;
    border-bottom: 1px solid #edf1f4;
    color: #71808b;
    background: #fafcfd;
    font-size: 11px;
    line-height: 1.65;
}
.vacation-results strong { color: #364d5c; font-weight: 650; }
.vacation-overview .vacation-table {
    width: 100%;
    min-width: 0;
    min-height: min(260px, 60vh);
    max-height: min(520px, 60vh);
    border: 0;
    border-radius: 0;
    overflow-x: hidden;
    overflow-y: auto;
    scrollbar-width: thin;
    scrollbar-color: #bfd3df #f4f8fa;
}
.vacation-table table { width: 100%; min-width: 0; table-layout: fixed; }
.vacation-table th {
    position: sticky;
    top: 0;
    z-index: 2;
    padding: 13px 10px;
    background: #fafcfd;
    box-shadow: inset 0 -1px var(--line);
    font-size: 9px;
    line-height: 1.5;
    letter-spacing: .065em;
    text-align: right;
    white-space: normal;
    overflow-wrap: anywhere;
}
.vacation-table td {
    padding: 14px 10px;
    color: #455a68;
    font-size: 11px;
    line-height: 1.6;
    font-variant-numeric: tabular-nums;
    text-align: right;
    overflow-wrap: anywhere;
}
.vacation-table th:first-child,
.vacation-table td:first-child { width: 22%; padding-left: 22px; text-align: left; }
.vacation-table th:last-child,
.vacation-table td:last-child { padding-right: 22px; }
.vacation-table th:nth-child(2), .vacation-table td:nth-child(2) { width: 12%; text-align: left; }
.vacation-table th:nth-child(7), .vacation-table td:nth-child(7) { width: 11%; }
.vacation-table th:nth-child(8), .vacation-table td:nth-child(8) { width: 12%; text-align: left; }
.vacation-table th:nth-child(9), .vacation-table td:nth-child(9) { width: 9%; }
.vacation-table .badge { max-width: 100%; white-space: normal; line-height: 1.5; }
.vacation-table .badge::before { flex: 0 0 5px; }
.vacation-table tbody tr:hover { background: #f8fcfe; }
.vacation-table td[colspan] { padding: 0; text-align: center; }
.vacation-table .empty-state { min-height: 260px; display: grid; place-content: center; }
.vacation-person-flex { display: flex; min-width: 0; align-items: center; gap: 11px; }
.vacation-person-flex > :last-child { min-width: 0; }
.vacation-person-flex .person-name { display: block; color: #183646; font-size: 12px; line-height: 1.6; overflow-wrap: anywhere; }
.vacation-person-flex .subtext { margin-top: 3px; color: #8796a1; font-size: 10px; line-height: 1.5; }
.vacation-avatar {
    display: grid;
    place-items: center;
    flex: 0 0 34px;
    width: 34px;
    height: 34px;
    border: 1px solid #dceef6;
    border-radius: 10px;
    color: #0876a7;
    background: #e8f6fc;
    font: 750 10px Manrope, sans-serif;
}
.vacation-balance { display: grid; gap: 3px; justify-items: end; }
.vacation-balance > strong { color: #167457; font-size: 15px; font-weight: 750; line-height: 1.45; }
.vacation-balance > small { color: #84949f; font-size: 9px; line-height: 1.5; }
.vacation-balance.is-negative > strong { color: #b34040; }
.vacation-balance.is-low > strong { color: #9b701d; }
.vacation-account-note { display: block; margin-top: 5px; color: #b34040; font-size: 10px; line-height: 1.6; }
.vacation-table .button { min-height: 35px; max-width: 100%; padding: 7px 10px; font-size: 10px; line-height: 1.45; white-space: normal; }
.vacation-pagination {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 14px 22px;
    min-height: 77px;
    padding: 18px 22px;
    margin-top: auto;
    border-top: 1px solid var(--line);
    color: #71808b;
    background: #fafcfd;
    font-size: 11px;
    line-height: 1.7;
}
.vacation-pagination > div { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 10px; }
.vacation-pagination p { margin: 0; }
.vacation-pagination .button { min-height: 36px; }
.vacation-page-label { display: inline-flex; align-items: center; gap: 7px; color: #657b89; font-size: 11px; white-space: nowrap; }
.vacation-page-label input { width: 58px; min-width: 0; height: 36px; margin: 0; padding: 0 7px; border: 1px solid #dfe8ed; border-radius: 8px; color: #243b4a; background: #fff; font: inherit; text-align: center; font-variant-numeric: tabular-nums; }
.vacation-page-label input:focus-visible { outline: 3px solid rgba(0,143,209,.15); outline-offset: 1px; border-color: var(--blue); }
.vacation-page-label input:disabled { opacity: .55; cursor: default; }
.vacation-pagination .button:disabled,
.vacation-pagination .button[aria-disabled="true"] { cursor: default; opacity: .45; transform: none; box-shadow: none; }
.page-heading #vacation-year { width: 126px; min-height: 42px; }
@media (max-width: 1350px) {
    .vacation-toolbar { grid-template-columns: repeat(3, minmax(110px, 1fr)) minmax(95px, .65fr); }
    .vacation-search { grid-column: 1 / -1; }
}
@media (max-width: 1100px) {
    .vacation-summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .vacation-toolbar { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .vacation-toolbar > .button { grid-column: 1 / -1; justify-self: end; }
}
@media (max-width: 760px) {
    .vacation-overview .vacation-table { overflow-x: auto; }
    .vacation-table table { min-width: 760px; }
    .vacation-pagination { align-items: flex-start; }
    .vacation-pagination > div { justify-content: flex-start; }
}
@media (max-width: 560px) {
    .vacation-summary-grid { grid-template-columns: minmax(0, 1fr); gap: 11px; }
    .vacation-summary-card { min-height: 0; padding: 17px 19px; gap: 7px; }
    .vacation-summary-card > strong { font-size: 27px; }
    .vacation-toolbar { grid-template-columns: minmax(0, 1fr); gap: 15px; padding: 20px 17px; }
    .vacation-search, .vacation-toolbar > .button { grid-column: auto; }
    .vacation-toolbar > .button { width: 100%; justify-self: stretch; }
    .vacation-results { padding: 12px 17px; }
    .vacation-pagination { padding: 17px; }
    .vacation-pagination > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); width: 100%; gap: 11px; }
    .vacation-page-label { grid-column: 1 / -1; grid-row: 1; justify-self: center; }
    .vacation-pagination .button { flex: 1 1 auto; }
}
@media (prefers-reduced-motion: reduce) {
    .vacation-summary-card { transition: none; }
}

/* Task assignee picker: selection stays visible across searched result pages. */
.task-create-dialog { width: min(880px, calc(100vw - 28px)); max-width: none; }
.task-create-dialog .task-assignee-picker { min-width: 0; margin-top: 20px; padding: 18px; border: 1px solid #dfe9ef; border-radius: 12px; background: #fff; }
.task-create-dialog .task-picker-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 15px; }
.task-create-dialog .task-picker-heading h3 { margin: 0; color: #1b3849; font: 700 14px/1.5 Manrope, sans-serif; letter-spacing: -.02em; }
.task-create-dialog .task-picker-heading > span { padding: 5px 9px; border-radius: 20px; color: #1f779f; background: #eaf7fd; font-size: 10px; font-weight: 650; line-height: 1.5; text-align: right; }
.task-create-dialog .task-picker-toolbar { display: grid; grid-template-columns: minmax(240px, 1.6fr) minmax(175px, 1fr); align-items: end; gap: 13px; }
.task-create-dialog .task-picker-toolbar:has(#task-assignee-site-filter) { grid-template-columns: minmax(220px, 1.7fr) minmax(155px, 1fr) minmax(140px, .9fr); }
.task-create-dialog .task-picker-toolbar > label { display: grid; min-width: 0; gap: 6px; }
.task-create-dialog .task-picker-toolbar > label > span { color: #687c89; font-size: 10px; font-weight: 650; line-height: 1.5; }
.task-create-dialog .task-picker-search { width: 100%; min-width: 0; }
.task-create-dialog .task-picker-search .search-input { height: 40px; min-height: 40px; padding: 0 12px 0 35px; font-size: 11px; }
.task-create-dialog .task-picker-toolbar select { width: 100%; min-width: 0; height: 40px; min-height: 40px; margin: 0; padding: 0 10px; border: 1px solid #dfe8ee; border-radius: 9px; color: #304956; background: #fff; font: 500 11px "DM Sans", "Segoe UI", sans-serif; }
.task-create-dialog .task-picker-toolbar select:focus-visible { outline: 3px solid rgba(0,143,209,.15); outline-offset: 1px; border-color: var(--blue); }
.task-create-dialog .task-picker-selected { margin-top: 15px; padding: 12px 14px; border: 1px solid #e2edf3; border-radius: 10px; background: #f8fbfd; }
.task-create-dialog .task-picker-selected > div:first-child { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 8px; }
.task-create-dialog .task-picker-selected h4 { margin: 0; color: #456476; font-size: 11px; font-weight: 700; line-height: 1.6; }
.task-create-dialog .task-picker-selected .button { min-height: 28px; padding: 4px 7px; font-size: 10px; }
.task-create-dialog .task-picker-chips { display: flex; align-items: flex-start; align-content: flex-start; flex-wrap: wrap; gap: 7px; max-height: 140px; overflow-y: auto; padding: 3px; scrollbar-width: thin; scrollbar-color: #c1d5e1 #f8fbfd; }
.task-create-dialog .task-picker-chips > .subtext { margin: 0; padding: 3px 0; font-size: 10px; line-height: 1.6; }
.task-create-dialog .task-picker-chip { appearance: none; display: inline-flex; align-items: center; gap: 7px; max-width: 100%; min-height: 32px; margin: 0; padding: 6px 9px; border: 1px solid #cfe4ee; border-radius: 18px; color: #2b607b; background: #fff; font: 650 10px/1.5 "DM Sans", "Segoe UI", sans-serif; text-align: left; transition: border-color .15s, background .15s; }
.task-create-dialog .task-picker-chip > span:first-child { min-width: 0; max-width: 240px; overflow-wrap: anywhere; }
.task-create-dialog .task-picker-chip > small { min-width: 0; max-width: 90px; color: #7b93a1; font-size: 9px; font-weight: 500; overflow-wrap: anywhere; }
.task-create-dialog .task-picker-chip > span:last-child { display: grid; place-items: center; width: 18px; height: 18px; flex: 0 0 18px; border-radius: 50%; color: #678699; background: #edf6fa; font-size: 15px; font-weight: 500; line-height: 1; }
.task-create-dialog .task-picker-chip:hover:not(:disabled) { border-color: #8ecae3; background: #f2fbff; }
.task-create-dialog .task-picker-chip:focus-visible { outline: 3px solid rgba(0,143,209,.25); outline-offset: 2px; }
.task-create-dialog .task-picker-chip:disabled { cursor: default; opacity: .55; }
.task-create-dialog .task-picker-results-meta { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 5px 15px; min-height: 38px; margin-top: 10px; padding: 9px 2px; color: #708794; font-size: 10px; line-height: 1.7; }
.task-create-dialog .task-picker-results-meta strong { color: #335e74; font-weight: 650; }
.task-create-dialog .task-picker-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-content: start; gap: 8px; min-width: 0; max-height: 320px; overflow-y: auto; padding: 3px; scrollbar-width: thin; scrollbar-color: #bfd4e0 #f4f8fa; }
.task-create-dialog .task-picker-option { display: flex; align-items: center; gap: 9px; min-width: 0; min-height: 61px; padding: 11px 12px; border: 1px solid #e1eaf0; border-radius: 9px; color: #243e4e; background: #fff; cursor: pointer; transition: border-color .15s, background .15s; }
.task-create-dialog .task-picker-option:hover { border-color: #b9deed; background: #f9fdff; }
.task-create-dialog .task-picker-option.is-selected { border-color: #a9d7e9; background: #eef9ff; }
.task-create-dialog .task-picker-option:focus-within { border-color: #74bfdd; box-shadow: 0 0 0 2px rgba(0,143,209,.12); }
.task-create-dialog .task-picker-option input[type="checkbox"] { appearance: auto; width: 17px; height: 17px; min-height: 17px; flex: 0 0 17px; margin: 0; padding: 0; accent-color: var(--blue); cursor: pointer; }
.task-create-dialog .task-picker-option input[type="checkbox"]:focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; }
.task-create-dialog .task-picker-option:has(input:disabled) { cursor: default; opacity: .6; }
.task-create-dialog .task-picker-option input:disabled { cursor: default; }
.task-create-dialog .task-picker-avatar { display: grid; place-items: center; width: 31px; height: 31px; flex: 0 0 31px; border: 1px solid #e0edf4; border-radius: 9px; color: #187ba8; background: #eaf6fc; font: 750 10px Manrope, sans-serif; }
.task-create-dialog .task-picker-person { display: grid; min-width: 0; flex: 1; gap: 3px; }
.task-create-dialog .task-picker-person strong { display: block; color: #224457; font-size: 11px; font-weight: 650; line-height: 1.5; overflow-wrap: anywhere; }
.task-create-dialog .task-picker-person small { display: block; color: #8096a3; font-size: 9px; line-height: 1.5; overflow-wrap: anywhere; }
.task-create-dialog .task-picker-list > .empty-state, .task-create-dialog .task-picker-list > .subtext { grid-column: 1 / -1; margin: 0; padding: 24px 15px; color: #7a8e9c; font-size: 11px; line-height: 1.7; text-align: center; }
.task-create-dialog .task-picker-pagination { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 10px 15px; min-height: 52px; margin-top: 12px; padding-top: 12px; border-top: 1px solid #e7edf1; color: #718997; font-size: 10px; line-height: 1.6; }
.task-create-dialog .task-picker-pagination > div { display: flex; align-items: center; gap: 9px; }
.task-create-dialog .task-picker-pagination .button { min-height: 32px; padding: 6px 10px; font-size: 10px; }
.task-create-dialog .task-picker-pagination .button:disabled { cursor: default; opacity: .45; transform: none; box-shadow: none; }
.task-create-dialog .task-picker-pagination .button:focus-visible, .task-create-dialog .task-picker-selected .button:focus-visible { outline: 3px solid rgba(0,143,209,.25); outline-offset: 2px; }
.task-create-dialog .task-picker-feedback { margin: 12px 0 0; padding: 11px 13px; border: 1px solid #efdfc4; border-radius: 9px; color: #8b642a; background: #fff9ee; font-size: 11px; line-height: 1.7; overflow-wrap: anywhere; }
.task-create-dialog .task-picker-feedback[hidden] { display: none; }
@media (max-width: 760px) {
    .task-create-dialog .task-picker-toolbar, .task-create-dialog .task-picker-toolbar:has(#task-assignee-site-filter) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .task-create-dialog .task-picker-search { grid-column: 1 / -1; }
    .task-create-dialog .task-picker-toolbar:not(:has(#task-assignee-site-filter)) > label:last-child { grid-column: 1 / -1; }
}
@media (max-width: 660px) {
    .task-create-dialog .task-picker-list { grid-template-columns: minmax(0, 1fr); max-height: 260px; }
    .task-create-dialog .task-assignee-picker { padding: 15px; }
    .task-create-dialog .task-picker-option { min-height: 58px; }
}
@media (max-width: 480px) {
    .task-create-dialog .dialog-head { padding: 19px 18px 16px; }
    .task-create-dialog .dialog-body { padding: 18px; }
    .task-create-dialog .task-picker-toolbar, .task-create-dialog .task-picker-toolbar:has(#task-assignee-site-filter) { grid-template-columns: minmax(0, 1fr); gap: 13px; }
    .task-create-dialog .task-picker-heading { align-items: flex-start; }
    .task-create-dialog .task-picker-heading h3 { font-size: 13px; }
    .task-create-dialog .task-picker-selected { padding: 11px; }
    .task-create-dialog .task-picker-pagination { align-items: flex-start; }
    .task-create-dialog .task-picker-pagination > div { width: 100%; justify-content: space-between; }
}
@media (prefers-reduced-motion: reduce) {
    .task-create-dialog .task-picker-chip, .task-create-dialog .task-picker-option { transition: none; }
}

/* Keep account controls and planning filters usable on narrow workspaces. */
@media (max-width: 1100px) {
    .topbar { height: auto; min-height: 74px; flex-wrap: wrap; gap: 12px; padding-block: 12px; }
    .topbar > .top-actions { min-width: 0; max-width: 100%; flex-wrap: wrap; gap: 10px; }
    .topbar > .top-actions:last-child { margin-left: auto; justify-content: flex-end; }
    .topbar .crumb { overflow-wrap: anywhere; }
}
@media (max-width: 760px) {
    .schedule-plan-toolbar .field { flex-basis: auto; }
    .schedule-plan-toolbar > .button { flex-basis: auto; }
}
