/* ==========================================================================
   app.css -- the single stylesheet for every HRIS page.
   Served at /app.css (hris/web/app.py) and linked from base.html. Edit the
   look of the whole app here; do not add <style> blocks to templates.

   CONTENTS
     1. Tokens        :root colour/space/type variables, dark-mode overrides
     2. Base          element defaults, layout shell, sidebar, forms, tables
     3. Components    buttons, badges, cards, theme widget, shared utilities
     4. Page sections each scoped by the <body> class set via {% block body_class %}:
        .page-tasks         My Tasks / My Team boards  (list, kanban, side panel)
        .page-me-dashboard  My Dashboard task summary card
   (Sections 1-3 are one continuous block below, in the original order.)
   ========================================================================== */

/* Brand font: Source Sans 3 (SIL OFL 1.1), variable weight 200-900, embedded so
   no page asks Google for it. Latin subset + a one-glyph file for the peso sign.
   ponytail: ~40 KB of base64 rides in this stylesheet, re-sent whenever app.css
   changes; move to a served .woff2 file if the stylesheet starts changing daily. */
@font-face { font-family: "Source Sans 3"; font-style: normal; font-weight: 200 900; font-display: swap;
  src: url(data:font/woff2;base64,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) format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Source Sans 3"; font-style: normal; font-weight: 200 900; font-display: swap;
  src: url(data:font/woff2;base64,d09GMgABAAAAAASgABQAAAAACVwAAAQ3AAMNUAAAAAAAAAAAAAAAAAAAAAAAAAAAGUYbIBw2P0hWQVJEP01WQVJGBmA/U1RBVIEqJyoANC9kEQgKZHswgUABNgIkAwgLBgAEIAWGPAcgGxIIKC4G7Ib6RspiGD3qGDQhRoOHBaF+fjz8vw71vi/ZR3aYlJhYdpBgc/ZkSspTz85ru+JEMBKQT+6n7w8IMwbV8oD4QwqUXpr2Ntedn5vQc0RycjehiISZR4L6e917KRTgUkED8slSqiXjP6algUWgWjQgzfI27VuSkpJFpajVummMTSFoaBfMfib/na3+fmxW1OK/zgNPHJ3UoTTVJF5Vk0lIkBJRfVvXuqWtFFKhL5Q0f9ern+unUZ3zJCcTO5v9QIECueHSeY0yzrw+RK3qG5lBQX+Le1Aw5tSNgoUsfChQC0JSGCr+j4RAvammi/3NcXL4H5AarQzU4yvxlYMq9+6FAGOxJDg4VGCqkGgeWSauBZJHQbRlrROAFAQoJFOXgjOA6xO7AEThC4thw8bL41s3iCbdSguAjcu0OIL2mE4akqlEnqWUYyZly7OucVyTY/sXovCfH7KHgiAg3ku7KNUIoZAwVh0apUG7Q0iE8yvZI0nCaNO1W2CNKWtcQiQwyvOAgOiKTmRIUtxDegIB0RO/AOhN+4DeviRUhRLUX7hJPhNSDPDbAoTiGdcA6prKZzIGc3cKTWlh433Vuumy01lgARIyjJUJjJUrkcsF5fnfLPOagATzRkrCWIXiEFHcAKLuFBcd0Qmj0QWgRjf2HmwP9hdfLy9k6TvBiqjISqK/6PUh/icVJJAjR4kOAqy0fFhdTc0Qm3b7VoSvuT4hZSD8ENv3kbNLmk/GCf8p+YR5vaJzs8XaObNeZ66Gt3cPK+MzM4p1tZq95k1G2oou3TwIzxmYLC1Y5TvzCEy05gKJAstcmm9Zhpnvd0dD7xxFPe0dczndw76qGdbc++1ANvs0betw9ZHA3f2N11+m+Ebo8dUrXvwRCOlP5mQb9bluYGJJ0VjfwApnJOepZvzIytfXUiM+DT3rcJVJAM0/ddpQ/NH0j+1il/HJJ8/Ql94gkA3bNvipjK6nGj4UmX0BfDC0fwUfttQ8/nvy38gfuYdaCQR/wVncn8EYxkCi35nSNWzEnTSB5B4VV8QLAJDLMNZviBR5He4AQOh1ByTDPQGZc24hNzkqqLEvRqDWrHiAO8rYeFYqwtB4C1sSP1Ps6O3cgi718RN0G+4JbA/xH+g1MhXQp0gToTI6ldCvPlXGAfrcRR5VV+lV6VdaTsMoKKLVOYLgp9Ojx6CFmh1P/jXNTmK8WrTpVBrkJDgQO1ABFBdCaYg1GB+B2ELmRZH6RDsxQZyK1vMRFcmV+QSQfodW2yRwshFOdn7ETqHsgjxkXIduvWarLLRcjy7j9MXDmyKNqDquS++9e1BcgBPjQ3rlnsMIalwbQvTp1peqXegymRtlQRtqE6WqcHPq7tWP2g5ddmC8sGlzzyBBWE9KNY+G+tyrjKI0TkFe0ygvpy6Mh7bo6/V4chcPmcrdwh1Jlf0/2gE=) format("woff2");
  unicode-range: U+20B1; }

:root {
  --bg: #f7f7f8; --card: #ffffff; --border: #e2e2e6; --hover-bg: #fafafd;
  --text: #1c1c1f; --muted: #6b6b74; --accent: #2f5fd6; --accent-dark: #1f3f96;
  --danger: #c0392b; --ok: #1a7a3a; --ok-bg: #e3f5e9; --danger-bg: #f4e4e2;
  /* --accent-fg: ink ON --accent. The theme script recomputes it from the
     picked nav colour's luminance, so a light pick gets dark ink. --link
     exists because unstyled links fell back to UA #0000EE: 1.74:1 on the
     dark card. Every status colour keeps the --x / --x-bg pair shape so
     the dark theme can override both. */
  --accent-fg: #ffffff; --link: var(--accent);
  --warn: #8a6100; --warn-bg: #fff3cd; --warn-border: #f0e0a8;
  --info: #084298; --info-bg: #cfe2ff;
  --dot-good: #0ca30c; --dot-warning: #fab219; --dot-critical: #d03b3b; --dot-neutral: #898781;
  --space-1: 0.25rem; --space-2: 0.5rem; --space-3: 0.75rem; --space-4: 1rem; --space-5: 1.5rem; --space-6: 2rem;
  --sidebar-w: 236px;
  --nav-bg: var(--accent-dark);
  --font-family: "Source Sans 3", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  /* Depth + focus. --ring follows --accent, so a picked nav colour carries over. */
  --shadow-sm: 0 1px 2px rgba(16,24,40,0.05); --shadow-md: 0 6px 18px rgba(16,24,40,0.10);
  --ring: color-mix(in srgb, var(--accent) 35%, transparent); --ease: 0.16s ease;
}
[data-theme="dark"] {
  --bg: #16171a; --card: #1e2024; --border: #2f3237; --hover-bg: #24262b;
  --text: #eceef0; --muted: #9a9ea6; --accent: #6d8ff5; --accent-dark: #2a3d80;
  --danger: #e5675a; --ok: #3ecb72;
  /* The -bg pairs used to be missing here, so badges kept light pastel
     grounds in dark mode: 1.85:1 and 2.65:1, now 6.80:1 and 4.68:1.
     White on the dark accent was 3.04:1; dark ink is 6.10:1. */
  --ok-bg: #12301f; --danger-bg: #3a1d1a; --accent-fg: #10131a;
  --warn: #f0c674; --warn-bg: #332a12; --warn-border: #4a3d1c;
  --info: #8fb6f5; --info-bg: #16233d;
  --dot-good: #3ecb72; --dot-warning: #f0c674; --dot-critical: #e5675a; --dot-neutral: #9a9ea6;
  --shadow-sm: 0 1px 2px rgba(0,0,0,0.30); --shadow-md: 0 8px 22px rgba(0,0,0,0.45);
}
* { box-sizing: border-box; }
body { font-family: var(--font-family); background: var(--bg); color: var(--text); margin: 0; }

.app-shell { display: flex; align-items: stretch; min-height: 100vh; }

/* --- Left sidebar --- */
.sidebar {
  flex: 0 0 var(--sidebar-w); width: var(--sidebar-w);
  background: var(--nav-bg); color: white;
  position: sticky; top: 0; height: 100vh; overflow-y: auto;
  display: flex; flex-direction: column;
}
.sidebar .brand {
  font-weight: 700; font-size: 1.05rem; padding: 1.25rem 1.25rem 1rem;
  border-bottom: 1px solid rgba(255,255,255,0.12);
  display: flex; align-items: center; gap: 0.6rem;
}
.sidebar .brand img { height: 1.9rem; max-width: 2.6rem; object-fit: contain; border-radius: 4px; }
.sidebar .brand .brand-name { overflow-wrap: anywhere; }
.icon { width: 1.1rem; height: 1.1rem; flex: none; }
.nav-link .icon { opacity: 0.85; }
.nav-link.active .icon, .nav-link:hover .icon { opacity: 1; }
.brand-mark {
  width: 1.9rem; height: 1.9rem; flex: none; border-radius: 7px; display: grid; place-items: center;
  background: rgba(255,255,255,0.16); font-size: 1rem;
}
.nav-toggle { display: none; margin: 0 0 0 auto; padding: 0.35rem; background: none; border: 1px solid rgba(255,255,255,0.25); color: white; line-height: 0; }
.nav-toggle .icon { width: 1.3rem; height: 1.3rem; }
.sidebar nav { flex: 1; padding: 0.75rem 0.75rem; }
.nav-group-label {
  font-size: 0.7rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em;
  color: rgba(255,255,255,0.55); margin: 1.1rem 0.6rem 0.35rem;
  cursor: pointer; list-style: none; user-select: none;
  display: flex; align-items: center; gap: 0.35rem;
}
.nav-group-label::-webkit-details-marker { display: none; }
.nav-group-label::before { content: "▸"; display: inline-block; font-size: 0.6rem; color: rgba(255,255,255,0.4); transition: transform 0.15s ease; }
details.nav-group[open] > .nav-group-label::before { transform: rotate(90deg); }
.nav-group-label:hover { color: rgba(255,255,255,0.85); }
nav > details.nav-group:first-child > .nav-group-label { margin-top: 0.25rem; }
.nav-link {
  display: flex; align-items: center; gap: 0.6rem; color: rgba(255,255,255,0.88); text-decoration: none; font-weight: 500;
  font-size: 0.92rem; padding: 0.5rem 0.6rem; border-radius: 7px; margin-bottom: 0.15rem;
}
.nav-link:hover { background: rgba(255,255,255,0.10); color: white; }
.nav-link.active { background: rgba(255,255,255,0.16); color: white; box-shadow: inset 3px 0 0 white; }

.sidebar-footer { padding: 0.9rem 1.1rem; border-top: 1px solid rgba(255,255,255,0.12); }
.sidebar-footer .user { font-size: 0.82rem; line-height: 1.35; margin-bottom: 0.6rem; }
.sidebar-footer .user a { color: inherit; text-decoration: none; font-weight: 600; }
.sidebar-footer .user a:hover { text-decoration: underline; }
.sidebar-footer .user a.account-link { font-weight: 400; font-size: 0.78rem; color: rgba(255,255,255,0.75); }
.sidebar-footer .user .role { color: rgba(255,255,255,0.6); font-size: 0.78rem; }
.sidebar-footer form.logout { margin: 0; }
.sidebar-footer form.logout button {
  width: 100%; background: transparent; border: 1px solid rgba(255,255,255,0.35); color: white;
  margin: 0; padding: 0.4rem 0.7rem; font-size: 0.82rem; font-weight: 500;
}
.sidebar-footer form.logout button:hover { background: rgba(255,255,255,0.12); }

/* --- Main column --- */
.main-col { flex: 1; min-width: 0; display: flex; flex-direction: column; }
main { max-width: 1080px; width: 100%; margin: 2rem auto; padding: 0 1.5rem; flex: 1; }

h1 { font-size: 1.5rem; margin-bottom: 0.25rem; }
h2 { font-size: 1.15rem; margin-top: 2rem; }
/* One raised sheet, three users; they differ only in padding/placement. */
.card, .stat-tile, #theme-widget-panel { background: var(--card); border: 1px solid var(--border); border-radius: 10px; }
.card { padding: 1.25rem 1.5rem; margin-bottom: 1.5rem; }
table { width: 100%; border-collapse: collapse; font-size: 0.92rem; }
th, td { text-align: left; padding: 0.5rem 0.6rem; border-bottom: 1px solid var(--border); }
th { color: var(--muted); font-weight: 600; font-size: 0.8rem; text-transform: uppercase; letter-spacing: 0.02em; }
tr:hover td { background: var(--hover-bg); }
.num { text-align: right; font-variant-numeric: tabular-nums; }
/* Many-column entry grid (payroll run): fixed layout so every column
   fits the content width, header labels wrap instead of scrolling. */
.compact-grid { table-layout: fixed; min-width: 960px; }
.compact-grid th, .compact-grid td { padding: 0.45rem 0.25rem; vertical-align: middle; }
.compact-grid th { font-size: 0.68rem; text-transform: none; letter-spacing: 0; white-space: normal; overflow-wrap: normal; line-height: 1.2; vertical-align: bottom; }
.compact-grid th:nth-child(n+2) { text-align: right; }
.compact-grid th:first-child, .compact-grid td:first-child { width: 15%; padding-left: 0; }
.compact-grid th:nth-child(2), .compact-grid td:nth-child(2) { width: 10%; padding-right: 0.6rem; }
/* Only the four peso columns (De minimis onwards) are wide; the nine
   day/hour counts share the rest evenly. */
.compact-grid th:nth-child(n+12), .compact-grid td:nth-child(n+12) { width: 8%; }
.compact-grid .emp-no { display: block; font-size: 0.75rem; color: var(--muted); }
.scroll-x:has(.compact-grid) + button { margin-top: var(--space-4); }
.compact-grid input { padding: 0.3rem; font-size: 0.8rem; text-align: right; }
.compact-grid input[type=number] { -moz-appearance: textfield; }
.compact-grid input[type=number]::-webkit-outer-spin-button,
.compact-grid input[type=number]::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
form.inline { display: flex; gap: 0.5rem; }
.user-edit { margin-bottom: 0.4rem; }
.user-edit > summary { cursor: pointer; color: var(--link); }
.user-edit[open] { min-width: 16rem; }
.grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 0.75rem; }
label { display: block; font-size: 0.8rem; color: var(--muted); margin-bottom: 0.2rem; }
a { color: var(--link); }
input, select, textarea { width: 100%; padding: 0.45rem 0.55rem; border: 1px solid var(--border); border-radius: 6px; font-size: 0.9rem; }
/* Multi-line fields span their card, stack above their button, and grow downward only. */
textarea { display: block; box-sizing: border-box; font-family: inherit; line-height: 1.45; resize: vertical; }
.card form textarea { margin-bottom: var(--space-3); }
/* Fields had no colours of their own, so dark mode left them UA black-on-white. */
input:not([type=color]):not([type=checkbox]):not([type=radio]), select, textarea { background: var(--card); color: var(--text); }
button {
  background: var(--accent); color: var(--accent-fg); border: none; border-radius: 6px;
  padding: 0.55rem 1.1rem; font-size: 0.9rem; font-weight: 600; cursor: pointer; margin-top: 1rem;
}
button:hover { background: var(--accent-dark); }
button.secondary { background: transparent; color: var(--danger); border: 1px solid var(--danger); padding: 0.3rem 0.7rem; margin: 0; }
.badge { display: inline-block; padding: 0.15rem 0.55rem; border-radius: 999px; font-size: 0.75rem; font-weight: 600; }
.badge.inactive { background: var(--danger-bg); color: var(--danger); }
.badge.draft { background: var(--warn-bg); color: var(--warn); }
.badge.submitted { background: var(--info-bg); color: var(--info); }
.badge.active, .badge.finalized { background: var(--ok-bg); color: var(--ok); }
.muted, .form-box .row .label { color: var(--muted); font-size: 0.85rem; }
.payslip { display: grid; grid-template-columns: 1fr auto; gap: 0.25rem 1rem; padding: 0.5rem 0; }
.payslip .total { border-top: 1px solid var(--border); font-weight: 700; padding-top: 0.5rem; margin-top: 0.25rem; }
.payslip .net { color: var(--ok); font-size: 1.05rem; }
/* Section break (e.g. above SSS/NET PAY) — on both cells of the row so
   the label and its amount stay aligned. */
.payslip .sep { margin-top: 0.6rem; }
.kpi-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 1rem; margin-bottom: 1.5rem; }
.stat-tile { padding: 1rem 1.25rem; display: flex; flex-direction: column; }
.stat-tile .label { color: var(--muted); margin-bottom: auto; }
.stat-tile .value { font-size: 1.65rem; font-weight: 600; margin-top: 0.3rem; color: var(--text); }
.stat-tile .sub { font-size: 0.78rem; color: var(--muted); margin-top: 0.15rem; }
a.tile-link { display: block; color: inherit; text-decoration: none; transition: border-color 0.15s, box-shadow 0.15s; }
a.tile-link:hover, a.tile-link:focus-visible { border-color: var(--accent); box-shadow: 0 2px 8px rgba(0,0,0,0.06); }

/* --- Interactive look: depth, hover, press, focus (one place for every page) --- */
.card, .stat-tile { box-shadow: var(--shadow-sm); }
a.tile-link { transition: border-color var(--ease), box-shadow var(--ease), transform var(--ease); }
a.tile-link:hover, a.tile-link:focus-visible { box-shadow: var(--shadow-md); transform: translateY(-2px); outline: none; }
a.tile-link:focus-visible { box-shadow: 0 0 0 3px var(--ring), var(--shadow-md); }
/* A card that is just a heading plus one link (Reports): the whole card is the link. */
.grid > .card:has(> h2 + a:last-child) {
  position: relative; cursor: pointer;
  transition: border-color var(--ease), box-shadow var(--ease), transform var(--ease);
}
.grid > .card:has(> h2 + a:last-child) > a { text-decoration: none; font-weight: 600; font-size: 0.85rem; }
.grid > .card:has(> h2 + a:last-child) > a::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.grid > .card:has(> h2 + a:last-child):hover { border-color: var(--accent); box-shadow: var(--shadow-md); transform: translateY(-2px); }
.grid > .card:has(> h2 + a:last-child):has(> a:focus-visible) { border-color: var(--accent); box-shadow: 0 0 0 3px var(--ring), var(--shadow-md); }
.grid > .card:has(> h2 + a:last-child) > a:focus-visible { outline: none; }
/* Buttons: smooth hover, slight lift, press down, visible keyboard ring. */
button { transition: background-color var(--ease), color var(--ease), border-color var(--ease), box-shadow var(--ease), transform var(--ease); }
button:not(.secondary):not(.nav-swatch):hover { box-shadow: var(--shadow-md); transform: translateY(-1px); }
button.secondary:hover { background: color-mix(in srgb, currentColor 10%, transparent); }
/* Dark ink on the dark --accent-dark hover read at 1.84:1; lightened it is 7.62:1.
   :where() keeps this as weak as `button:hover`, so class rules still win. */
:where([data-theme="dark"]) button:hover { background: color-mix(in srgb, var(--accent) 82%, white); }
button:active:not(:disabled) { transform: translateY(1px); box-shadow: none; }
button:focus-visible, a:focus-visible, summary:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
button:disabled { opacity: 0.55; cursor: not-allowed; transform: none; box-shadow: none; }
/* Fields: accent border + soft ring on focus instead of the browser default. */
input:not([type=checkbox]):not([type=radio]):not([type=color]), select, textarea { transition: border-color var(--ease), box-shadow var(--ease); }
input:not([type=checkbox]):not([type=radio]):not([type=color]):focus, select:focus, textarea:focus {
  outline: none; border-color: var(--accent); box-shadow: 0 0 0 3px var(--ring);
}
input[type=checkbox], input[type=radio] { accent-color: var(--accent); }
/* A wide table scrolls inside its card instead of pushing the page sideways.
   Not where a table holds pop-up menus (tasks), which a scroll box would clip. */
.card:has(> table):not(:has(.row-menu)) { overflow-x: auto; }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; }
  a.tile-link:hover, .grid > .card:hover, button:hover, button:active { transform: none !important; }
}
.dot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; margin-right: 6px; }
.dot.good { background: var(--dot-good); }
.dot.warning { background: var(--dot-warning); }
.dot.critical { background: var(--dot-critical); }
.dot.neutral { background: var(--dot-neutral); }
.chart-card table { margin-top: 1rem; font-size: 0.82rem; }
.section-title { font-size: 0.95rem; font-weight: 700; margin: 2rem 0 0.75rem; color: var(--text); }
.form-box { border: 1px solid var(--border); border-radius: 8px; padding: 1.5rem; }
.form-box .row { display: grid; grid-template-columns: 1fr 1fr; gap: 0.5rem 2rem; padding: 0.35rem 0; border-bottom: 1px dotted var(--border); }
.form-box .row .value { font-weight: 600; text-align: right; }
.form-box h3 { margin: 1.25rem 0 0.5rem; }
/* --- Utilities: the inline style= attributes that repeated across
   templates. Patterns used twice or more only; one-offs stay inline. --- */
.mt-0 { margin-top: 0; }
.mt-2 { margin-top: var(--space-2); }
.mt-3 { margin-top: var(--space-3); }
.mt-4 { margin-top: var(--space-4); }
.ml-3 { margin-left: var(--space-3); }
.m-0 { margin: 0; }
.pl-4 { padding-left: var(--space-4); }
.inline { display: inline; }
.hidden { display: none; }
.flex-1 { flex: 1; }
.scroll-x { overflow-x: auto; }
.text-danger { color: var(--danger); }
.text-ok { color: var(--ok); }
.text-warn { color: var(--warn); }
.border-danger { border-color: var(--danger); }
.label-caps, .stat-tile .label { text-transform: uppercase; font-size: 0.75rem; letter-spacing: 0.02em; }
.subhead, .form-box h3 { font-size: 0.85rem; text-transform: uppercase; letter-spacing: 0.03em; color: var(--muted); }
/* Filter/search bar: inputs and their button sitting on one baseline. */
.form-row { align-items: flex-end; gap: var(--space-3); }

@media print {
  :root {
    --bg: #f7f7f8 !important; --card: #ffffff !important; --text: #1c1c1f !important;
    --border: #e2e2e6 !important; --hover-bg: #fafafd !important;
    --accent: #2f5fd6 !important; --accent-dark: #1f3f96 !important; --nav-bg: #1f3f96 !important;
    --ok: #1a7a3a !important; --danger: #c0392b !important;
    --ok-bg: #e3f5e9 !important; --danger-bg: #f4e4e2 !important;
    --accent-fg: #ffffff !important;
    --link: #2f5fd6 !important;
    --warn: #8a6100 !important; --warn-bg: #fff3cd !important; --warn-border: #f0e0a8 !important;
    --info: #084298 !important; --info-bg: #cfe2ff !important;
    --dot-good: #0ca30c !important; --dot-warning: #fab219 !important;
    --dot-critical: #d03b3b !important; --dot-neutral: #898781 !important;
  }
  .sidebar, form, .no-print, #theme-widget, .topbar { display: none !important; }
  .app-shell { display: block; }
  main { max-width: 100%; margin: 0; }
  body { background: white; }
}

@media (max-width: 760px) {
  .app-shell { flex-direction: column; }
  .sidebar { position: relative; height: auto; width: 100%; flex: 0 0 auto; }
  .sidebar .brand { padding: 0.75rem 1rem; border-bottom: 0; }
  .nav-toggle { display: block; }
  .sidebar:not(.open) nav, .sidebar:not(.open) .sidebar-footer { display: none; }
  .sidebar nav { padding: 0.75rem 1rem; }
  .nav-group-label { margin: 0.5rem 0 0.15rem; }
  .nav-group-body { display: flex; flex-wrap: wrap; gap: 0.25rem; }
}

/* --- Display Settings widget (client-side only: localStorage, per-browser) --- */
#theme-widget { position: fixed; bottom: 1.25rem; right: 1.25rem; z-index: 1000; }
/* A <button>, so colour, border and :hover come from the button rule. */
#theme-widget-toggle {
  width: 48px; height: 48px; border-radius: 50%; font-size: 1.25rem;
  box-shadow: 0 2px 12px rgba(0,0,0,0.28);
  display: flex; align-items: center; justify-content: center; padding: 0; margin: 0;
}
#theme-widget-panel { position: absolute; bottom: 60px; right: 0; width: 250px; box-shadow: 0 6px 24px rgba(0,0,0,0.22); padding: 1rem; }
#theme-widget-panel h4 { margin: 0 0 0.75rem; font-size: 0.8rem; text-transform: uppercase; letter-spacing: 0.03em; color: var(--muted); }
#theme-widget-panel .row { display: flex; align-items: center; justify-content: space-between; font-size: 0.85rem; color: var(--text); margin-bottom: 0.65rem; gap: 0.5rem; }
#theme-widget-panel input[type=color] { width: 40px; height: 26px; padding: 0; border: 1px solid var(--border); border-radius: 6px; cursor: pointer; }
#theme-widget-panel select { width: auto; flex: 1; margin-left: 0.5rem; }
#theme-widget-panel input[type=checkbox] { width: auto; }
#theme-widget-panel .swatches { display: flex; flex-wrap: wrap; gap: 0.4rem; margin: 0 0 0.65rem; }
.nav-swatch { width: 22px; height: 22px; border-radius: 50%; border: 2px solid transparent; padding: 0; cursor: pointer; box-shadow: inset 0 0 0 1px rgba(0,0,0,0.15); }
.nav-swatch:hover { transform: scale(1.12); }
.nav-swatch.selected { border-color: var(--text); }
#theme-widget-reset {
  width: 100%; margin-top: 0.15rem; background: transparent; color: var(--muted);
  border: 1px solid var(--border); font-weight: 500; font-size: 0.78rem; padding: 0.4rem;
}
#theme-widget-reset:hover { background: var(--hover-bg); color: var(--text); }

/* ===== Page: tasks (me_tasks.html, me_team.html) ===== */
.page-tasks .tl-head { display: flex; align-items: center; justify-content: space-between; gap: var(--space-3); flex-wrap: wrap; margin-bottom: var(--space-4); }
.page-tasks .tl-head h1, .page-tasks .tl-head h2 { margin: 0; display: flex; align-items: baseline; gap: var(--space-2); }
.page-tasks .tl-head .count { font-size: 0.9rem; font-weight: 500; color: var(--muted); }
.page-tasks .tl-tools { display: flex; gap: var(--space-2); align-items: center; }
@media (max-width: 480px) { .page-tasks .tl-tools { flex-wrap: wrap; width: 100%; } .page-tasks .tl-tools input[type=search] { width: auto; flex: 1 1 8rem; min-width: 0; } }
.page-tasks .tl-tools input[type=search] { width: 14rem; }
.page-tasks .tl-tools button { margin: 0; white-space: nowrap; }

.page-tasks .tl-wrap { overflow-x: auto; background: var(--card); border: 1px solid var(--border); border-radius: 10px; padding: var(--space-2) var(--space-4) var(--space-3); }
.page-tasks table.tl { min-width: 680px; table-layout: fixed; border-collapse: collapse; }
.page-tasks table.tl td { border-bottom: 1px solid var(--border); padding: 0 0.6rem; height: 2.4rem; vertical-align: middle; }
.page-tasks table.tl tr:hover td { background: var(--hover-bg); }
.page-tasks table.tl .c-name { width: auto; }
.page-tasks table.tl .c-who { width: 11rem; }
.page-tasks table.tl .c-date { width: 7.5rem; }
.page-tasks table.tl .c-pr { width: 7rem; }
.page-tasks table.tl .c-act { width: 2.5rem; }
.page-tasks table.tl .c-st { width: 8rem; }

/* Group header row: caret, status dot + name, count. */
.page-tasks tbody.grp tr.grp-head td { border-bottom: none; padding-top: var(--space-5); height: auto; background: transparent !important; }
.page-tasks .grp-caret { background: none; border: none; color: var(--muted); padding: 0 0.3rem 0 0; margin: 0; cursor: pointer; font-size: 0.8rem; transition: transform .15s; }
.page-tasks .grp-caret:hover { background: none; color: var(--text); }
.page-tasks tbody.grp.collapsed .grp-caret { transform: rotate(-90deg); }
.page-tasks tbody.grp.collapsed tr:not(.grp-head) { display: none; }
.page-tasks .grp-name { display: inline-flex; align-items: center; font-weight: 600; font-size: 0.95rem; color: var(--text); }
.page-tasks .dot { background: var(--g); }
/* Status column: the shared .badge shape, neutral ground, coloured dot. */
.page-tasks .badge.st { display: inline-flex; align-items: center; background: var(--bg); color: var(--text); border: 1px solid var(--border); font-weight: 500; white-space: nowrap; }
.page-tasks .badge.st .dot { width: 7px; height: 7px; margin-right: 5px; }
.page-tasks .grp-head .count { color: var(--muted); font-size: 0.8rem; margin-left: var(--space-2); }
.page-tasks .g-to-do { --g: var(--dot-neutral); }
.page-tasks .g-in-progress { --g: var(--accent); }
.page-tasks .g-stuck { --g: var(--dot-critical); }
.page-tasks .g-done { --g: var(--dot-good); }

/* In-place editing: text on screen, an invisible native control on top. */
.page-tasks .edit { position: relative; display: flex; align-items: center; gap: 0.35rem; min-height: 1.6rem; border-radius: 4px; }
.page-tasks .edit > select, .page-tasks .edit > input { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; padding: 0; border: none; }
.page-tasks td:hover > .edit.can { outline: 1px solid var(--border); outline-offset: 2px; }
.page-tasks .faint { color: var(--muted); opacity: .55; }

.page-tasks .name-cell { display: flex; align-items: center; gap: 0.55rem; min-width: 0; }
.page-tasks .t-open { background: none; border: none; padding: 0; margin: 0; color: var(--text); font: inherit; text-align: left; cursor: pointer; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.page-tasks .t-open:hover { background: none; color: var(--link); text-decoration: underline; }
.page-tasks .tag { font-size: 0.72rem; color: var(--muted); white-space: nowrap; }
.page-tasks tbody.g-done .t-open { color: var(--muted); text-decoration: line-through; }

.page-tasks .due-over { color: var(--danger); font-weight: 600; }
.page-tasks .due-soon { color: var(--warn); font-weight: 600; }
.page-tasks .pr, .page-me-dashboard .pr { font-size: 0.85rem; color: var(--muted); white-space: nowrap; }
.page-tasks .p-urgent .pr, .page-tasks .p-high .pr,
.page-me-dashboard .p-urgent .pr, .page-me-dashboard .p-high .pr { display: inline-block; padding: 0.1rem 0.5rem; border-radius: 999px; font-size: 0.75rem; font-weight: 600; }
.page-tasks .p-urgent .pr, .page-me-dashboard .p-urgent .pr { background: var(--danger-bg); color: var(--danger); }
.page-tasks .p-high .pr, .page-me-dashboard .p-high .pr { background: var(--warn-bg); color: var(--warn); }
.page-tasks .avatar { display: inline-flex; align-items: center; justify-content: center; width: 1.5rem; height: 1.5rem; border-radius: 50%; background: var(--accent); color: var(--accent-fg); font-size: 0.62rem; font-weight: 700; flex: 0 0 auto; }
.page-tasks .who { display: flex; align-items: center; gap: 0.4rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-size: 0.85rem; }

.page-tasks .row-menu { position: relative; opacity: .45; }
.page-tasks tr:hover .row-menu, .page-tasks .row-menu[open], .page-tasks .row-menu:focus-within { opacity: 1; }
.page-tasks .row-menu > summary { list-style: none; cursor: pointer; color: var(--muted); padding: 0 0.4rem; border-radius: 4px; font-weight: 700; }
.page-tasks .row-menu > summary::-webkit-details-marker { display: none; }
.page-tasks .row-menu > summary:hover { background: var(--border); color: var(--text); }
.page-tasks .row-menu .pop { position: absolute; right: 0; top: 1.6rem; z-index: 5; background: var(--card); border: 1px solid var(--border); border-radius: 8px; box-shadow: 0 6px 20px rgba(0,0,0,.12); padding: 0.3rem; min-width: 8rem; }
.page-tasks .pop button { display: block; width: 100%; text-align: left; background: none; color: var(--text); margin: 0; padding: 0.4rem 0.6rem; border-radius: 5px; font-weight: 500; }
.page-tasks .pop button:hover { background: var(--hover-bg); }
.page-tasks .pop button.danger { color: var(--danger); }

.page-tasks tr.quick-add td { height: 2.2rem; }
.page-tasks tr.quick-add input { border: none; background: transparent !important; padding: 0.2rem 0 0.2rem 1.1rem; color: var(--text); }
.page-tasks tr.quick-add input::placeholder { color: var(--muted); }
.page-tasks tr.quick-add input:focus { outline: none; }
.page-tasks tr.quick-add:focus-within td { background: var(--hover-bg); }
.page-tasks .tl-empty td { color: var(--muted); font-size: 0.85rem; }

/* Side panel: a native <dialog> pinned to the right edge. */
.page-tasks dialog.panel { margin: 0 0 0 auto; height: 100vh; max-height: 100vh; width: min(460px, 100vw); border: none; border-left: 1px solid var(--border); padding: 0; background: var(--card); color: var(--text); box-shadow: -8px 0 30px rgba(0,0,0,.15); }
.page-tasks dialog.panel::backdrop { background: rgba(15, 17, 22, .35); }
.page-tasks .panel-body { padding: var(--space-5); display: flex; flex-direction: column; gap: var(--space-4); }
.page-tasks .panel-top { display: flex; justify-content: space-between; align-items: flex-start; gap: var(--space-3); }
.page-tasks .panel-top h2 { margin: 0; font-size: 1.15rem; word-break: break-word; }
.page-tasks .panel .x { background: none; color: var(--muted); border: none; font-size: 1.2rem; margin: 0; padding: 0 0.3rem; }
.page-tasks .panel .x:hover { color: var(--text); background: none; }
.page-tasks .panel .title-in { font-size: 1.15rem; font-weight: 700; border: 1px solid transparent; padding: 0.3rem 0.4rem; margin-left: -0.4rem; }
.page-tasks .panel .title-in:hover, .page-tasks .panel .title-in:focus { border-color: var(--border); }
.page-tasks .fields { display: grid; grid-template-columns: 6.5rem 1fr; gap: var(--space-2) var(--space-3); align-items: center; }
.page-tasks .fields label { margin: 0; }
.page-tasks .panel textarea { width: 100%; min-height: 7rem; font: inherit; padding: 0.5rem; border: 1px solid var(--border); border-radius: 6px; background: var(--card); color: var(--text); box-sizing: border-box; resize: vertical; }
.page-tasks .panel input, .page-tasks .panel select { box-sizing: border-box; max-width: 100%; }
.page-tasks .panel .x:focus:not(:focus-visible) { outline: none; }
.page-tasks .panel .notes-ro { white-space: pre-wrap; margin: 0; }
.page-tasks .task-notes { list-style: none; margin: var(--space-2) 0 0; padding: 0; display: grid; gap: var(--space-3); font-size: 0.875rem; }
.page-tasks .task-notes .note-body { display: block; white-space: pre-line; }
.page-tasks .task-notes .auto { font-size: 0.75rem; }
.page-tasks .task-notes .auto .note-body { color: var(--muted); }
.page-tasks .note-replies { list-style: none; margin: var(--space-2) 0 0; padding: 0 0 0 var(--space-3); border-left: 2px solid var(--border); display: grid; gap: var(--space-2); }
.page-tasks .task-notes .link-btn { background: none; border: none; padding: 0; margin: var(--space-1) 0 0; color: var(--link); font-size: 0.8rem; cursor: pointer; }
.page-tasks .task-notes .link-btn:hover { text-decoration: underline; background: none; }
.page-tasks .note-own:not([hidden]) { display: flex; gap: var(--space-3); }
.page-tasks .task-notes .reply-box { min-height: 3rem; margin-top: var(--space-1); }
.page-tasks .note-add { display: grid; gap: var(--space-2); justify-items: end; }
.page-tasks .note-add textarea { min-height: 3.5rem; }
.page-tasks .tag-list { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2); }
.page-tasks .tag-list .x { padding: 0 0.25rem; }
.page-tasks .panel-foot { display: flex; justify-content: space-between; align-items: center; gap: var(--space-2); }
.page-tasks .panel-foot button { margin: 0; }

/* Task window: the shared right-side panel, wider; details first, activity
   below; one scroll for the whole panel, title bar stays in view. */
.page-tasks dialog.panel.task-window { width: min(680px, 100vw); }
.page-tasks .tw { display: flex; flex-direction: column; height: 100%; overflow-y: auto; }
.page-tasks .tw-top { position: sticky; top: 0; z-index: 2; background: var(--card); display: flex; justify-content: space-between; align-items: center; gap: var(--space-3); padding: var(--space-4) var(--space-5); border-bottom: 1px solid var(--border); }
.page-tasks .tw-top .title-in { flex: 1; font-size: 1.4rem; }
.page-tasks .tw-top h2 { margin: 0; font-size: 1.4rem; word-break: break-word; }
.page-tasks .tw-main { padding: var(--space-5); display: flex; flex-direction: column; gap: var(--space-5); }
.page-tasks .tw-main .fields { grid-template-columns: 6.5rem minmax(0, 1fr) 6.5rem minmax(0, 1fr); }
.page-tasks .tw-main .fields .tag-list { grid-column: 2 / -1; }
.page-tasks .tw-main .tw-desc { min-height: 12rem; }
.page-tasks .tw-side { padding: var(--space-5); border-top: 1px solid var(--border); background: var(--bg); display: flex; flex-direction: column; gap: var(--space-3); }
.page-tasks .tw-side .fp-section { margin-top: 0; }
.page-tasks .att-head { display: flex; justify-content: space-between; align-items: center; }
.page-tasks .att-add { margin: 0; color: var(--link); font-size: 0.875rem; cursor: pointer; }
.page-tasks .att-add:hover { text-decoration: underline; }
.page-tasks .att-list { list-style: none; margin: var(--space-2) 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)); gap: var(--space-2); }
.page-tasks .att-list li { display: flex; align-items: center; gap: var(--space-2); border: 1px solid var(--border); border-radius: 8px; padding: var(--space-2); min-width: 0; }
.page-tasks .att-thumb { flex: none; width: 3rem; height: 3rem; border-radius: 6px; overflow: hidden; background: var(--bg); display: grid; place-items: center; }
.page-tasks .att-thumb img { width: 100%; height: 100%; object-fit: cover; }
.page-tasks .att-ext { font-size: 0.7rem; font-weight: 700; color: var(--muted); }
.page-tasks .att-meta { flex: 1; min-width: 0; display: grid; font-size: 0.875rem; }
.page-tasks .att-meta a { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
@media (max-width: 760px) {
  .page-tasks dialog.panel.task-window { width: 100vw; height: 100dvh; max-width: 100vw; border: none; }
  .page-tasks .tw-main .fields { grid-template-columns: 6.5rem minmax(0, 1fr); }
}

.page-tasks table.tl .c-cf { width: 8.5rem; }
.page-tasks .cf-pill { display: inline-block; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; padding: 0.1rem 0.5rem; border-radius: 4px; background: var(--info-bg); color: var(--info); font-size: 0.78rem; font-weight: 600; }
.page-tasks input.cf-input { border: 1px solid transparent; background: transparent; padding: 0.2rem 0.35rem; margin-left: -0.35rem; width: 100%; border-radius: 4px; font-size: 0.88rem; box-sizing: border-box; }
.page-tasks input.cf-input:hover, .page-tasks input.cf-input:focus { border-color: var(--border); }
.page-tasks .name-cell { position: relative; padding-left: 1.1rem; }
.page-tasks .drag-handle { position: absolute; left: 0; top: 50%; transform: translateY(-50%); width: 0.65rem; text-align: center; color: var(--muted); cursor: grab; opacity: .35; user-select: none; height: 0.7rem; border-block: 2px solid currentColor; box-sizing: border-box; }
.page-tasks .drag-handle::after { content: ""; position: absolute; left: 0; right: 0; top: 50%; border-top: 2px solid currentColor; transform: translateY(-50%); }
.page-tasks tr:hover .drag-handle { opacity: 1; }
.page-tasks tr.task-row.dragging td { opacity: .35; }
.page-tasks tbody.grp.drop-target { outline: 2px dashed var(--accent); outline-offset: -2px; }
.page-tasks tbody.grp.drop-target tr.grp-head td { background: var(--info-bg) !important; }
.page-tasks .fp-row { border: 1px solid var(--border); border-radius: 8px; padding: 0.7rem 0.8rem; display: flex; flex-direction: column; gap: 0.5rem; }
.page-tasks .fp-row .top { display: flex; gap: 0.5rem; align-items: center; }
.page-tasks .fp-row .type { font-size: 0.72rem; color: var(--muted); border: 1px solid var(--border); border-radius: 4px; padding: 0.1rem 0.4rem; white-space: nowrap; }
.page-tasks .fp-row .acts, .page-tasks .fp-add .acts { display: flex; justify-content: space-between; }
.page-tasks .fp-row button, .page-tasks .fp-add button { margin: 0; }
.page-tasks .fp-row textarea, .page-tasks .fp-add textarea { width: 100%; font: inherit; padding: 0.4rem; border: 1px solid var(--border); border-radius: 6px; background: var(--card); color: var(--text); box-sizing: border-box; }
.page-tasks .fp-section { font-size: 0.75rem; text-transform: uppercase; letter-spacing: .04em; color: var(--muted); font-weight: 700; margin-top: 0.5rem; }
.page-tasks .tl-tools .ghost { background: transparent; color: var(--text); border: 1px solid var(--border); }
.page-tasks .tl-tools .ghost:hover { background: var(--hover-bg); }

.page-tasks [data-pane][hidden] { display: none !important; }
/* List / Board toggle. */
.page-tasks .tl-view { display: inline-flex; border: 1px solid var(--border); border-radius: 6px; overflow: hidden; }
.page-tasks .tl-view button { background: transparent; color: var(--muted); border: none; border-radius: 0; padding: 0.35rem 0.7rem; font-weight: 600; }
.page-tasks .tl-view button:hover { background: var(--hover-bg); color: var(--text); }
.page-tasks .tl-view button[aria-pressed=true] { background: var(--hover-bg); color: var(--text); box-shadow: inset 0 -2px 0 var(--accent); }

/* Kanban: one column per status, scrolls sideways when narrow. */
.page-tasks .kb { display: grid; grid-template-columns: repeat(4, minmax(15rem, 1fr)); gap: var(--space-3); overflow-x: auto; padding-bottom: var(--space-2); }
.page-tasks .kb-col { background: var(--card); border: 1px solid var(--border); border-radius: 10px; padding: var(--space-3); display: flex; flex-direction: column; gap: var(--space-2); min-height: 8rem; }
.page-tasks .kb-col.drop-target { outline: 2px dashed var(--accent); outline-offset: -2px; background: var(--info-bg); }
.page-tasks .kb-col-head { display: flex; align-items: center; gap: var(--space-2); margin-bottom: var(--space-1); }
.page-tasks .kb-col-head .count { color: var(--muted); font-size: 0.8rem; }
.page-tasks .kb-card { background: var(--bg); border: 1px solid var(--border); border-radius: 8px; padding: 0.6rem 0.7rem; display: flex; flex-direction: column; gap: 0.4rem; }
.page-tasks .kb-card[draggable=true] { cursor: grab; }
.page-tasks .kb-card:hover { border-color: var(--muted); }
.page-tasks .kb-card.dragging { opacity: .35; }
.page-tasks .kb-card .t-open { white-space: normal; font-weight: 600; }
.page-tasks .g-done .kb-card .t-open { color: var(--muted); text-decoration: line-through; }
.page-tasks .kb-meta { display: flex; align-items: center; gap: 0.6rem; flex-wrap: wrap; font-size: 0.8rem; }
.page-tasks .kb-meta .who { margin-left: auto; }
.page-tasks .kb-pills { display: flex; gap: 0.3rem; flex-wrap: wrap; }
.page-tasks .kb-empty { color: var(--muted); font-size: 0.85rem; }

/* ===== Page: my dashboard (me_dashboard.html) ===== */
.page-me-dashboard .ts-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(22rem, 100%), 1fr)); gap: 0 0.75rem; }
.page-me-dashboard .ts-head { display: flex; justify-content: space-between; align-items: baseline; gap: var(--space-2); }
.page-me-dashboard .ts-head h2 { margin: 0; font-size: 1.05rem; }
.page-me-dashboard .ts-counts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-2); margin: var(--space-3) 0; }
.page-me-dashboard .ts-count { border: 1px solid var(--border); border-radius: 8px; padding: 0.5rem 0.7rem; }
.page-me-dashboard .ts-count .n { font-size: 1.4rem; font-weight: 600; line-height: 1.2; }
.page-me-dashboard .ts-count .l { font-size: 0.75rem; color: var(--muted); }
.page-me-dashboard .ts-count.over .n { color: var(--danger); }
.page-me-dashboard .ts-count.soon .n { color: var(--warn); }
.page-me-dashboard .ts-count.zero .n { color: var(--muted); }
.page-me-dashboard .ts-list { list-style: none; margin: 0; padding: 0; }
.page-me-dashboard .ts-list li + li { border-top: 1px solid var(--border); }
.page-me-dashboard .ts-list a { display: flex; align-items: center; gap: 0.6rem; padding: 0.5rem 0.2rem; color: var(--text); text-decoration: none; }
.page-me-dashboard .ts-list a:hover { background: var(--hover-bg); }
.page-me-dashboard .ts-title { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.page-me-dashboard .ts-status { font-size: 0.72rem; color: var(--muted); white-space: nowrap; }
.page-me-dashboard .ts-due { font-size: 0.82rem; white-space: nowrap; }
.page-me-dashboard .ts-av { display: inline-flex; align-items: center; justify-content: center; width: 1.5rem; height: 1.5rem; border-radius: 50%; background: var(--accent); color: var(--accent-fg); font-size: 0.62rem; font-weight: 700; flex: 0 0 auto; }
.page-me-dashboard .ts-list .due-over { color: var(--danger); font-weight: 600; }
.page-me-dashboard .ts-list .due-soon { color: var(--warn); font-weight: 600; }
@media (max-width: 520px) { .page-me-dashboard .ts-counts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.page-me-dashboard .ts-status { display: none; }
}

/* Notification bell (base.html): task updates and @mentions. */
.topbar { display: flex; justify-content: flex-end; padding: var(--space-3) 1.5rem 0; }
.topbar + main { margin-top: var(--space-2); }
.bell { position: relative; }
.bell > summary {
  list-style: none; cursor: pointer; line-height: 0; color: var(--muted);
  padding: var(--space-2); border-radius: 999px; position: relative;
}
.bell > summary::-webkit-details-marker { display: none; }
.bell > summary:hover, .bell[open] > summary { background: var(--hover-bg); }
.bell-badge {
  position: absolute; top: 0; right: 0; min-width: 1.1rem; padding: 0 0.25rem;
  border-radius: 999px; background: var(--danger); color: #fff;
  font-size: 0.68rem; font-weight: 700; line-height: 1.1rem; text-align: center;
}
.bell-panel {
  position: absolute; right: 0; top: calc(100% + var(--space-1)); z-index: 900;
  width: min(360px, calc(100vw - 2rem)); max-height: 70vh; overflow-y: auto;
  background: var(--card); border: 1px solid var(--border); border-radius: 10px;
  box-shadow: 0 8px 24px rgba(0,0,0,0.14); padding: var(--space-3);
}
.bell-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: var(--space-2); }
.bell-list { list-style: none; margin: 0; padding: 0; }
.bell-list li + li { border-top: 1px solid var(--border); }
.bell-list a {
  display: block; padding: var(--space-2); color: var(--text); text-decoration: none;
  font-size: 0.86rem; line-height: 1.35; border-radius: 6px; overflow-wrap: anywhere;
}
.bell-list a:hover { background: var(--hover-bg); }
.bell-list a .faint { display: block; font-size: 0.75rem; margin-top: 0.15rem; }
.bell-list li.unread a { font-weight: 600; box-shadow: inset 3px 0 0 var(--accent); }

/* @mention picker under a task description or note box (_task_board.html). */
.mention-list {
  list-style: none; margin: var(--space-1) 0 0; padding: var(--space-1);
  background: var(--card); border: 1px solid var(--border); border-radius: 8px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.1); max-width: 280px;
}
.mention-list li { padding: var(--space-1) var(--space-2); border-radius: 6px; cursor: pointer; font-size: 0.86rem; }
.mention-list li:hover, .mention-list li.active { background: var(--hover-bg); }

.bell .faint { color: var(--muted); }
.bell .link-btn { background: none; border: none; padding: 0; color: var(--link); font-size: 0.8rem; cursor: pointer; }
.bell .link-btn:hover { text-decoration: underline; background: none; }

/* Payroll run page: bank file download and missing-account warning. */
.btn-link {
  display: inline-block; margin-left: var(--space-2); padding: 0.45rem 0.9rem; border-radius: 6px;
  border: 1px solid var(--accent); color: var(--accent); text-decoration: none; font-size: 0.9rem;
}
.btn-link:hover { background: var(--hover-bg); }
p.warn { background: var(--warn-bg); color: var(--warn); border: 1px solid var(--warn-border);
  border-radius: 8px; padding: var(--space-3); }
p.warn a { color: inherit; }

/* Discipline notices (_discipline.html): printable letters. */
.doc .doc-label { margin: var(--space-3) 0 0; font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.04em; color: var(--muted); }
.doc .doc-label + p { margin-top: var(--space-1); }
.doc .pre { white-space: pre-wrap; overflow-wrap: anywhere; }
.notice-case + .notice-case { margin-top: var(--space-6); padding-top: var(--space-5); border-top: 2px solid var(--border); }

/* Certificate of Employment (certificate_print.html). */
.letter { max-width: 760px; padding: var(--space-6); line-height: 1.6; display: flex; flex-direction: column; font-family: Calibri, Carlito, "Segoe UI", Arial, sans-serif; }
.coe { line-height: 1.7; }
.letter-title { margin: var(--space-5) 0 var(--space-1); }
/* Letterhead: logo left, identity right, contact line, rules (as the company .docx letterhead). */
.lh-head { border-bottom: 2px solid #000; padding-bottom: var(--space-1); line-height: 1.3; }
.lh-top { display: flex; justify-content: space-between; align-items: flex-start; gap: var(--space-4); }
.lh-logo { width: 130px; height: auto; object-fit: contain; }
.lh-id { margin-left: auto; text-align: right; }
.lh-name { font-size: 1.5rem; font-weight: 700; }
.lh-tagline { font-style: italic; }
.lh-address { font-weight: 700; margin-top: var(--space-2); white-space: pre-line; }
.lh-contact { margin-top: var(--space-2); font-style: italic; }
.lh-contact a, .lh-foot a { color: #1154cc; }
.lh-foot { margin-top: var(--space-6); padding-top: var(--space-2); border-top: 2px solid #000; text-align: center; font-size: 0.85rem; line-height: 1.4; }
.coe-title { text-align: center; text-transform: uppercase; letter-spacing: 0.08em; margin: var(--space-6) 0 var(--space-5); }
.coe-sign { margin-top: 4rem; width: 260px; }
.coe-line { border-top: 1px solid var(--text); margin-bottom: var(--space-1); }
.coe-sign:has(.coe-signature) { margin-top: var(--space-5); }
.coe-signature { display: block; max-height: 70px; max-width: 220px; object-fit: contain; margin-bottom: -10px; }
.sig-preview { max-height: 80px; max-width: 260px; object-fit: contain; border: 1px solid var(--border); border-radius: 8px; padding: 0.4rem; background: #fff; }
.coe-ref { margin-top: var(--space-5); font-size: 0.75rem; color: var(--muted); }
@media print {
  .letter { border: none; box-shadow: none; max-width: none; min-height: 95vh; padding: 0; break-after: page; }
  .lh-foot { margin-top: auto; }
}
label.check { display: flex; gap: var(--space-2); align-items: center; font-weight: 400; margin: var(--space-2) 0 var(--space-3); }
label.check input { width: auto; margin: 0; }

/* Announcements (announcements.html, _announcement_cards.html). */
.announce .announce-head { display: flex; justify-content: space-between; align-items: flex-start; gap: var(--space-3); margin-bottom: var(--space-2); }
.announce.pinned { border-left: 4px solid var(--accent); }
.pre { white-space: pre-wrap; overflow-wrap: anywhere; }

/* Checklists (_checklist.html). */
.checklist { list-style: none; margin: 0; padding: 0; }
.checklist li { display: flex; align-items: center; gap: var(--space-2); padding: var(--space-2) 0; border-bottom: 1px solid var(--border); }
.checklist li:last-child { border-bottom: none; }
.checklist .ck-text { flex: 1; }
.checklist li.done .ck-text { text-decoration: line-through; color: var(--muted); }
.checklist .tick { background: none; border: none; padding: 0 var(--space-1); font-size: 1.2rem; line-height: 1; color: var(--accent); cursor: pointer; }
.checklist .faint { color: var(--muted); font-size: 0.8rem; }

/* Performance reviews (review.html). */
.score { font-size: 1.6rem; font-weight: 700; margin-right: var(--space-2); }
.score small { font-size: 0.9rem; color: var(--muted); font-weight: 400; }
.doc-label { margin: var(--space-3) 0 0; font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.04em; color: var(--muted); }

/* Shift roster (shifts.html). */
.roster-nav { display: flex; justify-content: space-between; align-items: center; margin: var(--space-3) 0; }
.roster-scroll { overflow-x: auto; }
.roster select { min-width: 7rem; padding: 0.25rem; font-size: 0.85rem; }
.roster th, .roster td { white-space: nowrap; }
.rest-days { display: flex; gap: 0.35rem; }
.rest-days label { display: flex; flex-direction: column; align-items: center; gap: 0.1rem; margin: 0; font-size: 0.75rem; font-weight: 400; }
.rest-days input { width: auto; margin: 0; }
.checklist .ck-auto { display: block; font-size: 0.78rem; }

/* HRIS sub-groups (base.html): quieter, indented labels inside a group. */
.nav-subgroup > .nav-group-label {
  font-size: 0.68rem; font-weight: 600; text-transform: none; letter-spacing: 0.02em;
  color: rgba(255,255,255,0.5); margin: 0.6rem 0.6rem 0.2rem 0.9rem;
}
.nav-subgroup .nav-link { padding-left: 0.9rem; }
@media (max-width: 760px) { .nav-subgroup { width: 100%; } .nav-subgroup .nav-link { padding-left: 0.6rem; } }

/* Task checklists (_task_board.html task window). */
.ck-tools { display: flex; gap: var(--space-2); align-items: center; }
.ck-tools select { width: auto; padding: 0.2rem 0.4rem; font-size: 0.8rem; }
.ck-bar { width: 100%; height: 6px; margin: var(--space-1) 0; accent-color: var(--ok); }
.ck-list { list-style: none; margin: var(--space-1) 0; padding: 0; }
.ck-list li { display: flex; align-items: center; justify-content: space-between; gap: var(--space-2); padding: 0.2rem 0; border-bottom: 1px solid var(--border); }
.ck-list li label { display: flex; align-items: center; gap: var(--space-2); margin: 0; font-weight: 400; flex: 1; cursor: pointer; }
.ck-list li label input { width: auto; margin: 0; }
.ck-list li.done .ck-item, .ck-list li.done > span { text-decoration: line-through; color: var(--muted); }
.ck-list li > input[type=checkbox] { width: auto; margin: 0; }
.ck-item { flex: 1; cursor: text; border-radius: 4px; padding: 0.1rem 0.25rem; }
.ck-item:hover { background: var(--hover-bg); }
.ck-edit { flex: 1; padding: 0.15rem 0.35rem; }
.ck-grip { margin: 0; padding: 0.2rem; background: none; color: var(--muted); cursor: grab; touch-action: none; line-height: 0; }
.ck-grip:hover { background: var(--hover-bg); color: var(--text); box-shadow: none; transform: none; }
.ck-list li.dragging { opacity: 0.55; }
.ck-new { margin-top: var(--space-1); }
.ck-manage { margin-top: var(--space-2); font-size: 0.85rem; }


/* Task row: has-description marker */
.desc-icon { margin-left: 6px; font-size: .85em; opacity: .7; }

/* Demo requests list */
.pre-wrap { white-space: pre-wrap; overflow-wrap: anywhere; }

/* Public landing page (OmniBoostPH): fixed light "payroll document" look,
   its own tokens so app pages and dark mode are untouched. */
body.lp {
  --text: #1b1b18; --bg: #faf7f0; --card: #fffefb; --border: #d9d3c4; --accent: #0f5b45; --accent-dark: #0a4534; --accent-fg: #fff; --link: #1b1b18;
  --paper: #faf7f0; --band: #f1ecdf; --sheet: #fffefb; --ink: #1b1b18; --muted: #5a574e;
  --line: #d9d3c4; --green: #0f5b45; --green-dark: #0a4534; --night: #14231d; --night-text: #f3efe4; --night-muted: #b4bdb2; --night-line: #33453c;
  --serif: "Source Serif 4", Georgia, serif; --sans: "Source Sans 3", -apple-system, "Segoe UI", sans-serif;
}
.lp-wrap, .lp-wrap * { box-sizing: border-box; }
html:has(body.lp) { scroll-behavior: smooth; }
body.lp { margin: 0; background: var(--paper); color: var(--ink); font: 400 1.0625rem/1.55 var(--sans); }
.lp a:not(.lp-btn) { color: inherit; }
.lp th, .lp td { padding: 0; border-bottom: 0; color: inherit; font-size: inherit; text-transform: none; letter-spacing: 0; }
.lp :focus-visible { outline: 2px solid var(--green); outline-offset: 2px; }
.lp-wrap { max-width: 1160px; margin: 0 auto; padding-inline: 2rem; }
.lp h1, .lp h2, .lp h3 { font-family: var(--serif); font-weight: 400; margin: 0; }

.lp-nav { border-bottom: 1px solid var(--ink); background: var(--paper); }
.lp-nav-row { display: flex; align-items: baseline; justify-content: space-between; gap: 2rem; padding-block: 1.1rem; }
.lp-logo { font: 600 1.3rem var(--serif); text-decoration: none; }
.lp-logo span { color: var(--green); }
.lp-links { display: flex; gap: 1.75rem; }
.lp-links a, .lp-login { text-decoration: none; color: var(--muted); }
.lp-links a:hover, .lp-login:hover { color: var(--ink); text-decoration: underline; text-underline-offset: 4px; }
.lp-login { color: var(--ink); font-weight: 600; }

.lp-btn { display: inline-block; background: var(--green); color: #fff; border: 0; border-radius: 4px; padding: 0.75rem 1.4rem; font: 600 1rem var(--sans); text-decoration: none; cursor: pointer; transition: background 0.15s ease; }
.lp-btn:hover { background: var(--green-dark); }
.lp-btn:active { transform: translateY(1px); }
.lp-text-link { font-weight: 600; text-underline-offset: 4px; }

.lp-hero { padding: 4.5rem 0 5rem; }
.lp-hero-grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 4.5rem; align-items: start; }
.lp-hero h1 { font-size: clamp(2.5rem, 5.2vw, 4.25rem); line-height: 1.06; letter-spacing: -0.02em; }
.lp-lead { font-size: 1.2rem; color: var(--muted); margin: 1.75rem 0 2.25rem; max-width: 36rem; }
.lp-cta { display: flex; align-items: center; gap: 1.5rem; flex-wrap: wrap; }

.lp-slip { background: var(--sheet); border: 1px solid var(--ink); padding: 1.5rem 1.6rem 1.4rem; font-size: 0.95rem; margin-top: 0.5rem; }
.lp-slip-head { display: flex; justify-content: space-between; gap: 1rem; border-bottom: 2px solid var(--ink); padding-bottom: 0.75rem; margin-bottom: 0.5rem; }
.lp-slip-head strong { font: 600 1.1rem var(--serif); display: block; }
.lp-slip-head div:last-child { text-align: right; }
.lp-slip small { color: var(--muted); font-size: 0.85rem; }
.lp-slip table { width: 100%; border-collapse: collapse; font-variant-numeric: tabular-nums; }
.lp-slip td { padding: 0.32rem 0; }
.lp-slip td:last-child { text-align: right; white-space: nowrap; }
.lp-slip .lp-sub td { text-align: left; padding-top: 0.8rem; font-size: 0.8rem; letter-spacing: 0.04em; text-transform: uppercase; color: var(--muted); }
.lp-slip .lp-sum td { border-top: 1px solid var(--line); font-weight: 600; }
.lp-slip .lp-net td { border-top: 2px solid var(--ink); padding-top: 0.6rem; font: 600 1.25rem var(--serif); }

.lp-section { padding: 4.5rem 0; border-top: 1px solid var(--line); }
.lp-split { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: 3rem; }
.lp-split h2, .lp-big { font-size: 2.1rem; line-height: 1.15; letter-spacing: -0.01em; }
.lp-group { margin-bottom: 2.5rem; }
.lp-group:last-child { margin-bottom: 0; }
.lp-group-name { font-weight: 700; color: var(--green); margin: 0 0 0.5rem; }
.lp-row { position: relative; display: grid; grid-template-columns: minmax(0, 13rem) minmax(0, 1fr); gap: 1.5rem; padding: 0.9rem 0; }
.lp-row h3 { font: 600 1.0625rem var(--sans); }
.lp-row p { margin: 0; color: var(--muted); }

.lp-night { background: var(--night); color: var(--night-text); padding: 5rem 0; }
.lp-night h2 { font-size: 2.1rem; line-height: 1.15; letter-spacing: -0.01em; }
.lp-night-grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 4rem; }
.lp-night ul { list-style: none; margin: 1.75rem 0 0; padding: 0; color: var(--night-muted); }
.lp-night li { position: relative; padding: 0.55rem 0; }
.lp-scroll { overflow-x: auto; }
.lp-filings { width: 100%; border-collapse: collapse; }
.lp-filings caption { text-align: left; font: 400 1.5rem var(--serif); padding-bottom: 1.1rem; }
.lp-filings th { text-align: left; font-weight: 600; padding: 0.85rem 1.5rem 0.85rem 0; vertical-align: top; white-space: nowrap; }
.lp-filings td { color: var(--night-muted); padding: 0.85rem 0; }
.lp-filings tr { border-top: 1px solid var(--night-line); }

.lp-people { width: 100%; border-collapse: collapse; }
.lp-people th { text-align: left; font: 600 1.0625rem var(--sans); padding: 0.9rem 1.5rem 0.9rem 0; white-space: nowrap; vertical-align: top; }
.lp-people td { color: var(--muted); padding: 0.9rem 0; }
.lp-people tr { border-top: 1px solid var(--line); }
.lp-people tr:last-child { border-bottom: 1px solid var(--line); }

.lp-three { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2.5rem; margin-top: 2.5rem; }
.lp-three h3 { font: 600 1.15rem var(--serif); margin-bottom: 0.4rem; }
.lp-three p { margin: 0; color: var(--muted); }
.lp-steps { list-style: none; padding: 0; }
.lp-steps span { display: block; font: 400 3.25rem/1 var(--serif); color: var(--green); margin-bottom: 0.75rem; }

.lp-plans { background: var(--band); border-top: 1px solid var(--line); padding: 4.5rem 0; }
.lp-plans h2 { margin-bottom: 2.5rem; }
.lp-plan-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 2px solid var(--ink); border-bottom: 1px solid var(--ink); }
.lp-plan { display: flex; flex-direction: column; padding: 1.5rem 1.75rem 1.75rem; border-left: 1px solid var(--line); }
.lp-plan:first-child { border-left: 0; padding-left: 0; }
.lp-plan:last-child { padding-right: 0; }
.lp-plan h3 { font-size: 1.6rem; }
.lp-plan > p { margin: 0.35rem 0 1.25rem; color: var(--muted); }
.lp-plan ul { list-style: none; padding: 0; margin: 0 0 1.75rem; flex: 1; }
.lp-plan li { position: relative; padding: 0.5rem 0; }
.lp-plan .lp-btn { text-align: center; }
.lp-plans-all { margin: 1.5rem 0 0; color: var(--muted); max-width: 48rem; }
.lp-plans-all strong { color: var(--ink); }

.lp-form { display: grid; grid-template-columns: 1fr 1fr; gap: 1.1rem; }
.lp-form .lp-full { grid-column: 1 / -1; }
.lp-form label { display: block; font-weight: 600; margin-bottom: 0.3rem; }
.lp-form input, .lp-form select, .lp-form textarea { width: 100%; background: var(--sheet); border: 1px solid #8d8778; border-radius: 4px; padding: 0.65rem 0.75rem; font: inherit; color: var(--ink); }
.lp-foot { border-top: 1px solid var(--ink); color: var(--muted); }
.lp-hp { position: absolute; left: -9999px; }
.lp-done { font-size: 1.1rem; color: var(--green); background: var(--band); padding: 1rem 1.25rem; border-radius: 4px; }
.lp-roles-cta { margin: 1.75rem 0 0; }
.lp-foot-row { display: flex; justify-content: space-between; padding-block: 1.25rem; }

@media (max-width: 860px) {
  .lp-wrap { padding-inline: 1.25rem; }
  .lp-links { display: none; }
  .lp-hero { padding: 2.75rem 0 3.25rem; }
  .lp-hero-grid, .lp-split, .lp-night-grid, .lp-three, .lp-plan-grid { grid-template-columns: minmax(0, 1fr); gap: 2.25rem; }
  .lp-plan-grid { gap: 0; }
  .lp-plan, .lp-plan:first-child, .lp-plan:last-child { border-left: 0; padding: 1.5rem 0 1.75rem; border-top: 1px solid var(--ink); }
  .lp-plan:first-child { border-top: 0; }
  .lp-section, .lp-plans, .lp-night { padding: 3.25rem 0; }
  .lp-split h2, .lp-big, .lp-night h2 { font-size: 1.8rem; }
  .lp-row { grid-template-columns: minmax(0, 1fr); gap: 0.2rem; }
  .lp-form { grid-template-columns: minmax(0, 1fr); }
  .lp-people th, .lp-filings th { white-space: normal; }
}
/* Motion: the page behaves like a document being filled in. Rules draw left to
   right, lines of text settle in order, and the payslip adds up to net pay. */
.lp-row::before, .lp-night li::before, .lp-plan li::before {
  content: ""; position: absolute; top: 0; left: 0; right: 0; height: 1px; background: var(--line);
  transform-origin: left; transition: transform 0.7s cubic-bezier(0.2, 0.7, 0.2, 1) var(--d, 0s);
}
.lp-night li::before { background: var(--night-line); }
.lp-js .lp-row:not(.lp-in)::before, .lp-js .lp-night li:not(.lp-in)::before, .lp-js .lp-plan li:not(.lp-in)::before { transform: scaleX(0); }
.lp-reveal { transition: opacity 0.5s ease var(--d, 0s), transform 0.5s cubic-bezier(0.2, 0.7, 0.2, 1) var(--d, 0s); }
.lp-js .lp-reveal:not(.lp-in) { opacity: 0; transform: translateY(8px); }
.lp-row > *, .lp-night li, .lp-plan li { transition: opacity 0.5s ease var(--d, 0s); }
.lp-js .lp-row:not(.lp-in) > *, .lp-js .lp-night li:not(.lp-in), .lp-js .lp-plan li:not(.lp-in) { opacity: 0; }
@keyframes lp-settle { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
@keyframes lp-ink { from { opacity: 0; } to { opacity: 1; } }
.lp-js .lp-hero h1, .lp-js .lp-lead, .lp-js .lp-cta { animation: lp-settle 0.6s cubic-bezier(0.2, 0.7, 0.2, 1) both; }
.lp-js .lp-lead { animation-delay: 0.12s; }
.lp-js .lp-cta { animation-delay: 0.22s; }
.lp-js .lp-slip { animation: lp-ink 0.4s ease 0.2s both; }
.lp-js .lp-slip-head > div, .lp-js .lp-slip tr { animation: lp-ink 0.3s ease both; animation-delay: calc(0.45s + var(--i, 0) * 0.08s); }
.lp-js .lp-slip .lp-net { animation-duration: 0.5s; }
@media (prefers-reduced-motion: reduce) {
  html:has(body.lp) { scroll-behavior: auto; }
  .lp *, .lp *::before, .lp *::after { animation: none !important; transition: none !important; }
  .lp-js .lp-reveal:not(.lp-in), .lp-js .lp-row:not(.lp-in) > *, .lp-js .lp-night li:not(.lp-in), .lp-js .lp-plan li:not(.lp-in) { opacity: 1; transform: none; }
  .lp-js .lp-row:not(.lp-in)::before, .lp-js .lp-night li:not(.lp-in)::before, .lp-js .lp-plan li:not(.lp-in)::before { transform: none; }
}

/* Sign-in pages (login, forgot password): company cover beside the form.
   The cover uses the company colour (--accent, set from Company Settings). */
.w-full { width: 100%; }
.page-auth main { max-width: none; margin: 0; padding: 0; }
.auth-split { display: grid; grid-template-columns: 1.1fr 1fr; min-height: 100vh; }
.auth-cover {
  position: relative; display: flex; align-items: flex-end; padding: 3rem;
  background: linear-gradient(135deg, var(--accent) 0%, var(--accent-dark) 100%); color: #fff;
  background-size: cover; background-position: center;
}
.auth-cover.has-image::before { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,0) 35%, rgba(0,0,0,0.65) 100%); }
.auth-brand { position: relative; max-width: 30rem; }
/* No cover photo: dot grid and two soft rings so the panel isn't a flat block. */
.auth-cover:not(.has-image) { overflow: hidden; }
.auth-cover:not(.has-image)::before {
  content: ""; position: absolute; inset: 0;
  background-image: radial-gradient(rgba(255,255,255,0.14) 1.5px, transparent 1.5px);
  background-size: 22px 22px;
  mask-image: linear-gradient(160deg, #000 0%, transparent 70%);
}
.auth-cover:not(.has-image)::after {
  content: ""; position: absolute; width: 34rem; height: 34rem; right: -12rem; top: -10rem; border-radius: 50%;
  border: 1px solid rgba(255,255,255,0.18); box-shadow: 0 0 0 5rem rgba(255,255,255,0.04), 0 0 0 10rem rgba(255,255,255,0.03);
}
.auth-mark {
  display: grid; place-items: center; width: 3.5rem; height: 3.5rem; margin-bottom: 1.25rem;
  border-radius: 14px; background: rgba(255,255,255,0.16); border: 1px solid rgba(255,255,255,0.3);
  font-size: 1.8rem; font-weight: 700;
}
.auth-logo { height: 4rem; max-width: 12rem; object-fit: contain; background: #fff; border-radius: 12px; padding: 0.5rem; margin-bottom: 1rem; }
.auth-brand h1 { font-size: 2.2rem; line-height: 1.15; margin: 0 0 0.5rem; }
.auth-brand p { font-size: 1.1rem; margin: 0; opacity: 0.92; }
.auth-panel { display: flex; flex-direction: column; justify-content: center; align-items: center; padding: 2rem 1.5rem; background: var(--bg); }
.auth-card { width: 100%; max-width: 380px; background: var(--card); border: 1px solid var(--border); border-radius: 12px; padding: 2rem; }
.auth-card h2 { margin: 0 0 1rem; font-size: 1.35rem; }
.auth-powered { margin-top: 1.5rem; font-size: 0.8rem; color: var(--muted); }
.auth-powered a { color: var(--muted); font-weight: 600; }
@media (max-width: 760px) {
  .auth-split { grid-template-columns: 1fr; }
  .auth-cover { min-height: 34vh; padding: 1.75rem 1.25rem; }
  .auth-brand h1 { font-size: 1.6rem; }
}

/* Product site: workspace finder */
.lp-find { display: flex; justify-content: center; padding: 5rem 1rem; }
.find-row { display: flex; align-items: center; gap: 0.4rem; }
.find-suffix { color: var(--muted); white-space: nowrap; }

/* Company Settings: branding */
.brand-color-row { display: flex; align-items: center; gap: 0.75rem; }
.brand-color-row input[type=color] { width: 3rem; height: 2.2rem; padding: 0.1rem; }
.inline-check { display: flex; align-items: center; gap: 0.35rem; margin: 0; color: var(--text); font-size: 0.9rem; }
.inline-check input { width: auto; }
.cover-preview { display: block; height: 6rem; max-width: 16rem; object-fit: cover; border: 1px solid var(--border); border-radius: 8px; margin-bottom: 0.75rem; }

/* Employee/manager sidebar groups (Work, My Team, Time & Leave, Pay, Records). */
.nav-me > .nav-group-label { font-size: 0.82rem; text-transform: none; letter-spacing: 0.01em; color: rgba(255,255,255,0.7); }

/* Verified clock-in: settings actions, clock-in log. */
.form-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 0.75rem; }
.form-actions button { margin-top: 0; }
.form-actions select { width: auto; }
.form-actions .link-btn { background: none; border: none; padding: 0; color: var(--link); font-weight: 500; cursor: pointer; }
.selfie-thumb { height: 2.5rem; width: 2.5rem; object-fit: cover; border-radius: 6px; display: block; }
.clock-status { margin: 0.5rem 0 0; }

/* Leave / team calendar: one row per employee, one column per day. */
.cal-nav a { text-decoration: none; font-size: 1.4rem; line-height: 1; padding: 0 0.35rem; }
.cal-legend { display: flex; flex-wrap: wrap; gap: 1rem; margin-top: 0.75rem; font-size: 0.82rem; color: var(--muted); }
.cal-legend span { display: inline-flex; align-items: center; gap: 0.35rem; }
.cal-key { display: inline-block; width: 0.9rem; height: 0.9rem; border-radius: 3px; border: 1px solid var(--border); }
.cal-grid { table-layout: fixed; min-width: 900px; font-size: 0.78rem; }
.cal-grid th, .cal-grid td { padding: 0; height: 1.9rem; text-align: center; border: 1px solid var(--border); }
.cal-grid th { text-transform: none; letter-spacing: 0; font-size: 0.72rem; line-height: 1.1; padding: 0.2rem 0; }
.cal-grid th span { display: block; font-weight: 400; }
.cal-grid .cal-name { width: 11rem; text-align: left; padding: 0.25rem 0.5rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; position: sticky; left: 0; background: var(--card); z-index: 1; }
.cal-grid .cal-name .faint { display: block; font-size: 0.7rem; color: var(--muted); }
.cal-grid tr:hover td { background: inherit; }
.cal-grid .weekend { background: var(--hover-bg); }
.cal-grid .holiday, .cal-key.holiday { background: var(--warn-bg); }
.cal-grid .rest, .cal-key.rest { background: var(--border); }
.cal-grid td.leave, .cal-key.leave { background: var(--accent); }
.cal-grid td.pending, .cal-key.pending { background: repeating-linear-gradient(45deg, var(--info-bg) 0 4px, var(--card) 4px 8px); }
.cal-grid th.today { color: var(--accent); box-shadow: inset 0 -3px 0 var(--accent); }
.cal-count { font-weight: 700; color: var(--muted); }

/* Demo workspace: one-click sign-in and the banner on every page. */
.demo-accounts { margin-top: 1.25rem; padding-top: 1rem; border-top: 1px solid var(--border); display: flex; flex-wrap: wrap; gap: 0.5rem; }
.demo-accounts p { width: 100%; margin: 0 0 0.25rem; }
.demo-btn { margin: 0; background: var(--hover-bg); color: var(--accent); border: 1px solid var(--border); padding: 0.4rem 0.8rem; }
.demo-btn:hover { background: var(--accent); color: var(--accent-fg); }
.demo-banner { background: var(--warn-bg); color: var(--warn); border: 1px solid var(--warn-border); border-radius: 8px; padding: 0.5rem 0.9rem; margin-bottom: 1rem; font-size: 0.85rem; font-weight: 600; }
.bell > summary .icon { width: 1.3rem; height: 1.3rem; }

/* Collapsible page actions (employees.html): summaries look like buttons; the
   open drawer drops below the button row at full width. */
.drawers { display: flex; flex-wrap: wrap; gap: var(--space-2); margin-bottom: var(--space-4); }
.drawer > summary { list-style: none; }
.drawer > summary::-webkit-details-marker { display: none; }
.drawer[open] { flex-basis: 100%; }
.drawer[open] > summary { margin-bottom: var(--space-3); }
.drawer > .card { margin: 0; }
summary.btn {
  display: inline-block; background: var(--accent); color: var(--accent-fg); border: 1px solid var(--accent); border-radius: 6px;
  padding: 0.55rem 1.1rem; font-size: 0.9rem; font-weight: 600; cursor: pointer;
}
summary.btn:hover { background: var(--accent-dark); }
summary.btn-secondary { background: var(--card); color: var(--accent); border-color: var(--border); }
summary.btn-secondary:hover { background: var(--hover-bg); }

/* Dropdowns: the OS menu ignores page styles and, on macOS, opens narrower
   than the field and shifted over it. Where the browser supports styled
   selects, draw the list ourselves so it opens right under the field at its
   full width. Other browsers keep the native menu. */
@supports (appearance: base-select) {
  select:not([multiple]), select:not([multiple])::picker(select) { appearance: base-select; }
  select:not([multiple]) { display: flex; align-items: center; justify-content: space-between; gap: 0.4rem; cursor: pointer; padding-block: 0; height: 2.03rem; } /* height of a text input */
  select:not([multiple])::picker-icon { color: var(--muted); font-size: 0.75em; }
  select:not([multiple])::picker(select) {
    margin-top: 4px; padding: 4px; max-height: min(20rem, 60vh); overflow-y: auto;
    background: var(--card); color: var(--text); border: 1px solid var(--border); border-radius: 8px; box-shadow: var(--shadow-md);
  }
  select:not([multiple]) option { padding: 0.4rem 0.6rem; border-radius: 6px; gap: 0.4rem; }
  select:not([multiple]) option:hover, select:not([multiple]) option:focus-visible { background: var(--hover-bg); outline: none; }
  select:not([multiple]) option:checked { font-weight: 600; }
  select:not([multiple]) option::checkmark { color: var(--accent); }
}
