/* ===== 1/6 ===== */
    :root { --navy:#10243e; --ink:#16263a; --muted:#6e7d8f; --line:#e2e8f0; --canvas:#f5f7fa; --white:#fff; --blue:#246bfd; --blue-soft:#eaf1ff; --green:#13986d; --green-soft:#e7f7f0; --orange:#e98622; --orange-soft:#fff3e5; --red:#dc4c56; --radius:16px; --shadow:0 2px 8px rgba(28,48,76,.045); }
    * { box-sizing:border-box; }
    body { margin:0; min-width:320px; color:var(--ink); font:15px/1.5 Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; background:var(--canvas); }
    button, input, select, textarea { font:inherit; } button { cursor:pointer; }
    .shell { display:grid; grid-template-columns:256px 1fr; min-height:100vh; }
    .sidebar { padding:20px 12px; display:flex; flex-direction:column; overflow-y:auto; color:#d9e6f6; background:var(--navy); }
    .brand { display:flex; gap:11px; align-items:center; padding:0 10px 22px; color:#fff; font-size:18px; font-weight:800; letter-spacing:-.4px; }
    .brand-logo { display:block; width:auto; height:56px; max-width:220px; padding:4px 7px; border-radius:7px; background:#fff; object-fit:contain; }
    .progress-delete { display:block; margin-top:8px; }
    .push-setting { display:grid; gap:4px; margin:0 0 8px; padding:10px; border-radius:10px; background:#f3f7fc; font-size:12px; }
    .push-setting:empty { display:none; } .push-setting small { color:#5b6b80; } .push-setting button { justify-self:start; margin-top:4px; padding:6px 14px; font-size:12px; }
    .install-banner { position:fixed; z-index:60; left:12px; right:12px; bottom:calc(12px + env(safe-area-inset-bottom)); display:flex; align-items:center; gap:10px; padding:10px 12px; border-radius:16px; background:#fff; border:1px solid #dbe4f0; box-shadow:0 14px 36px rgba(16,36,62,.25); }
    .install-banner[hidden] { display:none; } .install-banner img { flex:none; border-radius:10px; border:1px solid #e3e9f1; }
    .install-banner div { flex:1; min-width:0; font-size:13px; line-height:1.35; color:#33475f; } .install-banner b { color:#0f2238; } .install-banner div > b { display:block; font-size:14px; }
    .install-banner button { flex:none; padding:8px 12px; font-size:13px; }
    /* Director's wall screen: one view that fits the screen without scrolling. Green = on track,
       amber = watch, red = at risk. */
    #director-screen.active { display:flex; flex-direction:column; height:calc(100vh - 120px); min-height:620px; }
    .ds-head { display:flex; align-items:center; gap:18px; margin-bottom:12px; } .ds-head h1 { margin:0; font-size:26px; } .ds-head p { margin:2px 0 0; color:#5b6b80; font-size:13px; }
    .ds-clock { margin-left:auto; font-size:30px; font-weight:800; color:#0f2238; font-variant-numeric:tabular-nums; text-align:right; line-height:1.1; } .ds-clock small { display:block; font-size:13px; font-weight:600; color:#5b6b80; }
    .ds-grid { flex:1; min-height:0; display:grid; grid-template-columns:minmax(0,1.65fr) minmax(0,1fr); grid-template-rows:auto 1fr; gap:14px; }
    .ds-panel { min-height:0; display:flex; flex-direction:column; padding:14px 16px; background:#fff; border:1px solid #dde6f1; border-radius:14px; }
    .ds-panel h2 { margin:0 0 10px; font-size:17px; } .ds-panel h2 small { color:#5b6b80; font-weight:600; font-size:13px; }
    .ds-projects { grid-row:1 / 3; }
    .ds-cards { flex:1; min-height:0; display:grid; grid-template-columns:repeat(2,1fr); grid-auto-rows:1fr; gap:12px; }
    .ds-card { display:flex; flex-direction:column; gap:8px; padding:14px 16px; border-radius:12px; border:2px solid #cfe9d8; background:#f6fcf8; min-height:0; overflow:hidden; }
    .ds-card.watch { border-color:#f3dc94; background:#fffbec; } .ds-card.risk { border-color:#f2b8b8; background:#fff5f5; }
    .ds-card-top { display:flex; justify-content:space-between; gap:10px; align-items:flex-start; }
    .ds-card-top b { font-size:18px; line-height:1.2; } .ds-card-top small { display:block; color:#5b6b80; font-size:12px; }
    .ds-health { flex:none; padding:4px 10px; border-radius:999px; font-size:12px; font-weight:800; color:#fff; background:#1f9d55; }
    .ds-card.watch .ds-health { background:#d89b00; } .ds-card.risk .ds-health { background:#d64545; }
    .ds-big { font-size:42px; font-weight:800; line-height:1; color:#0f2238; } .ds-big span { font-size:15px; font-weight:600; color:#5b6b80; margin-left:6px; white-space:nowrap; }
    .ds-bar { position:relative; height:12px; border-radius:999px; background:#e3e9f1; }
    .ds-bar i { position:absolute; inset:0 auto 0 0; border-radius:999px; background:#2f6fe4; } .ds-bar.money i { background:#7b61d1; } .ds-bar.over i { background:#d64545; }
    .ds-bar em { position:absolute; top:-4px; bottom:-4px; width:3px; border-radius:2px; background:#0f2238; }
    .ds-line { display:flex; justify-content:space-between; gap:8px; font-size:13px; color:#33475f; } .ds-line b { color:#0f2238; }
    .ds-note { font-size:13px; font-weight:700; } .ds-note.bad { color:#c0392b; } .ds-note.good { color:#1d7a46; } .ds-note.mid { color:#9a6b00; }
    .ds-stats { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-bottom:10px; }
    .ds-stats div { padding:10px; border-radius:10px; background:#f3f7fc; text-align:center; } .ds-stats b { display:block; font-size:30px; line-height:1.1; color:#0f2238; } .ds-stats span { font-size:12px; color:#5b6b80; }
    .ds-people { display:flex; flex-wrap:wrap; gap:6px; } .ds-person { padding:4px 10px; border-radius:999px; font-size:13px; font-weight:700; background:#fde8e8; color:#b3261e; }
    .ds-person.ok { background:#e3f6ea; color:#1d7a46; } .ds-person.draft { background:#fff4d6; color:#8a5a00; }
    .ds-week-list { flex:1; min-height:0; overflow:hidden; display:flex; flex-direction:column; gap:8px; }
    .ds-task { display:grid; grid-template-columns:1fr auto; gap:2px 10px; padding:8px 10px; border-radius:10px; background:#f6f9fd; border-left:5px solid #2f6fe4; }
    .ds-task.done { border-left-color:#1f9d55; } .ds-task.late { border-left-color:#d64545; background:#fff5f5; }
    .ds-task b { font-size:14px; } .ds-task small { grid-column:1 / -1; color:#5b6b80; font-size:12px; } .ds-task strong { font-size:16px; }
    .ds-empty { color:#5b6b80; font-size:14px; padding:10px 0; }
    .ds-facts { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:6px 12px; margin:4px 0 0; padding-top:8px; border-top:1px dashed #cfd9e6; }
    .ds-facts div { min-width:0; } .ds-facts dt { font-size:11px; color:#5b6b80; } .ds-facts dd { margin:0; font-size:13px; font-weight:700; color:#0f2238; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
    .ds-facts dd.bad { color:#c0392b; } .ds-facts dd.mid { color:#9a6b00; }
    .ds-stats.ds-stats-4 { grid-template-columns:repeat(4,1fr); } .ds-stats.ds-stats-4 b { font-size:24px; }
    .ds-feed { margin-top:10px; } .ds-feed h3 { margin:0 0 6px; font-size:13px; color:#33475f; }
    .ds-events { display:grid; gap:8px; max-height:340px; overflow:auto; padding-right:2px; }
    .ds-ev { border:1px solid #e4eaf2; border-left:4px solid #2f6fe4; border-radius:10px; padding:8px 10px; background:#fbfcfe; font-size:13px; line-height:1.4; }
    .ds-ev[data-open-daily-report] { cursor:pointer; } .ds-ev[data-open-daily-report]:hover { background:#f2f6fd; }
    .ds-ev.has-issue { border-left-color:#dc4c56; background:#fff8f8; }
    .ds-ev-head { display:flex; justify-content:space-between; align-items:center; gap:8px; }
    .ds-ev-kind { font-size:11.5px; font-weight:800; padding:2px 8px; border-radius:99px; background:#e8f0fe; color:#2453c6; } .ds-ev-kind.progress { background:#e6f6ef; color:#13805c; }
    .ds-ev time { font-weight:800; color:#2f6fe4; font-variant-numeric:tabular-nums; }
    .ds-ev-who { margin:4px 0 2px; color:#1d2b3e; } .ds-ev-who small { color:#6b7a90; } .ds-ev-who span { color:#4a5a70; }
    .ds-ev-line { display:grid; grid-template-columns:88px minmax(0,1fr); gap:8px; padding-top:3px; color:#33475f; }
    .ds-ev-line em { font-style:normal; color:#7b8797; font-size:12px; } .ds-ev-line small { color:#6b7a90; }
    .ds-ev-line.danger span, .ds-ev-line.danger em { color:#c43842; font-weight:700; } .ds-ev-line.warn span { color:#b56a0e; }
    body.ds-full .sidebar, body.ds-full .topbar, body.ds-full #quickAdd, body.ds-full #quickMenu { display:none!important; }
    body.ds-full .shell { grid-template-columns:1fr; } body.ds-full #director-screen.active { height:100vh; padding:14px 18px; box-sizing:border-box; }
    @media (max-width:900px) { #director-screen.active { height:auto; } .ds-grid { grid-template-columns:minmax(0,1fr); } .ds-projects { grid-row:auto; }
      /* One card per row on a phone (the script sets two columns for several projects on a big screen). */
      .ds-cards { grid-template-columns:minmax(0,1fr)!important; grid-auto-rows:auto!important; } }
    @media (max-width:760px) {
      /* Phone: the top bar already names the page, so the heading shrinks to the update time and a small clock. */
      .ds-head { gap:10px; margin-bottom:10px; } .ds-head h1 { display:none; } .ds-head p { font-size:12px; }
      .ds-clock { font-size:20px; } .ds-clock small { font-size:11px; } #dsFullscreen { display:none; }
      .ds-panel { padding:12px; } .ds-card { padding:12px 14px; gap:6px; }
      .ds-card-top b { font-size:17px; } .ds-health { font-size:11px; padding:3px 9px; }
      .ds-big { font-size:34px; } .ds-big span { font-size:13px; }
      .ds-facts { grid-template-columns:repeat(2,minmax(0,1fr)); }
      .ds-stats.ds-stats-4 { grid-template-columns:repeat(2,1fr); } }
    /* iPhone Home Screen app: the page runs under the status bar (clock, battery). Keep everything, and the
       sticky header in particular, below it and paint a solid strip behind it. All values are 0 on desktops. */
    body { padding-top:env(safe-area-inset-top); }
    body::before { content:''; position:fixed; z-index:45; top:0; left:0; right:0; height:env(safe-area-inset-top); background:#fff; pointer-events:none; }
    .topbar { top:env(safe-area-inset-top)!important; }
    @media (max-width:760px) {
      .sidebar { padding-top:calc(22px + env(safe-area-inset-top))!important; }
      .quick-add { bottom:calc(16px + env(safe-area-inset-bottom))!important; }
      .quick-menu { bottom:calc(80px + env(safe-area-inset-bottom))!important; }
    }
    .help-video { display:block; width:100%; max-width:320px; max-height:70vh; margin:12px 0 6px; border-radius:14px; background:#000; }
    .help-video-note small { display:block; color:#5b6b80; }
    .daily-photo-item { display:inline-flex; flex-direction:column; gap:6px; } .daily-photo-item > button { align-self:flex-start; padding:4px 10px; font-size:12px; }
    /* On screen the month-end report header is a slim strip; the printed sheet keeps its own header. */
    #monthEndOutput .mer-cover { display:flex; flex-wrap:wrap; align-items:baseline; gap:2px 14px; padding:12px 18px; border-radius:10px; }
    #monthEndOutput .mer-cover > small:first-child { display:none; }
    #monthEndOutput .mer-cover h2 { margin:0; font-size:18px; }
    #monthEndOutput .mer-cover p { margin:0; font-size:14px; font-weight:600; color:#d9e7f5; }
    #monthEndOutput .mer-cover > small:last-child { flex-basis:100%; font-size:12px; }
    #monthEndOutput .mer-stats { gap:8px; margin:10px 0; grid-template-columns:repeat(auto-fit,minmax(130px,1fr)); }
    #monthEndOutput .mer-stats > div { display:grid; grid-template-columns:1fr auto; align-items:baseline; gap:0 10px; padding:9px 14px; min-height:0; border-radius:10px; }
    #monthEndOutput .mer-stats > div > small:first-child { font-size:12px; color:#4b6584; }
    #monthEndOutput .mer-stats b { margin:0; font-size:20px; line-height:1.2; }
    #monthEndOutput .mer-stats .mer-delta { grid-column:1 / -1; margin:0; font-size:11px; line-height:1.3; }
    .mn-date-source { display:none!important; }
    .mn-date { display:inline-flex; gap:6px; align-items:center; flex-wrap:wrap; }
    .field .mn-date { display:flex; width:100%; } .field .mn-date select { flex:1; min-width:0; }
    .mn-date select { min-width:84px; }
    .team-overview-table td { vertical-align:top; } .team-overview-table small { display:block; color:#5b6b80; font-size:12px; margin-top:2px; }
    .team-overview-table small.team-warn { color:#c0392b; font-weight:700; }
    .team-report { display:inline-block; padding:2px 8px; border-radius:999px; font-size:12px; font-weight:700; background:#eef2f7; color:#40536b; }
    .team-report.submitted { background:#fff4d6; color:#8a5a00; } .team-report.approved { background:#e3f6ea; color:#1d7a46; } .team-report.returned { background:#fde8e8; color:#b3261e; }
    .team-open-report { display:block; margin-top:6px; padding:3px 10px!important; font-size:12px!important; }
    .entry-status { display:inline-block; padding:2px 8px; border-radius:999px; font-size:11px; font-weight:700; white-space:nowrap; }
    .entry-status.approved { background:#e3f6ea; color:#1d7a46; } .entry-status.pending { background:#fff4d6; color:#8a5a00; }
    .entry-review-actions { display:flex; gap:6px; margin-top:6px; flex-wrap:wrap; }
    .entry-review-actions button { padding:3px 9px; border:1px solid #c9d6e8; border-radius:6px; background:#fff; font-size:12px; font-weight:700; cursor:pointer; }
    .entry-review-actions button.danger { border-color:#f1c0c0; color:#c0392b; }
    /* Weekly Gantt sheet in the layout of the site's Excel "ББ график". */
    .wg-head-actions { display:flex; gap:14px; align-items:center; flex-wrap:wrap; justify-content:flex-end; }
    .wg-sheet { margin:0 0 22px; }
    .wg-meta { display:grid; grid-template-columns:repeat(4,minmax(150px,auto)); gap:0; margin-bottom:10px; border:1px solid #1f2d3d; width:max-content; max-width:100%; }
    .wg-meta div { padding:6px 12px; border-right:1px solid #1f2d3d; background:#dce6f2; } .wg-meta div:last-child { border-right:0; }
    .wg-meta span { display:block; font-size:11px; color:#3d4f66; } .wg-meta b { font-size:14px; color:#0f2238; }
    .wg-scroll { overflow:auto; max-height:72vh; width:fit-content; max-width:100%; border:1px solid #1f2d3d; }
    .wg-table { width:auto!important; min-width:0!important; table-layout:auto; border-collapse:separate; border-spacing:0; font-size:12px; color:#0f2238; -webkit-print-color-adjust:exact; print-color-adjust:exact; }
    .wg-table th, .wg-table td { border-right:1px solid #1f2d3d; border-bottom:1px solid #1f2d3d; padding:4px 6px; text-align:center; white-space:nowrap; background:#fff; }
    .wg-table thead th { position:sticky; z-index:2; background:#b8cce4; font-weight:700; }
    .wg-table thead tr:nth-child(1) th { top:0; } .wg-table thead tr:nth-child(2) th { top:24px; } .wg-table thead tr:nth-child(3) th { top:48px; }
    .wg-table th.wg-year, .wg-table th.wg-date { box-sizing:border-box; height:24px; }
    .wg-table thead th[rowspan] { top:0; white-space:normal; line-height:1.25; vertical-align:middle; }
    .wg-table td.wg-c1, .wg-table td.wg-c2, .wg-table td.wg-c3, .wg-table td.wg-c4, .wg-table td.wg-c5, .wg-table td.wg-c6 { background:#dce6f2; }
    /* Fixed widths keep the two frozen columns aligned and the data columns compact. */
    .wg-table .wg-c1 { box-sizing:border-box; width:40px; min-width:40px; max-width:40px; }
    .wg-table .wg-c2 { box-sizing:border-box; width:260px; min-width:260px; max-width:260px; text-align:left!important; white-space:normal!important; }
    .wg-table .wg-c3 { width:52px; } .wg-table .wg-c4 { width:70px; } .wg-table .wg-c5 { width:70px; } .wg-table .wg-c6 { width:64px; }
    .wg-table thead th.wg-c3, .wg-table thead th.wg-c4, .wg-table thead th.wg-c5, .wg-table thead th.wg-c6 { font-size:11px; padding:4px 3px; }
    .wg-c2 small, .wg-c6 small { display:block; color:#4b6584; font-size:10px; font-weight:500; }
    .wg-fix { position:sticky; z-index:1; } .wg-fix.wg-c1 { left:0; } .wg-fix.wg-c2 { left:40px; }
    .wg-table thead th.wg-fix { z-index:4; }
    .wg-year { background:#9fb7d5!important; }
    .wg-date, .wg-wk { min-width:40px; padding:3px 2px!important; font-size:10.5px; font-weight:600!important; }
    .wg-week { min-width:40px; height:26px; padding:0!important; }
    .wg-table td.wg-plan { background:#ffe600; } .wg-table td.wg-done { background:#34b36b; }
    .wg-table .wg-now { box-shadow:inset 0 0 0 2px #e03131; } .wg-table th.wg-now { background:#ffd8d8; color:#b3261e; }
    .wg-table tfoot td { font-weight:800; background:#b8cce4; position:sticky; bottom:0; z-index:1; } .wg-table tfoot td.wg-fix { z-index:3; }
    .wg-name-button { padding:0; border:0; background:none; font:inherit; font-weight:700; color:#0f2238; text-align:left; cursor:pointer; } .wg-name-button:hover { color:#1f5fd6; text-decoration:underline; }
    /* Day-by-day variant used for next month's plan in the month-end report. */
    .mer-gantt { max-height:none; }
    [data-plan-calendar] select { margin:0 0 8px 8px; }
    @media print {
      [data-plan-calendar] > label { display:none; }
      [data-plan-calendar] [data-plan-period][hidden] { display:block!important; }
      [data-plan-calendar] [data-plan-period][data-empty] { display:none!important; }
    }
    .mer-group { min-inline-size:0; }
    [data-plan-period] h3 { font-size:15px; margin:0 0 6px; }
    .mer-gantt .wg-dayhead, .mer-gantt .wg-dayname { min-width:22px; padding:2px 0!important; font-size:10.5px; }
    .mer-gantt .wg-day { min-width:22px; height:26px; padding:0!important; }
    .mer-gantt .wg-weekend { background:#e9edf3; } .mer-gantt th.wg-weekend { background:#a9bed8; }
    .mer-gantt td.wg-plan { background:#ffe600; }
    .mer-gantt .wg-table thead tr:nth-child(2) th { top:24px; }
    @media print { .mer-gantt { overflow:visible!important; max-width:none!important; border:0; } .mer-gantt .wg-table { font-size:9px; } .mer-gantt .wg-fix { position:static; } }
    .wg-signatures { display:flex; gap:40px; margin-top:24px; font-size:13px; }
    body.tv-mode .shell { grid-template-columns:1fr; }
    body.tv-mode .sidebar, body.tv-mode #quickAdd, body.tv-mode #quickMenu, body.tv-mode .open-expense { display:none !important; }
    body.tv-mode #tvModeToggle { border-color:#b4232f; color:#b4232f; }
    .portfolio-board { margin-bottom:20px; overflow:hidden; }
    .portfolio-board table { width:100%; border-collapse:collapse; text-align:left; font-variant-numeric:tabular-nums; }
    .portfolio-board th,.portfolio-board td { padding:12px 16px; border-top:1px solid #dce5f0; }
    .portfolio-board th { background:#f3f6fb; font-size:14px; color:#405874; }
    .portfolio-board td { font-size:16px; vertical-align:middle; }
    .portfolio-board small { display:block; color:#516681; margin-top:4px; font-size:.85em; }
    .portfolio-state { display:inline-block; padding:4px 8px; border-radius:5px; font-weight:700; background:#eef2f6; color:#455568; }
    .portfolio-state.behind { color:#8c271d; background:#fff0ed; }
    .portfolio-state.on_track,.portfolio-state.ahead { color:#096047; background:#e2f5ec; }
    .portfolio-board .over-budget { color:#982a20; }
    body.tv-mode .portfolio-board td { font-size:clamp(18px,1.45vw,32px); }
    body.tv-mode .portfolio-board th,body.tv-mode .dashboard-refreshed { font-size:clamp(15px,1.05vw,24px); }
    @media(max-width:740px){
      .portfolio-board thead { position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%); }
      .portfolio-board tr { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));padding:10px;border-top:1px solid #dce5f0; }
      .portfolio-board td { border:0;padding:6px;overflow-wrap:anywhere; }
      .portfolio-board td:first-child { grid-column:1/-1; }
      .portfolio-board td[data-label]::before { content:attr(data-label);display:block;font-size:12px;color:#516681; }
    }
    .view-as-banner { position:fixed; z-index:200; left:50%; bottom:18px; transform:translateX(-50%); display:flex; gap:12px; align-items:center; max-width:calc(100vw - 32px); padding:10px 12px 10px 16px; border-radius:999px; background:#b4232f; color:#fff; font-size:14px; font-weight:700; box-shadow:0 10px 30px rgba(120,20,30,.35); }
    .view-as-banner[hidden] { display:none; }
    .view-as-banner button { flex:none; padding:7px 14px; border:0; border-radius:999px; background:#fff; color:#b4232f; font-weight:800; cursor:pointer; }
    .view-as-dialog { width:min(440px,calc(100vw - 32px)); padding:24px; border:0; border-radius:14px; box-shadow:0 24px 60px rgba(10,28,54,.3); }
    .view-as-dialog::backdrop { background:rgba(10,28,54,.45); }
    .view-as-dialog h2 { margin:0 0 6px; } .view-as-dialog p { margin:0 0 16px; color:#5b6b80; font-size:14px; }
    .view-as-dialog label { display:block; margin-bottom:6px; font-weight:700; } .view-as-dialog select { width:100%; }
    .view-as-actions { display:flex; justify-content:flex-end; gap:10px; margin-top:20px; }
    .dashboard-progress { margin-top:28px; padding-top:24px; border-top:1px solid var(--line, #e3e8ef); scroll-margin-top:90px; }
    .dashboard-refreshed { display:block; margin-top:4px; color:#6b7a90; font-size:12px; }
    .brand-home { text-decoration:none; cursor:pointer; }
    .brand-home .brand-logo { height:96px; padding:6px 9px; border-radius:10px; transition:transform .15s ease, box-shadow .15s ease; }
    .brand-home:hover .brand-logo, .brand-home:focus-visible .brand-logo { transform:scale(1.03); box-shadow:0 0 0 3px rgba(255,255,255,.35); }
    .brand-home:focus-visible { outline:none; }
    .workspace { margin:0 6px 17px; padding:9px 11px; border:1px solid rgba(255,255,255,.12); border-radius:10px; background:rgba(255,255,255,.055); }
    .workspace small { display:block; color:#91a6c1; font-size:9px; font-weight:750; letter-spacing:.8px; } .workspace strong { display:block; margin-top:2px; overflow:hidden; color:#fff; font-size:12px; text-overflow:ellipsis; white-space:nowrap; }
    .nav-label { padding:0 11px 7px; color:#7890ae; font-size:9px; font-weight:800; letter-spacing:1.15px; text-transform:uppercase; }
    .sidebar .nav-label-accent {
      display:flex;
      align-items:center;
      min-height:44px;
      margin-bottom:8px;
      padding:10px 14px;
      border:0;
      border-radius:24px;
      background:#284766;
      color:#f1f6fc;
      font-size:13px;
      font-weight:800;
      line-height:1.4;
      letter-spacing:.3px;
    }
    .nav-section-toggle { justify-content:space-between; gap:8px; width:100%; text-align:left; cursor:pointer; }
    .sidebar .nav-section-toggle:hover { background:#355b80; }
    .nav-section-toggle:focus-visible { outline:2px solid #a5d9eb; outline-offset:3px; }
    .nav-section-toggle svg { width:16px; height:16px; flex-shrink:0; transition:transform .15s ease; }
    .nav-section-toggle[aria-expanded="false"] svg { transform:rotate(-90deg); }
    #expenseCategoryNav[hidden] { display:none !important; }
    .nav { display:grid; gap:2px; } .nav button { width:100%; min-height:46px; display:flex; align-items:center; gap:10px; padding:0 12px; overflow:hidden; border:0; border-radius:9px; color:#b7cae1; text-align:left; text-overflow:ellipsis; white-space:nowrap; background:transparent; font-size:13px; transition:.15s ease; }
    .nav button:hover { color:#fff; background:rgba(255,255,255,.08); }.nav button.active { color:#fff; font-weight:700; background:#2868e8; box-shadow:0 4px 12px rgba(0,0,0,.14); }
    .nav-icon { display:grid; flex:0 0 20px; width:20px; height:20px; place-items:center; color:currentColor; } .nav-icon svg { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; } .nav button>span:not(.nav-icon):not(.nav-count){min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-count { margin-left:auto; } .sidebar-spacer { flex:1; }
    .expense-category-nav { margin:0 0 8px; padding:0 4px; border-left:1px solid rgba(150,185,235,.28); }.nav button.expense-category-shortcut { min-height:39px; padding:0 10px; color:#a9bed7; font-size:12px; }.nav button.expense-category-shortcut:hover { color:#fff; background:rgba(255,255,255,.075); }.nav button.expense-category-shortcut.active { color:#fff; background:rgba(45,108,232,.76); box-shadow:none; }.nav button.expense-category-shortcut .nav-icon svg { width:16px; height:16px; }
    .help-card { margin:18px 8px 14px; padding:14px; border-radius:12px; color:#b5c9e1; background:#183657; font-size:12px; }.help-card b{display:block;margin-bottom:4px;color:#fff;font-size:13px}.help-card a{display:inline-block;margin-top:8px;color:#77a7ff;text-decoration:none;font-weight:700}
    .help-guide-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.help-guide{padding:22px;border:1px solid #dce6f4;border-radius:15px;background:#fff}.help-guide h2{margin:0 0 8px;color:#173b6a;font-size:18px}.help-guide p{margin:0 0 15px;color:#6b7d94;font-size:12px;line-height:1.6}.help-step{display:flex;gap:10px;align-items:flex-start;padding:11px 0;border-top:1px solid #edf1f6;color:#40536c;font-size:13px}.help-step:first-of-type{border-top:0}.help-step>b{display:grid;flex:0 0 25px;width:25px;height:25px;place-items:center;border-radius:50%;color:#fff;background:#246bfd;font-size:11px}.help-video-note{margin-top:20px;padding:17px 19px;border:1px dashed #9cbcf3;border-radius:12px;color:#45617f;background:#f4f8ff;font-size:12px;line-height:1.65}.help-video-note strong{display:block;margin-bottom:4px;color:#173b6a;font-size:13px}@media(max-width:760px){.help-guide-grid{grid-template-columns:1fr}}
    .profile { display:flex; align-items:center; gap:10px; padding:12px 10px 0; border-top:1px solid rgba(255,255,255,.1); }.avatar { display:grid; flex:0 0 33px; width:33px; height:33px; place-items:center; border-radius:50%; color:#fff; background:#e9853b; font-size:12px; font-weight:800; }.profile strong,.profile small { display:block; }.profile strong { color:#fff; font-size:12px; }.profile small { margin-top:1px; color:#93a9c3; font-size:11px; }.profile button { margin-left:auto; border:0; color:#9bb2cf; background:transparent; font-size:17px; }
    main { min-width:0; }.topbar { position:sticky; z-index:30; top:0; height:76px; display:flex; align-items:center; justify-content:space-between; gap:20px; padding:0 34px; border-bottom:1px solid var(--line); background:rgba(255,255,255,.95); box-shadow:0 3px 12px rgba(26,55,91,.05); backdrop-filter:blur(12px); }.crumb { color:var(--muted); font-size:14px; }.crumb strong { color:var(--ink); font-size:16px; letter-spacing:-.2px; }.top-actions { display:flex; align-items:center; gap:14px; }.month { padding:8px 11px; border:1px solid var(--line); border-radius:8px; color:var(--muted); background:#fff; font-size:12px; }.notification { position:relative; width:34px; height:34px; border:1px solid var(--line); border-radius:9px; color:#607087; background:#fff; }.notification:after { position:absolute; top:7px; right:8px; width:5px; height:5px; border:2px solid #fff; border-radius:99px; background:var(--red); content:""; }
    .content { max-width:1450px; padding:30px 34px 44px; margin:auto; }.view { display:none; }.view.active { display:block; animation:fade .22s ease; } @keyframes fade { from { opacity:.35; transform:translateY(5px)} to {opacity:1;transform:none} }
    .title-row { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; margin-bottom:25px; }.title-row h1 { margin:0; font-size:25px; letter-spacing:-.7px; }.title-row p { margin:5px 0 0; color:var(--muted); }.dashboard-greeting{font-size:30px!important;line-height:1.22;letter-spacing:-.9px!important}.dashboard-greeting-name{margin-left:4px;color:#4c627e;font-size:.8em;font-weight:700;letter-spacing:-.45px}.dashboard-greeting-wave{margin-left:4px;font-size:.84em}.primary { border:0; border-radius:9px; padding:10px 15px; color:#fff; background:var(--blue); box-shadow:0 5px 12px rgba(36,107,253,.19); font-weight:700; }.primary:hover{background:#1459e5}.secondary { border:1px solid var(--line); border-radius:9px; padding:9px 13px; color:#42536a; background:#fff; font-weight:650; }.secondary:hover{background:#f7f9fc}
    .stats { display:grid; grid-template-columns:repeat(4,1fr); gap:15px; margin-bottom:22px; }.dashboard-stats{grid-template-columns:repeat(5,minmax(0,1fr))}.stat { padding:18px 19px; border:1px solid var(--line); border-radius:var(--radius); background:var(--white); box-shadow:0 1px 3px rgba(20,42,70,.025); }.stat-interactive{display:block;width:100%;color:inherit;text-align:left;font:inherit;transition:.16s ease}.stat-interactive:hover,.stat-interactive:focus-visible{border-color:#aac5fb;box-shadow:0 7px 18px rgba(36,107,253,.10);outline:0;transform:translateY(-2px)}.stat-interactive .stat-note:after{margin-left:5px;color:#246bfd;content:'→';font-weight:800}.stat-header { display:flex; align-items:center; justify-content:space-between; color:var(--muted); font-size:12px; }.stat-icon { display:grid; width:31px; height:31px; place-items:center; border-radius:9px; font-size:15px; }.stat-value { margin:12px 0 5px; font-size:23px; font-weight:800; letter-spacing:-.6px; }.stat-note { color:var(--muted); font-size:11px; }.up { color:var(--green); }.warn { color:var(--orange); }.blue-bg{background:var(--blue-soft)}.green-bg{background:var(--green-soft)}.orange-bg{background:var(--orange-soft)}.red-bg{background:#fff0f1}
    .grid-2 { display:grid; grid-template-columns:1.3fr .9fr; gap:19px; }.card { overflow:hidden; border:1px solid var(--line); border-radius:var(--radius); background:#fff; box-shadow:var(--shadow); }.card-head { display:flex; align-items:center; justify-content:space-between; padding:19px 20px 15px; }.card-head h2 { margin:0; font-size:15px; letter-spacing:-.2px; }.card-head a { color:var(--blue); text-decoration:none; font-size:12px; font-weight:700; }.card-sub { margin:-9px 20px 13px; color:var(--muted); font-size:12px; }
    .project-row { padding:14px 20px; border-top:1px solid #eef1f5; }.project-row[data-open-project]{cursor:pointer;transition:.15s ease}.project-row[data-open-project]:hover{background:#f8fbff}.project-head { display:flex; justify-content:space-between; gap:10px; align-items:center; }.project-name { font-weight:700; font-size:13px; }.project-meta { margin-top:3px; color:var(--muted); font-size:11px; }.amount { color:#33445a; font-size:12px; font-weight:750; white-space:nowrap; }.progress { height:7px; overflow:hidden; margin-top:11px; border-radius:10px; background:#edf0f4; }.progress span { display:block; height:100%; border-radius:inherit; }.progress-details { display:flex; justify-content:space-between; margin-top:5px; color:var(--muted); font-size:10px; }.project-foot { padding:13px 20px; border-top:1px solid #eef1f5; color:var(--muted); font-size:11px; }
    .category-list { padding:0 20px 16px; }.category-row { display:grid; grid-template-columns:28px 1fr auto; align-items:center; gap:10px; padding:12px 0; border-top:1px solid #eef1f5; }.category-icon { display:grid; width:27px; height:27px; place-items:center; border-radius:7px; background:#f3f6fa; font-size:13px; }.category-row strong { display:block; font-size:12px; }.category-row small { display:block; margin-top:2px; color:var(--muted); font-size:10px; }.category-val { color:#43566f; font-size:12px; font-weight:750; }
    .recent { margin-top:19px; }.table-wrap { overflow:auto; }.table { width:100%; border-collapse:collapse; text-align:left; }.table th { padding:11px 18px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); color:#8390a0; background:#fafbfd; font-size:10px; font-weight:750; letter-spacing:.35px; text-transform:uppercase; white-space:nowrap; }.table td { padding:13px 18px; border-bottom:1px solid #eef1f5; color:#33445a; vertical-align:middle; font-size:12px; }.table tr:last-child td{border-bottom:0}.expense-detail-row{cursor:pointer;transition:.14s ease}.expense-detail-row:hover{background:#f7faff}.expense-detail-row:focus-visible{outline:2px solid #94b8ff;outline-offset:-2px}.person { display:flex; gap:8px; align-items:center; }.mini-avatar { display:grid; width:25px; height:25px; place-items:center; border-radius:50%; color:#fff; background:#7186a6; font-size:9px; font-weight:800; }.type { display:inline-flex; padding:4px 7px; border-radius:5px; color:#506176; background:#f1f4f7; font-size:10px; font-weight:650; }.receipt { color:var(--blue); font-weight:700; cursor:pointer; }.empty-receipt { color:#a6b0bc; }.row-action { border:0; padding:4px 7px; color:#8493a5; background:transparent; font-size:16px; }
    .toolbar { display:flex; align-items:center; gap:10px; flex-wrap:wrap; padding:0 0 18px; }.search { min-width:220px; flex:1; position:relative; }.search span { position:absolute; top:9px; left:11px; color:#8b99aa; }.search input,.field input,.field select,.field textarea { width:100%; padding:9px 10px; border:1px solid #dfe5ec; border-radius:8px; outline:0; color:#34465d; background:#fff; }.search input { padding-left:32px; }.search input:focus,.field input:focus,.field select:focus,.field textarea:focus{border-color:#91b4ff;box-shadow:0 0 0 3px #edf3ff}.filter { padding:9px 10px; border:1px solid #dfe5ec; border-radius:8px; color:#596b80; background:#fff; font-size:12px; }.filter:focus{border-color:#91b4ff;outline:0}.toolbar .secondary{font-size:12px;padding:9px 12px}
    .list-card .table td:first-child{font-weight:700}.pagination { display:flex; align-items:center; justify-content:space-between; padding:14px 18px; border-top:1px solid var(--line); color:var(--muted); font-size:11px; }.pager { display:flex; gap:5px; }.pager button { min-width:27px; height:27px; border:1px solid var(--line); border-radius:6px; color:#637287; background:#fff; font-size:11px; }.pager button.active{border-color:var(--blue);color:#fff;background:var(--blue)}
    .project-cards { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }.project-card { padding:19px; border:1px solid var(--line); border-radius:var(--radius); background:#fff; box-shadow:var(--shadow); }.project-card-top { display:flex; align-items:flex-start; justify-content:space-between; gap:10px; }.project-badge { padding:5px 8px; border-radius:5px; color:#4d6080; background:#f0f3f7; font-size:10px; font-weight:750; }.project-status{padding:5px 7px;border-radius:5px;color:#157152;background:#e7f7f0;font-size:9px;font-weight:800}.project-status.completed{color:#5e6f84;background:#eef1f5}.project-card h3{margin:12px 0 4px;font-size:15px}.project-card p{min-height:34px;margin:0;color:var(--muted);font-size:11px}.budget-summary { display:flex; justify-content:space-between; padding:15px 0 11px; border-bottom:1px solid #edf0f4; }.budget-summary span{display:block;color:var(--muted);font-size:10px}.budget-summary b{display:block;margin-top:3px;font-size:13px}.cat-lines{display:grid;gap:8px;padding-top:13px}.cat-line{display:grid;grid-template-columns:75px 1fr auto;gap:7px;align-items:center;color:var(--muted);font-size:10px}.cat-line .progress{margin:0;height:5px}.cat-line b{color:#5a6b80;font-size:10px}.project-card-foot{display:flex;justify-content:space-between;align-items:center;margin-top:16px;padding-top:13px;border-top:1px solid #edf0f4;color:var(--muted);font-size:10px}.project-card-foot a{color:var(--blue);font-weight:750;text-decoration:none}.project-detail-link{padding:0;border:0;color:var(--blue);background:transparent;font-size:11px;font-weight:800}.project-detail-link:hover{text-decoration:underline}
    .report-grid { display:grid; grid-template-columns:1.3fr .7fr; gap:19px; }.chart-card { padding-bottom:18px; }.chart-wrap { height:255px; display:flex; align-items:end; gap:16px; padding:23px 22px 0; border-top:1px solid #eef1f5; }.bar { flex:1; height:100%; display:flex; gap:4px; align-items:end; justify-content:center; position:relative; }.bar span { display:block; width:18px; border-radius:5px 5px 0 0; background:#c9d9fa; }.bar span.actual { background:var(--blue); }.bar label { position:absolute; bottom:-19px; color:#7b8999; font-size:10px; }.chart-legend { display:flex; justify-content:center; gap:18px; padding-top:28px; color:#708095; font-size:10px; }.legend-dot { display:inline-block; width:8px; height:8px; margin-right:5px; border-radius:50%; background:#c9d9fa; }.legend-dot.actual { background:var(--blue); }
    .breakdown { padding:0 20px 14px; }.break-row { display:grid; grid-template-columns:9px 1fr auto; align-items:center; gap:9px; padding:11px 0; border-top:1px solid #eef1f5; }.break-color { width:9px; height:9px; border-radius:2px; }.break-row strong { font-size:12px; }.break-row small{display:block;margin-top:1px;color:var(--muted);font-size:10px}.break-row b{font-size:12px}.report-note { margin-top:18px; padding:15px; border:1px solid #d9e6ff; border-radius:12px; color:#49627e; background:#eff5ff; font-size:12px; }.report-note b { color:#244a7d; }
    .settings-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }.settings-item{padding:18px;border:1px solid var(--line);border-radius:var(--radius);background:#fff}.settings-item h3{margin:0 0 5px;font-size:14px}.settings-item p{margin:0 0 15px;color:var(--muted);font-size:12px}.settings-item button{font-size:12px}.team-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:6px 22px 22px}.team-member{display:flex;align-items:flex-start;gap:11px;padding:14px;border:1px solid var(--line);border-radius:12px;background:#fbfcfe}.team-member-body{min-width:0;flex:1}.team-member-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.team-avatar,.profile-photo-preview{display:grid;place-items:center;overflow:hidden;flex:0 0 46px;width:46px;height:46px;border-radius:50%;color:#fff;background:linear-gradient(135deg,#356cd4,#173c72);font-size:13px;font-weight:800}.team-avatar img,.profile-photo-preview img,.avatar img{width:100%;height:100%;object-fit:cover}.team-member strong,.team-member small{display:block}.team-member strong{color:#2d4059;font-size:13px}.team-member small{margin-top:2px;color:var(--muted);font-size:11px;word-break:break-word}.team-member .type{flex:0 0 auto;margin:0;align-self:flex-start}.team-projects{margin-top:7px!important}.team-contact{display:grid;gap:3px;margin-top:7px}.team-contact a{overflow-wrap:anywhere;color:#60758e;font-size:11px;text-decoration:none}.team-contact a:hover{text-decoration:underline}.team-duty{margin-top:9px;color:#526983;font-size:11px}.team-duty summary{cursor:pointer;color:#2a64bd;font-weight:700}.team-duty p{margin:6px 0 0;white-space:pre-line;line-height:1.5}.team-actions{display:flex;flex-direction:column;align-items:flex-end;gap:7px;margin-left:auto}.team-actions .danger-button{padding:7px 9px;font-size:10px}.profile-photo-edit{display:flex;align-items:center;gap:13px;padding:12px;border:1px dashed #cad6e5;border-radius:11px;background:#fbfcfe}.profile-photo-preview{width:66px;height:66px;flex-basis:66px;font-size:18px}.profile-photo-copy{min-width:0}.profile-photo-copy b{display:block;color:#42546b;font-size:12px}.profile-photo-copy p{margin:3px 0 8px;color:var(--muted);font-size:11px}.profile-photo-copy input{max-width:290px;font-size:11px}
    .modal { position:fixed; z-index:100; inset:0; display:none; place-items:center; padding:20px; background:rgba(11,29,51,.42); }.modal.open { display:grid; }.modal-box { width:min(600px,100%); max-height:calc(100vh - 40px); overflow:auto; border-radius:18px; background:#fff; box-shadow:0 24px 60px rgba(0,0,0,.22); }.modal-head { display:flex; align-items:center; justify-content:space-between; padding:20px 22px; border-bottom:1px solid var(--line); }.modal-head h2{margin:0;font-size:17px}.close { width:30px;height:30px;border:0;border-radius:7px;color:#66778d;background:#f3f5f8;font-size:18px }.expense-form { padding:20px 22px; }.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; }.field { display:grid; gap:6px; }.field.full { grid-column:1/-1; }.field label{color:#53657b;font-size:11px;font-weight:750}.field textarea { min-height:76px; resize:vertical; }.form-actions { display:flex; justify-content:flex-end; gap:9px; margin-top:22px; }.toast { position:fixed; z-index:110; right:24px; bottom:24px; display:none; padding:12px 15px; border-radius:10px; color:#fff; background:#173758; box-shadow:0 10px 30px rgba(16,36,62,.25); font-size:12px; font-weight:650; }.toast.show{display:block;animation:slide .25s ease}@keyframes slide{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
    /* Contract PDFs have their own large viewer so the edit form stays separate. */
    .contract-preview-modal{z-index:106;padding:16px}.contract-preview-box{width:min(1320px,100%);height:min(900px,calc(100vh - 32px));max-height:calc(100vh - 32px);display:flex;flex-direction:column;overflow:hidden}.contract-preview-box .modal-head{flex:0 0 auto;gap:16px}.contract-preview-heading{min-width:0}.contract-preview-heading h2{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.contract-preview-heading small{display:block;overflow:hidden;margin-top:3px;color:var(--muted);font-size:11px;text-overflow:ellipsis;white-space:nowrap}.contract-preview-body{position:relative;display:flex;flex:1;min-height:0;padding:14px;background:#edf2f7}.contract-preview-frame{display:block;width:100%;height:100%;min-height:480px;border:1px solid #dce4ed;border-radius:12px;background:#fff}.contract-preview-loading,.contract-preview-error{position:absolute;z-index:1;inset:14px;display:grid;place-items:center;margin:0;padding:30px;border:1px dashed #c9d5e4;border-radius:12px;color:#5d7088;background:rgba(248,250,253,.96);font-size:13px;text-align:center}.contract-preview-error{color:#9f3f49;border-color:#efc6ca;background:#fff7f7}.contract-preview-actions{display:flex;align-items:center;gap:8px}.contract-preview-actions .secondary{white-space:nowrap}@media(max-width:760px){.contract-preview-modal{padding:8px}.contract-preview-box{width:100%;height:calc(100vh - 16px);max-height:calc(100vh - 16px);border-radius:14px}.contract-preview-box .modal-head{padding:14px 15px}.contract-preview-heading h2{font-size:15px}.contract-preview-heading small{font-size:10px}.contract-preview-actions .secondary{display:none}.contract-preview-body{padding:8px}.contract-preview-frame{min-height:0;border-radius:9px}.contract-preview-loading,.contract-preview-error{inset:8px;font-size:12px}}
    .login { display:none; min-height:100vh; align-items:center; justify-content:center; padding:20px; background:linear-gradient(140deg,#0f2744,#173b64 56%,#245fd0); }.login.show{display:flex}.login-card{width:min(900px,100%);display:grid;grid-template-columns:1.1fr .9fr;overflow:hidden;border-radius:22px;background:#fff;box-shadow:0 26px 70px rgba(0,0,0,.25)}.login-promo{padding:48px;color:#fff;background:linear-gradient(155deg,#112b49,#1b4b7d)}.login-promo .brand{padding:0 0 60px}.login-promo h1{max-width:350px;margin:0;font-size:34px;line-height:1.12;letter-spacing:-1.2px}.login-promo p{max-width:350px;margin:15px 0 45px;color:#c5d8ef}.login-points{display:grid;gap:13px}.login-point{display:flex;gap:10px;align-items:center;color:#d6e4f7;font-size:12px}.login-point i{display:grid;width:23px;height:23px;place-items:center;border-radius:7px;background:rgba(113,162,255,.24);font-style:normal}.login-form{padding:60px 46px}.login-form h2{margin:0;font-size:23px;letter-spacing:-.6px}.login-form p{margin:6px 0 26px;color:var(--muted)}.login-form .field{margin-top:14px}.login-form .primary{width:100%;margin-top:23px}.demo-note{margin-top:16px;padding:10px;border-radius:8px;color:#58708e;background:#f2f6fd;font-size:11px}.demo-note b{color:#315582}
    .register-cta{margin-top:16px;text-align:center;color:#69798d;font-size:12px}.link-button{padding:0;border:0;color:var(--blue);background:transparent;font-weight:800}.link-button:hover{text-decoration:underline}.login-options{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:15px;color:#53657b;font-size:12px}.remember-login{display:inline-flex;align-items:center;gap:7px;cursor:pointer;font-weight:750}.remember-login input{width:16px;height:16px;margin:0;accent-color:var(--blue)}.login-options .link-button{font-size:12px}.register-cta{margin-top:16px;text-align:center;color:#69798d;font-size:12px}.link-button{padding:0;border:0;color:var(--blue);background:transparent;font-weight:800}.link-button:hover{text-decoration:underline}.modal-box.wide{width:min(760px,100%)}.modal-intro{margin:0 22px 12px;color:var(--muted);font-size:12px}.request-list{display:grid;gap:12px;padding:6px 22px 22px}.request-card{padding:15px;border:1px solid var(--line);border-radius:12px;background:#fbfcfe}.request-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.request-card h3{margin:0;font-size:14px}.request-card p{margin:3px 0 0;color:var(--muted);font-size:11px}.project-options{display:flex;flex-wrap:wrap;gap:7px;margin:13px 0}.project-option{display:flex;align-items:center;gap:5px;padding:6px 8px;border:1px solid #e1e6ee;border-radius:7px;color:#4e6076;background:#fff;font-size:11px}.request-actions{display:flex;justify-content:flex-end}.empty-state{padding:26px 10px;text-align:center;color:var(--muted);font-size:12px}.project-expense-group{border-top:1px solid var(--line)}.project-expense-group:first-child{border-top:0}.project-expense-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 20px;background:#fbfcfe}.project-expense-name{display:flex;gap:8px;align-items:center;font-size:13px;font-weight:800}.project-expense-code{padding:3px 6px;border-radius:4px;color:#5c6f88;background:#ecf0f5;font-size:9px;letter-spacing:.4px}.project-expense-meta{color:var(--muted);font-size:11px}.project-expense-group .table th{padding-top:8px;padding-bottom:8px}.project-expense-group .table td{padding-top:10px;padding-bottom:10px}.project-expense-empty{padding:14px 20px;color:var(--muted);font-size:11px}.category-budget-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.category-budget-field{display:grid;gap:6px}.category-budget-field>span{color:#53657b;font-size:11px;font-weight:750}.budget-allocation{margin-top:10px;padding:9px 10px;border-radius:8px;color:#63738a;background:#f4f7fb;font-size:11px}.budget-allocation b{color:#264a77}.member-options{display:flex;flex-wrap:wrap;gap:8px;margin-top:2px}.member-option{display:flex;align-items:center;gap:6px;padding:8px 9px;border:1px solid #dfe6ef;border-radius:8px;color:#42546b;background:#fff;font-size:11px}.member-option small{color:var(--muted)}.field-help{margin:0;color:var(--muted);font-size:10px}.profile-card{max-width:760px}.profile-role{padding:9px 10px;border:1px solid #dfe5ec;border-radius:8px;color:#53657b;background:#f7f9fc;font-size:12px;font-weight:700}.profile-help{padding:0 22px}.detail-body{padding:20px 22px 24px}.detail-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px}.detail-hero h3{margin:7px 0 4px;font-size:21px;letter-spacing:-.5px}.detail-hero p{max-width:500px;margin:0;color:var(--muted);font-size:12px}.detail-code{display:inline-flex;padding:4px 7px;border-radius:5px;color:#4d6080;background:#edf1f6;font-size:10px;font-weight:800}.detail-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:18px}.detail-stat{padding:12px;border:1px solid var(--line);border-radius:10px;background:#fbfcfe}.detail-stat span{display:block;color:var(--muted);font-size:10px}.detail-stat b{display:block;margin-top:5px;color:#2e415a;font-size:13px}.detail-layout{display:grid;grid-template-columns:1fr 1fr;gap:16px}.detail-panel{padding:16px;border:1px solid var(--line);border-radius:12px;background:#fff}.detail-panel h4{margin:0 0 13px;font-size:13px}.detail-category{display:grid;grid-template-columns:84px 1fr auto;gap:8px;align-items:center;padding:9px 0;border-top:1px solid #edf0f4;color:#516277;font-size:11px}.detail-category:first-of-type{border-top:0}.detail-category .progress{margin:0;height:6px}.detail-category b{color:#34475f;font-size:10px}.detail-members{display:flex;flex-wrap:wrap;gap:7px}.detail-member{padding:6px 8px;border-radius:7px;color:#4d6080;background:#f0f4f8;font-size:10px}.detail-expenses{margin-top:16px}.detail-expenses .card-head{padding:0 0 12px}.detail-expenses .card-head h4{margin:0}.detail-add-expense{white-space:nowrap}.detail-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.detail-actions .secondary{white-space:nowrap}.danger-zone{margin-top:22px;padding:15px;border:1px solid #f1c9cc;border-radius:11px;background:#fff7f7}.danger-zone h3{margin:0 0 4px;color:#9d3540;font-size:13px}.danger-zone p{margin:0;color:#8d6268;font-size:11px}.danger-zone .form-actions{margin-top:13px}.danger-button{border:0;border-radius:9px;padding:10px 13px;color:#fff;background:#dc4c56;font-weight:750}.danger-button:hover{background:#c53a44}
    .performance-toolbar{display:flex;align-items:end;gap:10px;flex-wrap:wrap;margin:-5px 0 18px}.performance-picker{display:grid;min-width:280px;gap:6px}.performance-picker label{color:#53657b;font-size:11px;font-weight:750}.performance-picker select{width:100%;padding:10px;border:1px solid #dfe5ec;border-radius:8px;color:#34465d;background:#fff;outline:0}.performance-picker select:focus{border-color:#91b4ff;box-shadow:0 0 0 3px #edf3ff}.performance-refresh{min-height:39px;font-size:12px}.performance-state{padding:36px 22px;border:1px dashed #cdd7e4;border-radius:var(--radius);color:#65768c;background:#fbfcfe;text-align:center}.performance-state strong{display:block;margin-bottom:5px;color:#34475f;font-size:14px}.performance-state p{max-width:460px;margin:0 auto;font-size:12px}.performance-hero{overflow:hidden;position:relative;margin-bottom:17px;padding:23px;border-radius:var(--radius);color:#fff;background:linear-gradient(135deg,#153965,#1d63d6 66%,#2e7cff);box-shadow:0 10px 24px rgba(29,84,178,.18)}.performance-hero:after{position:absolute;right:-86px;bottom:-128px;width:320px;height:320px;border:36px solid rgba(255,255,255,.09);border-radius:50%;content:""}.performance-hero-main{position:relative;z-index:1;display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.performance-hero-code{display:inline-flex;padding:4px 7px;border:1px solid rgba(255,255,255,.28);border-radius:5px;color:#dfeaff;background:rgba(10,39,90,.2);font-size:10px;font-weight:800;letter-spacing:.45px}.performance-hero h2{margin:9px 0 4px;font-size:23px;letter-spacing:-.7px}.performance-hero p{max-width:650px;margin:0;color:#dce9ff;font-size:12px}.performance-actual{min-width:150px;padding:10px 13px;border:1px solid rgba(255,255,255,.17);border-radius:12px;background:rgba(7,30,73,.22);text-align:right}.performance-actual span{display:block;color:#cfe0ff;font-size:10px}.performance-actual b{display:block;margin-top:2px;font-size:27px;letter-spacing:-1px}.performance-metric-grid{position:relative;z-index:1;display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-top:20px}.performance-metric{padding:11px;border:1px solid rgba(255,255,255,.15);border-radius:10px;background:rgba(8,40,96,.18)}.performance-metric span{display:block;color:#cfe0ff;font-size:10px}.performance-metric b{display:block;margin-top:5px;color:#fff;font-size:14px}.performance-metric b.negative{color:#ffd3d6}.performance-metric b.positive{color:#b9f6dd}.performance-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:17px;margin-bottom:17px}.performance-panel{overflow:hidden;border:1px solid var(--line);border-radius:var(--radius);background:#fff;box-shadow:var(--shadow)}.performance-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:18px 19px 13px;border-bottom:1px solid #edf0f4}.performance-panel-head h2{margin:0;font-size:14px}.performance-panel-head p{margin:3px 0 0;color:var(--muted);font-size:11px}.performance-panel-body{padding:5px 19px 14px}.performance-alert{display:flex;gap:11px;align-items:flex-start;margin-bottom:17px;padding:14px 15px;border:1px solid #f2d6ab;border-radius:12px;color:#76562e;background:#fff9ed;font-size:12px}.performance-alert strong{display:block;margin-bottom:2px;color:#6b4b22}.performance-alert i{display:grid;flex:0 0 24px;width:24px;height:24px;place-items:center;border-radius:7px;color:#a26911;background:#ffedc9;font-style:normal;font-weight:900}.performance-alert.good{border-color:#ccebdc;color:#39725d;background:#f2fbf6}.performance-alert.good strong{color:#1e674b}.performance-alert.good i{color:#157152;background:#dbf4e7}.performance-compare{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:14px 19px 17px}.performance-compare-item{padding:11px 12px;border:1px solid #e4ebf3;border-radius:10px;background:#fbfcfe}.performance-compare-item span{display:block;color:var(--muted);font-size:10px}.performance-compare-item b{display:block;margin-top:4px;color:#31445d;font-size:16px}.performance-compare-item small{display:block;margin-top:3px;color:#6b7c91;font-size:10px}.performance-list{padding:0 19px 12px}.performance-list-row{padding:13px 0;border-top:1px solid #edf0f4}.performance-list-row:first-child{border-top:0}.performance-list-head{display:flex;align-items:center;justify-content:space-between;gap:10px;color:#40536c;font-size:12px}.performance-list-head strong{color:#243851;font-size:12px}.performance-list-head b{font-size:12px}.performance-list-meta{display:flex;justify-content:space-between;gap:10px;margin-top:4px;color:#748397;font-size:10px}.performance-track{height:7px;overflow:hidden;margin-top:9px;border-radius:20px;background:#edf1f5}.performance-track span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#246bfd,#4a83fd)}.performance-track.warn span{background:linear-gradient(90deg,#e98725,#f0a648)}.performance-track.good span{background:linear-gradient(90deg,#12966e,#3bc497)}.performance-difference{display:inline-flex;padding:3px 6px;border-radius:5px;font-size:10px;font-weight:750}.performance-difference.negative{color:#a03b44;background:#fff0f1}.performance-difference.positive{color:#187653;background:#e8f8ef}.performance-difference.neutral{color:#61738b;background:#f0f3f7}.curve-wrap{padding:12px 19px 18px}.curve-svg{display:block;width:100%;height:220px;overflow:visible}.curve-grid{stroke:#e9eef4;stroke-width:1}.curve-label{fill:#8290a1;font-size:9px;font-family:inherit}.curve-axis-label{fill:#75869b;font-size:9px;font-family:inherit}.curve-line-planned{fill:none;stroke:#9aacbf;stroke-width:2.3;stroke-dasharray:5 4}.curve-line-actual{fill:none;stroke:#246bfd;stroke-width:3}.curve-point-actual{fill:#fff;stroke:#246bfd;stroke-width:2.5}.curve-legend{display:flex;justify-content:flex-end;gap:15px;margin-top:4px;color:#6d7d91;font-size:10px}.curve-legend i{display:inline-block;width:16px;height:2px;margin:0 5px 3px 0;vertical-align:middle;background:#9aacbf}.curve-legend i.actual{background:#246bfd}.performance-entry-list{padding:0 19px 7px}.performance-entry{display:grid;grid-template-columns:36px 1fr auto;gap:10px;align-items:center;padding:12px 0;border-top:1px solid #edf0f4}.performance-entry:first-child{border-top:0}.performance-entry-date{display:grid;width:36px;height:36px;place-items:center;border-radius:9px;color:#2863ca;background:#edf3ff;font-size:10px;font-weight:800;text-align:center;line-height:1.1}.performance-entry strong{display:block;color:#33475f;font-size:12px}.performance-entry small{display:block;margin-top:2px;color:#758499;font-size:10px}.performance-entry b{color:#157152;font-size:12px;white-space:nowrap}.performance-entry-photo{display:inline-flex;margin-left:5px;padding:2px 5px;border-radius:4px;color:#4b69a0;background:#edf3ff;font-size:9px;text-decoration:none}.performance-empty-list{padding:22px 0;color:#78879a;font-size:12px;text-align:center}.progress-preview{margin:4px 0 0;padding:13px;border:1px solid #d6e4fc;border-radius:10px;color:#50647d;background:#f5f8ff;font-size:11px}.progress-preview strong{display:block;margin-bottom:6px;color:#2e568f;font-size:12px}.progress-preview-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.progress-preview-grid span{display:block;color:#74859c;font-size:9px}.progress-preview-grid b{display:block;margin-top:2px;color:#2d435e;font-size:11px}.new-work-fields{display:contents}.new-work-fields.hidden{display:none}.progress-form-help{margin:0;color:var(--muted);font-size:10px}.progress-item-status{margin-top:3px;color:#7b8ba0;font-size:10px}.progress-modal-title-note{margin:0 22px 12px;color:var(--muted);font-size:12px}.progress-submit{min-width:150px}.progress-error{border-color:#f1c6cb;color:#8b434b;background:#fff7f7}.progress-error strong{color:#9e3640}@media (max-width:1050px){.stats{grid-template-columns:repeat(2,1fr)}.project-cards,.settings-grid{grid-template-columns:repeat(2,1fr)}.grid-2,.report-grid,.performance-grid{grid-template-columns:1fr}.content{padding:26px}.topbar{padding:0 26px}.performance-metric-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:760px){.shell{grid-template-columns:1fr}.sidebar{display:none}.topbar{height:62px;padding:0 17px}.month{display:none}.content{padding:22px 16px}.title-row{align-items:stretch;flex-direction:column}.title-row .primary{align-self:flex-start}.stats{grid-template-columns:1fr 1fr;gap:10px}.stat{padding:14px}.stat-value{font-size:18px}.project-cards,.settings-grid{grid-template-columns:1fr}.table th,.table td{padding-left:12px;padding-right:12px}.form-grid{grid-template-columns:1fr}.login-card{grid-template-columns:1fr}.login-promo{display:none}.login-form{padding:38px 27px}.toolbar .search{flex-basis:100%}.performance-toolbar{align-items:stretch}.performance-picker{min-width:0;flex:1}.performance-hero{padding:18px}.performance-hero-main{flex-direction:column}.performance-actual{text-align:left}.performance-metric-grid{grid-template-columns:1fr 1fr}.performance-grid{gap:13px}.performance-compare{grid-template-columns:1fr}.progress-preview-grid{grid-template-columns:1fr 1fr}.curve-wrap{padding-left:12px;padding-right:12px}}
    /* Захирлын гүйцэтгэлийн хяналтын нэмэлтүүд */
    .performance-metric-grid{grid-template-columns:repeat(4,1fr)}
    .performance-track.danger span{background:linear-gradient(90deg,#dc4c56,#ed777d)}
    .performance-track.warn span{background:linear-gradient(90deg,#e98725,#f0a648)}
    .performance-track.good span{background:linear-gradient(90deg,#12966e,#3bc497)}
    .performance-list-head .performance-values{display:flex;align-items:center;gap:7px;white-space:nowrap}
    .performance-values b{color:#263b56}
    .floor-building{display:grid;gap:5px;padding:15px 19px 18px}
    .floor-level{display:grid;grid-template-columns:50px 1fr 48px;align-items:center;gap:9px;min-height:27px;padding:4px 8px;border:1px solid #e1e8f1;border-radius:7px;background:#f7f9fc}
    .floor-level span{font-size:10px;font-weight:800;color:#52667f}.floor-level i{display:block;height:10px;border-radius:3px;background:#cbd5e1}.floor-level b{font-size:10px;text-align:right;color:#64748b}
    .floor-level.complete{border-color:#bde6d4;background:#f0fbf5}.floor-level.complete i{background:#22a876}.floor-level.complete b{color:#147452}
    .floor-level.active{border-color:#cddcff;background:#f2f6ff}.floor-level.active i{background:#246bfd}.floor-level.active b{color:#2460c7}
    .floor-level.idle{background:#f6f7f9}.floor-level.idle i{background:#cbd5e1}
    .floor-other-label{margin-top:7px;padding-top:9px;border-top:1px dashed #dbe3ec;color:#6d7e91;font-size:10px}
    .attention-list{display:grid;gap:0;padding:2px 19px 15px}.attention-row{display:grid;grid-template-columns:24px 1fr;gap:9px;padding:12px 0;border-top:1px solid #edf0f4}.attention-row:first-child{border-top:0}.attention-row i{font-style:normal;font-size:15px}.attention-row strong{display:block;color:#34475f;font-size:12px}.attention-row small{display:block;margin-top:2px;color:#748397;font-size:10px}.attention-row.danger strong{color:#a13742}.attention-row.warning strong{color:#a3671a}.attention-row.good strong{color:#187150}
    @media(max-width:760px){.performance-metric-grid{grid-template-columns:1fr 1fr}.floor-level{grid-template-columns:44px 1fr 44px}}
    /* Нээлттэй компанийн нүүр хуудас */
    [hidden]{display:none!important}
    .public-landing{min-height:100vh;color:#10243e;background:#fff;overflow:hidden;overflow:clip}
    /* Нүүр хуудасны 3D барилга: гүйлгэхэд давхрууд салж, айлын план харагдана */
    .tower-show{position:relative;height:760vh;color:#e6edf7;background:radial-gradient(120% 80% at 70% 30%,#1b3357 0%,#0c1a2e 55%,#081321 100%)}
    .ts-sticky{position:sticky;top:0;height:100vh;height:100dvh;overflow:hidden}
    .ts-canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
    .ts-copy{position:absolute;top:50%;left:max(45px,calc((100vw - 1240px)/2 + 45px));width:min(430px,38vw);height:0}
    .ts-step{position:absolute;left:0;right:0;top:0;opacity:0;transform:translateY(calc(-50% + 26px));transition:opacity .45s ease,transform .45s ease;pointer-events:none}
    .ts-step.active{opacity:1;transform:translateY(-50%);pointer-events:auto}
    .ts-kicker{display:inline-flex;align-items:center;gap:8px;color:#8fb6ff;font-size:11px;font-weight:850;letter-spacing:.9px;text-transform:uppercase}.ts-kicker i{width:7px;height:7px;border-radius:50%;background:#ffc76b;box-shadow:0 0 10px #ffc76b}
    .ts-step h2{margin:12px 0 12px;color:#fff;font-size:clamp(28px,3.4vw,44px);line-height:1.08;letter-spacing:-1.4px}
    .ts-step p{margin:0;color:#a9bad1;font-size:15px;line-height:1.7}
    .ts-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:24px}.ts-stats div{padding:13px 12px;border:1px solid rgba(143,182,255,.2);border-radius:13px;background:rgba(255,255,255,.04)}.ts-stats b{display:block;color:#fff;font-size:24px;letter-spacing:-.6px}.ts-stats span{color:#90a3bd;font-size:11px;font-weight:700}
    .ts-swatches{display:grid;gap:9px;margin-top:22px}.ts-swatch{display:flex;align-items:center;gap:12px;color:#cfdbec;font-size:13px;font-weight:700}.ts-swatch i{width:34px;height:22px;border-radius:6px;border:1px solid rgba(255,255,255,.25)}.ts-swatch small{display:block;color:#8597b0;font-size:11px;font-weight:600}
    .ts-apt-tabs{display:flex;gap:7px;margin:20px 0 12px}.ts-apt-tabs span{display:grid;width:38px;height:38px;place-items:center;border:1px solid rgba(143,182,255,.25);border-radius:10px;color:#9fb2cc;font-weight:850;transition:.25s}.ts-apt-tabs span.on{border-color:#ffc76b;color:#10243e;background:#ffc76b}
    .ts-apt-card{padding:16px 18px;border:1px solid rgba(143,182,255,.2);border-radius:14px;background:rgba(255,255,255,.05)}.ts-apt-card strong{display:block;color:#fff;font-size:20px}.ts-apt-card b{color:#ffc76b}.ts-apt-card ul{margin:10px 0 0;padding:0;list-style:none;color:#b3c3d8;font-size:13px;line-height:1.85}.ts-apt-card li span{float:right;color:#e6edf7;font-weight:700}
    .ts-note{display:block;margin-top:10px;color:#71839c;font-size:11px}
    .ts-buttons{display:flex;flex-wrap:wrap;gap:11px;margin-top:24px}.ts-buttons .hero-secondary{border-color:rgba(255,255,255,.35);color:#fff;background:transparent}
    .ts-floor-tag{position:absolute;left:0;top:0;padding:6px 10px;border-radius:8px;color:#10243e;background:#ffc76b;font-size:12px;font-weight:850;white-space:nowrap;opacity:0;transition:opacity .3s;pointer-events:none;box-shadow:0 6px 18px rgba(0,0,0,.3)}
    .ts-progress{position:absolute;left:0;right:0;bottom:0;height:3px;background:rgba(255,255,255,.07)}.ts-progress i{display:block;width:0;height:100%;background:linear-gradient(90deg,#246bfd,#ffc76b)}
    .ts-hint{position:absolute;left:50%;bottom:22px;transform:translateX(-50%);color:#8ea2bd;font-size:12px;font-weight:700;transition:opacity .3s}
    .orbit{padding:70px 0 40px;color:#e6edf7;background:#0c1a2e}.orbit-head{max-width:1240px;margin:0 auto 22px;padding:0 45px}.orbit .section-title{color:#fff}.orbit .section-copy{color:#a9bad1}
    .orbit-stage{position:relative;max-width:1400px;margin:auto;aspect-ratio:16/9;overflow:hidden;border-radius:18px;background:#081321;cursor:grab;touch-action:pan-y}.orbit-stage.grab{cursor:grabbing}
    .orbit-stage img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.04);transition:opacity .9s ease,transform 1.2s ease;pointer-events:none;user-select:none}.orbit-stage img.on{opacity:1;transform:none}
    .orbit-pins{position:absolute;inset:0;z-index:2;pointer-events:none}.orbit-pin{position:absolute;transform:translate(-50%,-100%);display:flex;align-items:center;gap:6px;padding:5px 10px 5px 5px;border:1px solid rgba(255,255,255,.55);border-radius:99px;color:#fff;background:rgba(8,19,33,.66);font:inherit;font-size:12px;font-weight:700;white-space:nowrap;pointer-events:auto;cursor:pointer;opacity:0;transition:opacity .5s .3s,background .2s}.orbit-pin.show{opacity:1}
    .orbit-pin b{display:grid;place-items:center;min-width:28px;height:22px;padding:0 6px;border-radius:99px;color:#10243e;background:#fff}.orbit-pin.soon{border-style:dashed}.orbit-pin.soon span{color:#9fb2cc}.orbit-pin:hover{background:rgba(255,199,107,.92)}.orbit-pin:hover span{color:#10243e}
    .orbit-nav{position:absolute;z-index:3;top:50%;width:46px;height:46px;margin-top:-23px;border:0;border-radius:50%;color:#10243e;background:rgba(255,255,255,.88);font-size:28px;line-height:1;cursor:pointer}.orbit-nav.prev{left:14px}.orbit-nav.next{right:14px}
    .orbit-compass{position:absolute;z-index:3;left:16px;top:14px;padding:6px 12px;border-radius:99px;color:#fff;background:rgba(8,19,33,.6);font-size:12px;font-weight:800}
    .orbit-views{display:flex;justify-content:center;gap:8px;margin-top:14px;flex-wrap:wrap}.orbit-views button{padding:8px 14px;border:1px solid rgba(143,182,255,.3);border-radius:99px;color:#cfdbec;background:transparent;font:inherit;font-size:13px;font-weight:700;cursor:pointer}.orbit-views button.on{color:#10243e;background:#ffc76b;border-color:#ffc76b}
    .orbit-toast{position:absolute;z-index:4;left:50%;bottom:54px;transform:translateX(-50%);padding:10px 16px;border-radius:12px;color:#10243e;background:#ffc76b;font-size:13px;font-weight:800;opacity:0;transition:opacity .3s;pointer-events:none}.orbit-toast.on{opacity:1}
    @media(max-width:760px){.orbit-head{padding:0 16px}.orbit-stage{aspect-ratio:4/5;border-radius:0}.orbit-pin span{display:none}.orbit-nav{width:38px;height:38px;margin-top:-19px;font-size:22px}}
    .ts-photo.hot{pointer-events:auto;cursor:zoom-in}
    .ts-plan-cta{position:absolute;z-index:3;left:50%;bottom:64px;padding:14px 22px;border:0;border-radius:99px;color:#10243e;background:#ffc76b;font:inherit;font-size:15px;font-weight:850;box-shadow:0 10px 30px rgba(0,0,0,.35);cursor:pointer;opacity:0;transform:translate(-50%,12px);pointer-events:none;transition:opacity .35s,transform .35s}.ts-plan-cta.on{opacity:1;transform:translate(-50%,0);pointer-events:auto}
    @media(max-width:900px){.ts-plan-cta{bottom:auto;top:64px;font-size:13px;padding:11px 16px}}
    .td-full .td-floor{grid-template-columns:1fr 340px;gap:0;height:calc(100dvh - 69px)}.td-full .td-floor>div:first-child{display:flex;flex-direction:column;justify-content:center;padding:18px;background:#0a1626;overflow:hidden}
    .td-full .td-plan{max-height:calc(100dvh - 140px);animation:tdPlanIn .9s cubic-bezier(.2,.7,.2,1) both}.td-full .td-apts{overflow:auto;padding:18px;align-content:start;border-left:1px solid rgba(143,182,255,.15)}
    @keyframes tdPlanIn{from{opacity:0;transform:scale(.82) translateY(30px);filter:blur(6px)}to{opacity:1;transform:none;filter:none}}
    @media(max-width:760px){.td-full .td-floor{grid-template-columns:1fr;height:auto}}
    @media (prefers-reduced-motion:reduce){.td-full .td-plan{animation:none}}
    .ts-pins{position:absolute;inset:0;z-index:3;pointer-events:none;transition:opacity .35s}.ts-pins.off{opacity:0}.ts-pins.off .ts-pin{pointer-events:none}
    .ts-pin{position:absolute;left:0;top:0;display:flex;align-items:center;gap:7px;padding:6px 11px 6px 7px;border:1px solid rgba(255,255,255,.55);border-radius:99px;color:#fff;background:rgba(8,19,33,.62);backdrop-filter:blur(6px);font:inherit;font-size:12px;font-weight:700;white-space:nowrap;cursor:pointer;pointer-events:auto;transform:translate(-50%,calc(-100% - 26px));transition:background .2s,transform .2s}
    .ts-pin b{display:grid;place-items:center;min-width:30px;height:24px;padding:0 6px;border-radius:99px;color:#10243e;background:#fff;font-size:12px}.ts-pin span{color:#dbe6f5}
    .ts-pin:after{content:"";position:absolute;left:50%;top:100%;width:2px;height:22px;background:linear-gradient(#fff,rgba(255,255,255,0));transform:translateX(-50%)}
    .ts-pin:before{content:"";position:absolute;left:50%;top:calc(100% + 20px);width:10px;height:10px;border-radius:50%;background:#ffc76b;transform:translateX(-50%);box-shadow:0 0 0 0 rgba(255,199,107,.7);animation:tsPulse 2s infinite}
    .ts-pin:hover,.ts-pin:focus-visible,.ts-pin.on{background:rgba(255,199,107,.92);outline:none}.ts-pin:hover span,.ts-pin.on span,.ts-pin:focus-visible span{color:#10243e}.ts-pin:hover{transform:translate(-50%,calc(-100% - 30px))}
    @keyframes tsPulse{70%{box-shadow:0 0 0 12px rgba(255,199,107,0)}100%{box-shadow:0 0 0 0 rgba(255,199,107,0)}}
    .ts-pins-hint{position:absolute;right:24px;top:22px;padding:8px 12px;border:1px solid rgba(255,199,107,.45);border-radius:99px;color:#ffd99a;background:rgba(8,19,33,.6);font-size:12px;font-weight:800}
    @media(max-width:900px){.ts-pin{padding:4px 8px 4px 5px;font-size:11px}.ts-pin span{display:none}.ts-pins-hint{left:16px;right:auto;top:16px}}
    @media (prefers-reduced-motion:reduce){.ts-pin:before{animation:none}}
    .ts-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:52% 40%;transition:opacity .2s linear;pointer-events:none}
    .ts-sticky:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,19,33,.82) 0%,rgba(8,19,33,.45) 38%,rgba(8,19,33,0) 62%);opacity:var(--ts-shade,1);pointer-events:none}
    .ts-copy,.ts-floor-tag,.ts-progress,.ts-hint,.ts-click-hint,.ts-photo-note{z-index:2}
    .ts-canvas{cursor:default}.ts-canvas.hot{cursor:pointer}
    .ts-photo-note{position:absolute;right:16px;bottom:14px;padding:4px 8px;border-radius:6px;color:#dbe6f5;background:rgba(8,19,33,.55);font-size:10px;font-weight:700;transition:opacity .3s}
    .ts-click-hint{position:absolute;right:24px;top:22px;padding:8px 12px;border:1px solid rgba(255,199,107,.45);border-radius:99px;color:#ffd99a;background:rgba(8,19,33,.6);font-size:12px;font-weight:800;opacity:0;transition:opacity .3s;pointer-events:none}
    .ts-open-apt{margin-top:12px;padding:11px 16px}
    .td-dialog{width:min(1120px,calc(100vw - 32px));max-height:calc(100dvh - 32px);padding:0;border:1px solid rgba(143,182,255,.22);border-radius:18px;color:#e6edf7;background:#0c1a2e;box-shadow:0 30px 80px rgba(0,0,0,.5);overflow:auto}
    .td-dialog::backdrop{background:rgba(4,10,20,.72);backdrop-filter:blur(4px)}
    .td-head{position:sticky;top:0;z-index:2;display:flex;align-items:center;gap:12px;padding:14px 18px;border-bottom:1px solid rgba(143,182,255,.15);background:#0c1a2e}.td-head h3{flex:1;margin:0;color:#fff;font-size:18px}
    .td-back,.td-close{border:1px solid rgba(143,182,255,.28);border-radius:10px;color:#dbe6f5;background:transparent;font:inherit;font-weight:800;cursor:pointer}.td-back{padding:8px 12px;font-size:13px}.td-close{width:40px;height:40px;font-size:22px;line-height:1}
    .td-body{padding:18px}.td-floor{display:grid;grid-template-columns:1.05fr .95fr;gap:20px;align-items:start}
    .td-plan{width:100%;height:auto;border-radius:14px;background:#eef2f7}.td-plan g{cursor:pointer}.td-plan g:hover rect,.td-plan g:focus rect{fill:rgba(255,199,107,.35);stroke:#ffc76b;stroke-width:2.5}.td-plan g:hover circle,.td-plan g:focus circle{fill:#ffc76b}.td-plan text{font:800 11px system-ui,sans-serif;fill:#fff;pointer-events:none}.td-plan g:hover text,.td-plan g:focus text{fill:#10243e}
    .td-apts{display:grid;gap:10px}.td-apt{display:grid;grid-template-columns:96px 1fr auto;gap:12px;align-items:center;padding:8px;border:1px solid rgba(143,182,255,.18);border-radius:12px;color:inherit;background:rgba(255,255,255,.04);font:inherit;text-align:left;cursor:pointer}.td-apt:hover{border-color:#ffc76b}.td-apt img{width:96px;height:58px;object-fit:cover;border-radius:8px}.td-apt b{display:block;color:#fff;font-size:15px}.td-apt small{color:#9fb2cc;font-size:12px}.td-apt em{color:#ffc76b;font-style:normal;font-weight:800;font-size:12px}
    .td-room{display:grid;grid-template-columns:1.6fr .9fr;gap:20px}.td-main{margin:0}.td-main img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:14px;background:#13243d}.td-main figcaption{margin-top:8px;color:#9fb2cc;font-size:12px}
    .td-thumbs{display:flex;gap:8px;margin-top:10px;overflow-x:auto}.td-thumbs button{flex:0 0 auto;padding:0;border:2px solid transparent;border-radius:10px;background:none;cursor:pointer}.td-thumbs button.on{border-color:#ffc76b}.td-thumbs img{display:block;width:120px;height:68px;object-fit:cover;border-radius:8px}
    .td-dialog.td-full{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;margin:0;border:0;border-radius:0;overflow:hidden}
    .td-full .td-body{padding:0}.td-imm{display:grid;grid-template-columns:1fr 360px;height:calc(100dvh - 69px)}
    .td-stage{position:relative;overflow:hidden;background:#0a1626}
    .td-planwrap{position:absolute;left:0;top:0;transform-origin:0 0;transition:transform 1.15s cubic-bezier(.7,0,.2,1),opacity .9s ease,filter .9s ease}.td-planwrap.instant{transition:none}.td-planwrap.fade{opacity:0;filter:blur(6px)}
    .td-planwrap img{display:block;width:100%;height:100%}.td-hl{position:absolute;border:2px solid #ffc76b;border-radius:2px;box-shadow:0 0 0 9999px rgba(10,22,38,.45),0 0 18px rgba(255,199,107,.6)}
    .td-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.14);transition:opacity 1s ease}.td-photo.in{opacity:1;animation:tdKen 9s cubic-bezier(.2,.6,.3,1) forwards}
    @keyframes tdKen{from{transform:scale(1.14)}to{transform:scale(1)}}
    .td-cap{position:absolute;left:16px;bottom:14px;padding:6px 10px;border-radius:8px;color:#fff;background:rgba(8,19,33,.6);font-size:13px;font-weight:700}
    .td-mini{margin:10px 0 12px;padding:8px;border:1px solid rgba(143,182,255,.2);border-radius:12px;background:#0a1626}.td-mini svg{display:block;width:100%;height:auto;max-height:240px;border-radius:8px;background:#eef2f7}
    .td-mini figcaption{display:flex;align-items:center;gap:7px;margin-top:7px;color:#cfdbec;font-size:12px;font-weight:700}.td-mini figcaption i{width:10px;height:10px;border-radius:50%;background:#ffc76b;box-shadow:0 0 0 3px rgba(255,199,107,.3)}
    .td-eye{transition:transform .6s cubic-bezier(.2,.7,.2,1)}.td-room-hl{fill:rgba(255,138,0,.28);stroke:#ff8a00;stroke-width:6;transition:x .45s,y .45s,width .45s,height .45s;animation:tdRoomPulse 2s infinite}
    .td-room-lab{font:800 30px system-ui,sans-serif;fill:#10243e;paint-order:stroke;stroke:#fff;stroke-width:8px;stroke-linejoin:round}
    @keyframes tdRoomPulse{50%{fill:rgba(255,138,0,.12)}}@media (prefers-reduced-motion:reduce){.td-room-hl{animation:none;transition:none}}
    .td-pano{position:absolute;inset:0;width:100%;height:100%;opacity:0;pointer-events:none;cursor:grab;transition:opacity .8s;touch-action:none}.pano-on .td-pano{pointer-events:auto}.td-pano.in{opacity:1}.td-pano.grab{cursor:grabbing}
    .td-360{position:absolute;right:16px;bottom:14px;padding:10px 16px;border:0;border-radius:99px;color:#10243e;background:#ffc76b;font:inherit;font-size:13px;font-weight:850;cursor:pointer;box-shadow:0 8px 22px rgba(0,0,0,.35)}
    .td-360-hint{position:absolute;left:50%;top:14px;transform:translateX(-50%);padding:6px 12px;border-radius:99px;color:#fff;background:rgba(8,19,33,.6);font-size:12px;font-weight:700;opacity:0;transition:opacity .4s;pointer-events:none}.pano-on .td-360-hint{opacity:1}.td-eye circle{animation:tdEyePulse 1.8s infinite}@keyframes tdEyePulse{50%{r:5.6}}
    @media (prefers-reduced-motion:reduce){.td-eye{transition:none}.td-eye circle{animation:none}}
    .td-side{overflow:auto;padding:18px;border-left:1px solid rgba(143,182,255,.15)}.td-side h4{margin:0 0 4px;color:#fff;font-size:22px}.td-side .td-thumbs{flex-wrap:wrap}
    @media(max-width:760px){.td-imm{grid-template-columns:1fr;grid-template-rows:56dvh auto;overflow:auto}.td-side{border-left:0;border-top:1px solid rgba(143,182,255,.15)}}
    @media (prefers-reduced-motion:reduce){.td-planwrap,.td-photo{transition:none!important}.td-photo.in{animation:none;transform:none}}
    .td-info h4{margin:0 0 4px;color:#fff;font-size:22px}.td-info .ts-apt-card{margin-top:12px}.td-note{display:block;margin-top:12px;color:#71839c;font-size:11px;line-height:1.5}
    @media(max-width:760px){.td-floor,.td-room{grid-template-columns:1fr}.td-body{padding:14px}.td-thumbs img{width:96px;height:54px}.td-dialog{width:calc(100vw - 16px);max-height:calc(100dvh - 16px)}}
    @media(max-width:900px){.ts-sticky:after{background:linear-gradient(0deg,rgba(8,19,33,.85) 0%,rgba(8,19,33,.2) 45%,rgba(8,19,33,0) 70%)}.ts-click-hint{left:16px;right:auto;top:16px}.ts-photo{object-position:30% 40%}}
    @media(max-width:900px){.tower-show{height:700vh}.ts-copy{top:auto;bottom:18px;left:16px;right:16px;width:auto;height:auto;min-height:250px}.ts-step{top:auto;bottom:0;transform:translateY(20px);padding:18px;border:1px solid rgba(143,182,255,.18);border-radius:16px;background:rgba(9,19,34,.84);backdrop-filter:blur(10px)}.ts-step.active{transform:none}.ts-step h2{font-size:26px;margin:8px 0}.ts-step p{font-size:13px}.ts-stats{margin-top:14px}.ts-stats b{font-size:19px}.ts-swatches{margin-top:12px;gap:6px}.ts-apt-tabs{margin:12px 0 9px}.ts-apt-tabs span{width:32px;height:32px}.ts-apt-card{padding:12px 14px}.ts-apt-card ul{font-size:12px;line-height:1.7}.ts-hint{display:none}}
    .public-header{position:relative;z-index:4;display:flex;align-items:center;justify-content:space-between;gap:24px;max-width:1440px;margin:auto;padding:21px 48px;border-bottom:1px solid rgba(20,61,114,.08);background:rgba(255,255,255,.88);backdrop-filter:blur(14px)}
    .public-brand{display:flex;align-items:center;gap:13px;color:#10243e;text-decoration:none;font-weight:850;font-size:15px;white-space:nowrap}.public-brand img{width:64px;height:56px;object-fit:contain;padding:4px;background:#fff;border-radius:8px}.public-brand small{display:block;color:#6e7d8f;font-size:10px;font-weight:700;letter-spacing:.45px;text-transform:uppercase}
    .public-nav{display:flex;align-items:center;gap:29px}.public-nav a{border:0;color:#40546d;background:transparent;text-decoration:none;font-size:13px;font-weight:700}.public-nav a:hover{color:#246bfd}.public-actions{display:flex;align-items:center;gap:10px}.public-login,.public-register,.hero-primary,.hero-secondary{border-radius:10px;padding:11px 17px;font-weight:800;font-size:13px}.public-login,.hero-secondary{border:1px solid #b9cdf5;color:#2458ae;background:#fff}.public-register,.hero-primary{border:1px solid #246bfd;color:#fff;background:#246bfd;box-shadow:0 9px 20px rgba(36,107,253,.2)}.public-register:hover,.hero-primary:hover{background:#1459e5}
    .public-hero{position:relative;min-height:600px;background:linear-gradient(118deg,#fff 0%,#f7faff 49%,#e8f0ff 100%)}.public-hero:before,.public-hero:after{position:absolute;content:"";pointer-events:none}.public-hero:before{width:690px;height:690px;right:-200px;top:-160px;border:1px solid rgba(36,107,253,.12);border-radius:42% 58% 53% 47%/42% 39% 61% 58%;box-shadow:inset 0 0 0 74px rgba(36,107,253,.025)}.public-hero:after{width:520px;height:300px;left:40%;bottom:-190px;border-radius:45px;transform:rotate(-18deg);background:linear-gradient(120deg,rgba(36,107,253,.04),rgba(74,151,255,.14))}
    .public-hero-inner{position:relative;z-index:1;display:grid;grid-template-columns:1.08fr .92fr;gap:52px;align-items:center;max-width:1240px;min-height:600px;margin:auto;padding:58px 45px}.hero-eyebrow{display:inline-flex;align-items:center;gap:8px;margin-bottom:20px;padding:7px 11px;border:1px solid #cbdcff;border-radius:99px;color:#2460c7;background:#edf3ff;font-size:11px;font-weight:850;letter-spacing:.35px}.hero-eyebrow i{width:7px;height:7px;border-radius:50%;background:#1aa274}.hero-copy h1{max-width:690px;margin:0;color:#10243e;font-size:clamp(38px,5vw,67px);line-height:1.05;letter-spacing:-2.9px}.hero-copy h1 em{color:#246bfd;font-style:normal}.hero-copy p{max-width:600px;margin:24px 0 30px;color:#5b6f87;font-size:17px;line-height:1.75}.hero-buttons{display:flex;flex-wrap:wrap;gap:13px}.hero-primary,.hero-secondary{padding:14px 20px;font-size:14px}
    .hero-visual{position:relative;min-height:420px;display:grid;place-items:center}.building-card{position:relative;width:min(100%,430px);height:396px;padding:26px;border:1px solid #d8e5fb;border-radius:25px;background:linear-gradient(145deg,#fff,rgba(255,255,255,.82));box-shadow:0 24px 70px rgba(26,76,151,.16);transform:rotate(2deg)}.building-card:before{position:absolute;right:24px;top:-20px;width:150px;height:54px;border:1px solid #bdd3fa;border-radius:16px;background:#fff;box-shadow:0 12px 28px rgba(30,76,144,.12);content:""}.building-card:after{position:absolute;right:49px;top:-3px;width:98px;height:8px;border-radius:9px;background:#246bfd;content:""}.building-top{display:flex;align-items:center;justify-content:space-between;color:#1e4e9e;font-size:11px;font-weight:850}.building-status{padding:5px 8px;border-radius:99px;color:#137253;background:#e9f8f1}.tower{position:absolute;left:49px;bottom:0;width:182px;height:255px;padding:17px 18px 0;border-radius:17px 17px 0 0;background:linear-gradient(135deg,#1959be,#498bff);box-shadow:12px 0 0 #dceaff}.tower:before{position:absolute;left:38px;top:-50px;border-right:53px solid transparent;border-bottom:51px solid #246bfd;border-left:53px solid transparent;content:""}.tower:after{position:absolute;left:18px;right:18px;top:36px;bottom:0;background:repeating-linear-gradient(90deg,transparent 0 24px,rgba(255,255,255,.72) 25px 30px),repeating-linear-gradient(0deg,transparent 0 25px,rgba(255,255,255,.55) 26px 30px);content:""}.building-progress{position:absolute;right:30px;bottom:34px;width:176px;padding:16px;border-radius:15px;background:#fff;box-shadow:0 13px 30px rgba(25,72,138,.13)}.building-progress strong{display:block;color:#153c78;font-size:13px}.building-progress b{display:block;margin:10px 0 5px;color:#246bfd;font-size:30px;letter-spacing:-1px}.building-progress span{display:block;color:#71829a;font-size:10px}.mini-progress{height:7px;margin-top:12px;border-radius:8px;background:#e5ecf7}.mini-progress i{display:block;width:62%;height:100%;border-radius:inherit;background:#246bfd}
    .public-section{max-width:1240px;margin:auto;padding:86px 45px}.public-kicker{color:#246bfd;font-size:11px;font-weight:850;letter-spacing:.8px;text-transform:uppercase}.section-title{max-width:680px;margin:10px 0 13px;font-size:32px;line-height:1.18;letter-spacing:-1.15px}.section-copy{max-width:675px;margin:0;color:#697b92;font-size:14px;line-height:1.75}.intro-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:70px;align-items:center}.intro-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:13px}.intro-stat{min-height:126px;padding:22px;border:1px solid #e0e9f7;border-radius:16px;background:#f8fbff}.intro-stat b{display:block;color:#246bfd;font-size:29px;letter-spacing:-1px}.intro-stat span{display:block;margin-top:6px;color:#536b87;font-size:12px;font-weight:700}.public-projects{background:#f6f9ff}.section-head{display:flex;justify-content:space-between;gap:22px;align-items:end;margin-bottom:31px}.project-public-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:17px}.public-project-card{min-height:240px;padding:21px;border:1px solid #dde7f5;border-radius:17px;background:#fff;box-shadow:0 10px 25px rgba(37,72,117,.055)}.public-project-code{display:inline-block;padding:5px 8px;border-radius:6px;color:#285fac;background:#eaf2ff;font-size:10px;font-weight:850}.public-project-card h3{margin:17px 0 7px;font-size:18px;letter-spacing:-.45px}.public-project-card p{min-height:43px;margin:0;color:#708197;font-size:12px;line-height:1.6}.public-project-meta{display:flex;justify-content:space-between;align-items:center;margin-top:20px;color:#536a86;font-size:11px;font-weight:750}.public-project-track{height:8px;overflow:hidden;margin-top:9px;border-radius:99px;background:#e7eef9}.public-project-track i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#246bfd,#62a0ff)}.public-project-empty{grid-column:1/-1;padding:36px;border:1px dashed #bfd0ea;border-radius:16px;color:#60738c;text-align:center;background:#fff}
    .activity-grid{display:grid;grid-template-columns:.87fr 1.13fr;gap:45px;align-items:start}.activity-list{display:grid;gap:10px}.activity-item{display:grid;grid-template-columns:41px 1fr auto;gap:13px;align-items:center;padding:15px 17px;border:1px solid #e1e9f4;border-radius:13px;background:#fff}.activity-icon{display:grid;width:41px;height:41px;place-items:center;border-radius:11px;color:#246bfd;background:#edf3ff;font-size:18px}.activity-item strong{display:block;font-size:13px}.activity-item small{display:block;margin-top:3px;color:#73839a;font-size:11px}.activity-item b{color:#246bfd;font-size:14px}.activity-note{margin-top:23px;padding:16px 18px;border-left:4px solid #246bfd;border-radius:0 12px 12px 0;color:#506884;background:#eff5ff;font-size:12px;line-height:1.65}.public-cta{padding:50px 45px 85px}.cta-box{display:flex;align-items:center;justify-content:space-between;gap:28px;max-width:1240px;margin:auto;padding:38px 42px;border-radius:23px;color:#fff;background:linear-gradient(120deg,#102f60,#246bfd);box-shadow:0 18px 42px rgba(25,75,154,.2)}.cta-box h2{margin:0;font-size:29px;letter-spacing:-.8px}.cta-box p{margin:8px 0 0;color:#cfe0ff;font-size:13px}.cta-box .hero-secondary{border-color:#fff;color:#174caa;background:#fff;white-space:nowrap}.public-footer{padding:22px 45px;color:#75859a;background:#0e294d;text-align:center;font-size:11px}
    .landing-back{display:inline-flex;align-items:center;gap:6px;margin:0 0 13px;padding:0;border:0;color:#2868d8;background:transparent;font-size:12px;font-weight:800}.landing-back:hover{text-decoration:underline}
    @media(max-width:900px){.public-header{padding:16px 23px}.public-nav{display:none}.public-hero-inner,.intro-grid,.activity-grid{grid-template-columns:1fr;gap:35px}.public-hero-inner{padding:52px 25px}.hero-visual{min-height:330px}.building-card{height:330px}.project-public-grid{grid-template-columns:repeat(2,1fr)}.public-section{padding:65px 25px}.public-cta{padding:35px 25px 65px}.cta-box{padding:31px}.public-footer{padding:20px 25px}}
    @media(max-width:560px){.public-header{gap:10px}.public-brand strong{font-size:12px}.public-brand img{width:50px;height:46px}.public-actions{gap:6px}.public-login,.public-register{padding:9px 10px;font-size:11px}.hero-copy h1{font-size:42px;letter-spacing:-1.8px}.hero-copy p{font-size:14px}.building-card{width:300px;transform:none}.tower{left:25px;transform:scale(.83);transform-origin:bottom left}.building-progress{right:14px;transform:scale(.82);transform-origin:bottom right}.section-head{display:block}.project-public-grid,.intro-stats{grid-template-columns:1fr}.section-title{font-size:27px}.cta-box{display:block}.cta-box .hero-secondary{margin-top:18px}.activity-item{grid-template-columns:37px 1fr}.activity-item b{grid-column:2}.public-section{padding-left:19px;padding-right:19px}}
    .public-news{background:#f6f9ff}.public-news-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:17px}.public-news-card{overflow:hidden;border:1px solid #dce7f6;border-radius:17px;background:#fff;box-shadow:0 10px 25px rgba(37,72,117,.055)}.public-news-image{display:block;width:100%;height:175px;object-fit:cover;background:linear-gradient(135deg,#dbe9ff,#eff5ff)}.public-news-placeholder{display:grid;width:100%;height:175px;place-items:center;color:#5b83c5;background:linear-gradient(135deg,#dce9ff,#f4f8ff);font-size:42px}.public-news-copy{padding:18px}.public-news-copy time{color:#246bfd;font-size:10px;font-weight:850}.public-news-copy h3{margin:8px 0 7px;font-size:17px;letter-spacing:-.35px}.public-news-copy p{display:-webkit-box;overflow:hidden;margin:0;color:#6e7f94;font-size:12px;line-height:1.65;-webkit-box-orient:vertical;-webkit-line-clamp:3}.public-news-empty{grid-column:1/-1;padding:36px;border:1px dashed #bfd0ea;border-radius:16px;color:#60738c;text-align:center;background:#fff}.content-post-list{display:grid;gap:12px;padding:0 20px 20px}.content-post-row{display:grid;grid-template-columns:72px 1fr auto;gap:14px;align-items:center;padding:13px;border:1px solid #e2e9f2;border-radius:12px;background:#fbfcfe}.content-post-thumb{display:grid;overflow:hidden;width:72px;height:55px;place-items:center;border-radius:9px;color:#5278b9;background:#e9f1ff;font-size:21px}.content-post-thumb img{width:100%;height:100%;object-fit:cover}.content-post-row strong{display:block;font-size:13px}.content-post-row small{display:block;margin-top:3px;color:#748397;font-size:11px}.content-post-actions{display:flex;align-items:center;gap:10px}.content-post-actions .secondary{padding:8px 11px;font-size:11px}.publish-badge{padding:4px 7px;border-radius:6px;font-size:10px;font-weight:800}.publish-badge.live{color:#147452;background:#e7f7f0}.publish-badge.draft{color:#8c661d;background:#fff3df}.content-image-preview{display:none;overflow:hidden;position:relative;width:100%;max-height:180px;border:1px solid #dbe5f3;border-radius:10px;background:#f5f8fc}.content-image-preview.show{display:block}.content-image-preview img{display:block;width:100%;max-height:180px;object-fit:cover}.content-image-preview button{position:absolute;top:8px;right:8px;border:0;border-radius:6px;padding:5px 8px;color:#fff;background:rgba(16,36,62,.75);font-size:11px;font-weight:800}.content-form-note{margin:-3px 0 13px;color:#6d7e91;font-size:11px;line-height:1.6}.content-form-body{min-height:135px;resize:vertical}.content-nav-description{margin:-8px 0 15px;color:#6e7d8f;font-size:12px}@media(max-width:760px){.public-news-grid{grid-template-columns:1fr}.content-post-row{grid-template-columns:55px 1fr}.content-post-thumb{width:55px;height:48px}.content-post-actions{grid-column:2;justify-content:space-between}.content-post-actions .secondary{margin-left:auto}}
    .daily-worker-total{padding:10px 12px;border-radius:9px;color:#51657d;background:#f3f7fd;font-size:12px}.daily-worker-total b{color:#246bfd}.daily-work-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:9px}.daily-work-head label{display:block;color:#53657b;font-size:11px;font-weight:750}.daily-work-head small{display:block;margin-top:2px;color:#7a899b;font-size:11px}.daily-work-head .secondary{padding:7px 10px;font-size:11px}.daily-work-add{width:100%;margin-top:9px;padding:10px;border-style:dashed!important}.daily-work-qty[hidden]{display:none!important}.daily-work-row:has(.daily-work-qty[hidden]){grid-template-columns:1.35fr 1.4fr auto}.daily-work-row{display:grid;grid-template-columns:1.35fr 1.4fr .7fr .45fr auto;gap:8px;align-items:end;margin-top:9px;padding:10px;border:1px solid #dfe7f2;border-radius:10px;background:#fbfcfe}.daily-work-row .field{gap:4px}.daily-work-row .field label{font-size:10px}.daily-work-remove{height:36px;border:0;border-radius:8px;color:#b24855;background:#fff0f1;font-weight:800}.daily-issue-toggle{display:flex!important;align-items:flex-start;gap:9px;padding:10px 12px;border:1px solid #f0d9a1;border-radius:9px;background:#fff9ec;cursor:pointer}.daily-issue-toggle input{width:auto!important;margin:3px 0 0}.daily-issue-toggle b,.daily-issue-toggle small{display:block}.daily-issue-toggle small{margin-top:1px;color:#857248;font-size:11px;font-weight:400}.daily-photo-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(145px,1fr));gap:10px;margin-top:10px}.daily-photo-card{position:relative;padding:7px;border:1px solid #dfe7f2;border-radius:9px;background:#fbfcfe}.daily-photo-card img{display:block;width:100%;height:84px;object-fit:cover;border-radius:6px}.daily-photo-card input{margin-top:7px;font-size:10px}.daily-photo-card button{position:absolute;top:10px;right:10px;width:22px;height:22px;border:0;border-radius:50%;color:#fff;background:#b74a55;line-height:1}.daily-report-status{display:inline-flex;padding:4px 7px;border-radius:5px;font-size:10px;font-weight:800}.daily-report-status.draft{color:#8c6717;background:#fff4d8}.daily-report-status.submitted{color:#147153;background:#e7f7f0}@media(max-width:760px){.daily-work-row{grid-template-columns:1fr 1fr}.daily-work-row .daily-work-remove{grid-column:2;justify-self:end;width:36px}.daily-work-head{align-items:center}}
    .nav-count{display:inline-grid;min-width:18px;height:18px;place-items:center;margin-left:auto;border-radius:99px;color:#fff;background:#dc4c56;font-size:10px;font-weight:800}.issue-row{display:flex;align-items:flex-start;gap:11px;padding:16px 20px;border-top:1px solid #edf1f5}.issue-row:first-child{border-top:0}.issue-marker{display:grid;flex:0 0 29px;width:29px;height:29px;place-items:center;border-radius:8px;color:#b94b56;background:#fff0f1;font-size:14px}.issue-row.resolved .issue-marker{color:#167152;background:#e7f7f0}.issue-row strong,.issue-row small{display:block}.issue-row strong{font-size:13px}.issue-row small{margin-top:2px;color:#6f8095;font-size:11px}.issue-copy{min-width:0;flex:1}.issue-action{margin-left:auto}.text-link{border:0;padding:4px;background:transparent;color:#246bfd;font:inherit;font-size:12px;font-weight:800;cursor:pointer}.text-link:hover{text-decoration:underline}.daily-report-row{cursor:pointer;transition:.14s ease}.daily-report-row:hover{background:#f7faff}.daily-report-row:focus-visible{outline:2px solid #94b8ff;outline-offset:-2px}.daily-photo-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:11px}.daily-photo-gallery a{display:block;color:inherit;text-decoration:none}.daily-photo-gallery img{display:block;width:100%;height:110px;object-fit:cover;border-radius:9px;border:1px solid #dfe7f2}.daily-photo-gallery small{display:block;margin-top:4px;color:#667991;font-size:10px}
    .notification{min-width:44px;min-height:44px;flex-shrink:0;cursor:pointer;font-size:21px}.notification:after{display:none}.notification[data-unread]:after{display:block;content:attr(data-unread);box-sizing:border-box;width:auto;min-width:22px;height:22px;top:-7px;right:-7px;padding:0 5px;border:2px solid #fff;border-radius:99px;background:#f2371f;color:#fff;font-size:12px;font-weight:800;line-height:18px;text-align:center;box-shadow:0 1px 3px rgba(0,0,0,.25)}
    .notification{display:inline-flex;align-items:center;justify-content:center;padding:0}.notification .bell-icon{width:26px;height:26px;fill:#0b96f5;transition:transform .2s}.notification:hover .bell-icon{transform:rotate(-12deg)}.notification[data-unread] .bell-icon{animation:bellRing 1.6s ease-in-out 2}
    @keyframes bellRing{0%,60%,100%{transform:rotate(0)}10%,30%{transform:rotate(-14deg)}20%,40%{transform:rotate(14deg)}}
    @media (prefers-reduced-motion:reduce){.notification .bell-icon{animation:none!important;transition:none}}
    #notificationPanel{z-index:65;max-height:75dvh;overflow:auto}.report-notice{padding:12px 4px;overflow-wrap:anywhere}.report-notice.unread{background:#fff5e8}.report-notice p{white-space:pre-wrap;margin:6px 0}.report-notice button{min-height:44px}.notification-panel small{display:block;color:#63748b}
    #merWorkList{list-style:none;padding:0;margin:0}#merWorkList>li{padding:12px;margin-bottom:12px;border:1px solid #d9e3ef;border-radius:8px;background:#f5f8fc}#merWorkList textarea{font-size:16px}#merWorkList button{margin-top:8px;min-height:44px}.mer-work-list{padding-left:30px}.mer-work-list>li{padding:4px 0;break-inside:avoid}.mer-work-list>li::marker{font-weight:700}
    .mer-photo-editor{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px;margin:12px 0}.mer-photo-editor figure{margin:0;padding:8px;border:1px solid #d9e3ef;border-radius:8px;min-width:0}.mer-photo-editor img{display:block;width:100%;height:130px;object-fit:contain}.mer-photo-editor figcaption{font-size:13px;overflow-wrap:anywhere;margin:8px 0}.mer-photo-editor button{min-height:44px}.mer-photo-editor .removed img{opacity:.35}.mer-photo-editor small{display:block;color:#ad3434}.mer-photo-editor small[hidden]{display:none}
    .mer-status{display:inline-flex;align-items:center;gap:6px;padding:5px 9px;border-radius:7px;border:1px solid #cbd5e1;color:#475569;background:#f1f5f9;font-size:12px;font-weight:700;line-height:1.4;white-space:normal}
    .mer-status::before{content:'';width:7px;height:7px;flex-shrink:0;border-radius:50%;background:currentColor}
    .mer-status-draft{color:#854d0e;background:#fef9c3;border-color:#e8d26e}.mer-status-submitted{color:#1e40af;background:#eff6ff;border-color:#b7d0f7}.mer-status-approved{color:#166534;background:#f0fdf4;border-color:#a7dcb6}.mer-status-returned{color:#991b1b;background:#fff1f2;border-color:#f1b3ba}
    .mer-employee-picker{position:relative;width:440px;max-width:100%;min-width:0}.mer-employee-picker[hidden]{display:none}.mer-employee-picker summary{list-style:none;display:flex;align-items:center;gap:10px;min-height:48px;border:1px solid #bfcee0;border-radius:9px;background:#fff;padding:9px 12px;cursor:pointer}.mer-employee-picker summary::-webkit-details-marker{display:none}.mer-employee-picker summary::after{content:'⌄';margin-left:auto;color:#52657d}.mer-employee-name{min-width:0;overflow-wrap:anywhere;font-size:14px;font-weight:650}.mer-employee-picker summary .mer-status{flex-shrink:0;max-width:55%}
    .mer-employee-options{position:absolute;top:calc(100% + 5px);left:0;right:0;z-index:40;max-height:min(430px,55dvh);overflow:auto;border:1px solid #cad6e5;border-radius:10px;background:#fff;padding:5px;box-shadow:0 12px 32px #19375226}.mer-employee-options button{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:52px;text-align:left;padding:10px;border:1px solid transparent;border-radius:7px;background:#fff;color:#183757;cursor:pointer}.mer-employee-options button:hover{background:#f5f8fc}.mer-employee-options button[aria-current="true"]{border-color:#7ea6d8;background:#f4f8ff}.mer-employee-options .mer-status{max-width:55%;flex-shrink:0}.mer-employee-picker summary:focus-visible,.mer-employee-options button:focus-visible{outline:3px solid #80a8df;outline-offset:1px}.mer-employee-label{font-weight:700}
    @media(max-width:480px){.mer-employee-picker{width:100%}.mer-employee-options button{flex-wrap:wrap;gap:6px}.mer-employee-options .mer-status{max-width:100%}.mer-employee-picker summary{flex-wrap:wrap}.mer-employee-picker summary .mer-status{max-width:100%}}
    .app-refresh{display:none;align-items:center;justify-content:center;gap:5px;min-height:44px;padding:8px 10px;flex-shrink:0;border:1px solid #d9e3f1;border-radius:9px;color:#1f58af;background:#fff;font:inherit;font-size:13px;font-weight:700;cursor:pointer}
    .app-refresh svg{width:18px;height:18px;flex-shrink:0}.app-refresh:focus-visible{outline:3px solid #91b4ff;outline-offset:2px}.app-refresh:disabled{opacity:.6;cursor:wait}
    @media(max-width:760px),(display-mode:standalone){.app-refresh{display:inline-flex}}
    @media print{.app-refresh{display:none!important}}
    /* Утасны хажуу цэс */
    .mobile-menu-toggle,.mobile-menu-backdrop{display:none}
    @media(max-width:760px){
      .mobile-menu-toggle{display:inline-grid;width:38px;height:38px;place-items:center;flex:0 0 38px;margin-right:10px;border:1px solid #d9e3f1;border-radius:9px;color:#1f58af;background:#fff;font-size:20px;line-height:1}
      .sidebar{display:flex;position:fixed;z-index:50;top:0;bottom:0;left:0;width:min(286px,86vw);padding:22px 14px;overflow-y:auto;box-shadow:16px 0 38px rgba(10,28,54,.26);transform:translateX(-105%);transition:transform .22s ease}
      .sidebar.mobile-open{transform:translateX(0)}
      .mobile-menu-backdrop{position:fixed;z-index:45;inset:0;background:rgba(9,25,46,.47)}
      .mobile-menu-backdrop.show{display:block}
      body.mobile-menu-open{overflow:hidden}
      .topbar{position:sticky;z-index:30;top:0;display:flex;align-items:center}
      .topbar .crumb{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
      .top-actions{margin-left:auto}
    }
    body:has(#reports.active) .global-project-picker{display:none}
    .global-project-picker{display:flex;align-items:center;gap:7px;max-width:310px;color:#52657d;font-size:11px;font-weight:750}.global-project-picker select{min-width:190px;max-width:250px;padding:8px 29px 8px 10px;border:1px solid #dce4ef;border-radius:8px;color:#31455f;background:#fff;font:inherit;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.global-project-picker select:focus{outline:0;border-color:#91b4ff;box-shadow:0 0 0 3px #edf3ff}@media(max-width:760px){.topbar{height:auto;min-height:62px;flex-wrap:wrap;gap:7px;padding-top:8px;padding-bottom:8px}.topbar .crumb{flex:1;max-width:calc(100% - 52px)}.top-actions{display:none}.global-project-picker{order:3;flex-basis:100%;max-width:none}.global-project-picker select{flex:1;min-width:0;max-width:none;padding-top:9px;padding-bottom:9px}.team-grid{grid-template-columns:1fr;gap:10px;padding:0}.team-member{flex-wrap:wrap;gap:10px;padding:14px}.team-member-head{gap:7px}.team-member strong{font-size:14px}.team-avatar{flex-basis:44px;width:44px;height:44px}.team-projects{margin-top:6px!important}.team-contact{margin-top:6px}.team-contact a{font-size:11px}.team-duty{margin-top:8px}.team-actions{width:calc(100% - 54px);margin:10px 0 0 54px;padding-left:0;flex-direction:row;align-items:center}.team-actions .secondary,.team-actions .danger-button{padding:8px 10px;font-size:11px}}
    .quick-add{position:fixed;z-index:15;right:22px;bottom:22px;width:54px;height:54px;border:0;border-radius:50%;color:#fff;background:#2868e8;box-shadow:0 10px 26px rgba(20,77,169,.35);font-size:30px;line-height:1}.quick-menu{position:fixed;z-index:15;right:22px;bottom:86px;display:grid;gap:7px;padding:9px;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:0 14px 34px rgba(16,36,62,.2)}.quick-menu button{border:0;border-radius:8px;padding:10px 13px;color:#28445f;background:#f5f8fc;text-align:left;font-weight:700}.notification-panel{position:fixed;z-index:16;top:72px;right:20px;width:min(350px,calc(100vw - 40px));padding:12px;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:0 16px 42px rgba(16,36,62,.22)}.notification-panel h3{margin:0 0 8px;font-size:14px}.notification-item{padding:9px 2px;border-top:1px solid #edf0f4;font-size:12px}.notification-panel{display:flex;flex-direction:column;max-height:calc(100vh - 96px)}.inbox-list{overflow-y:auto;min-height:0;margin:0 -4px;padding:0 4px;overscroll-behavior:contain}.inbox-tools{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:8px 0 2px;color:#6b7a8c;font-size:11px}.inbox-clear{border:1px solid #f1c9cd;border-radius:8px;padding:5px 9px;background:#fff5f6;color:#b2414f;font-size:11px;font-weight:750;cursor:pointer}.inbox-notice{display:flex;gap:8px;align-items:flex-start;cursor:pointer;border-radius:8px;padding:9px 6px}.inbox-notice:hover{background:#f5f8fc}.inbox-notice.unread{background:#eef4ff}.inbox-notice.unread b::before{content:'';display:inline-block;width:7px;height:7px;margin-right:6px;border-radius:50%;background:#2868e8;vertical-align:middle}.inbox-main{flex:1;min-width:0}.inbox-main b{display:block!important;margin:0 0 2px!important;color:#14243a;font-size:12.5px}.inbox-main p{margin:0 0 3px;color:#44556b;white-space:pre-line;overflow-wrap:anywhere}.inbox-main small{color:#8794a5;font-size:10.5px}.inbox-delete{flex:none;width:26px;height:26px;border:0;border-radius:7px;background:transparent;color:#9aa6b4;font-size:16px;line-height:1;cursor:pointer}.inbox-delete:hover{background:#ffecee;color:#c23a49}.inbox-empty{color:#7a899b;font-size:12px}html.theme-dark .inbox-notice:hover{background:#223044}html.theme-dark .inbox-notice.unread{background:#1f3352}html.theme-dark .inbox-main b{color:#e8eef6}html.theme-dark .inbox-main p{color:#b8c5d6}html.theme-dark .inbox-clear{background:#3a2228;border-color:#5a2d36;color:#ff9aa6}html.theme-dark .notification-item{border-color:#2b394c}.notification-item b{display:inline-block;margin-right:6px}.notification-item.critical b{color:#bd3d48}.notification-item.attention b{color:#b06a15}.notification-item.info b{color:#2868e8}@media(max-width:720px){.quick-add{right:16px;bottom:16px}.quick-menu{right:16px;bottom:80px}.notification-panel{right:12px;top:64px}}
    .material-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:14px}.material-summary>div{padding:10px 12px;border:1px solid #e5ebf2;border-radius:9px;background:#fbfcfe}.material-summary span{display:block;color:var(--muted);font-size:10px}.material-summary b{display:block;margin-top:3px;color:#294562;font-size:13px}.material-work-group{overflow:hidden;margin-top:12px;border:1px solid var(--line);border-radius:10px}.material-group-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 13px;color:#304963;background:#f7f9fc;font-size:12px}.material-group-head span{color:var(--muted);font-size:10px}.material-table th,.material-table td{white-space:nowrap}.material-actions{display:flex;gap:5px}.material-actions .secondary{padding:5px 7px;font-size:10px}.material-delete{color:#b44049!important;border-color:#f0c9ce!important;background:#fff7f7!important}.form-stack{display:grid;gap:13px;padding:20px 22px}.form-stack>label{display:grid;gap:6px;color:#53657b;font-size:11px;font-weight:750}.form-stack input{width:100%;padding:10px;border:1px solid #dfe5ec;border-radius:8px;color:#34465d;background:#fff;outline:0}.form-stack input:focus{border-color:#91b4ff;box-shadow:0 0 0 3px #edf3ff}.form-stack .form-grid label{display:grid;gap:6px;color:#53657b;font-size:11px;font-weight:750}.form-stack small{color:var(--muted);font-weight:500}.modal-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:5px}@media(max-width:760px){.material-summary{grid-template-columns:1fr}.material-group-head{align-items:flex-start;flex-direction:column}}
    .expense-material-total{display:flex;align-items:center;min-height:42px;padding:10px 12px;border:1px solid #dbe3ee;border-radius:9px;color:#174275;background:#f4f8ff;font-size:14px;font-weight:800}
  


    #merEditor{width:min(900px,95vw);max-height:92dvh;padding:0;border:1px solid #cfdaea;border-radius:14px;color:#19344e}#merEditor::backdrop{background:#15283b99}
    #merEditForm{display:flex;flex-direction:column;max-height:91dvh}.mer-edit-head,.mer-edit-foot{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 20px;background:#f5f8fc}.mer-edit-head h2{margin:0}.mer-edit-body{overflow:auto;padding:18px 20px}.mer-field{display:grid;gap:5px;font-size:14px;font-weight:650}.mer-field input,.mer-field select,.mer-field textarea{padding:9px;border:1px solid #bbcbda;border-radius:6px;font:inherit;min-width:0;width:100%}.mer-group{margin:16px 0;border:1px solid #d9e3ef;border-radius:9px;padding:12px}.mer-group legend{font-weight:750}.mer-entry{display:grid;grid-template-columns:repeat(auto-fit,minmax(155px,1fr));align-items:end;gap:8px;background:#f4f7fb;padding:10px;margin-bottom:10px}.mer-entry>strong{grid-column:1/-1}.mer-edit-foot span{font-size:14px;color:#854120}#merEditFields>.mer-field{margin:14px 0}.mer-entered{white-space:pre-wrap;overflow-wrap:anywhere}#monthEndEdit[hidden]{display:none}

    .mer-tools,.mer-section header{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.mer-tools{margin-bottom:16px}.mer-tools label{font-weight:700}.mer-tools input{font:inherit;padding:9px;border:1px solid #cfdaea;border-radius:8px}
    .mer-cover{background:#183757;color:white;border-radius:14px;padding:24px}.mer-cover h2{margin:8px 0;color:white}.mer-cover small{color:#d9e7f5}.mer-stats,.mer-photos{display:grid;gap:12px}.mer-stats{grid-template-columns:repeat(auto-fit,minmax(145px,1fr));margin:14px 0}.mer-stats>div,.mer-section{padding:18px;background:white;border:1px solid #dce6f1;border-radius:12px}.mer-stats b{display:block;font-size:21px;margin-top:6px}.mer-section{margin:16px 0;min-width:0}.mer-section header{margin-bottom:14px;flex-wrap:nowrap}.mer-section header>span{padding:8px;border-radius:7px;background:#e8f0fd;color:#255bad;font-weight:700}.mer-section h2{font-size:20px;margin:0}.mer-section h3{margin:22px 0 9px;font-size:16px}.mer-section p,.mer-section small{color:#576b81}.mer-section header p{margin:4px 0}.mer-empty{padding:12px;background:#f6f9fc;border-radius:7px}
.mer-progress{display:flex;align-items:center;gap:8px;min-width:140px}
.mer-track{flex:1;height:9px;background:#e6edf5;border-radius:99px;overflow:hidden}
.mer-track i{display:block;height:100%;border-radius:inherit}
.mer-good .mer-track i{background:#1f9d55}.mer-good b{color:#17803f}
.mer-mid .mer-track i{background:#e0a100}.mer-mid b{color:#a06d00}
.mer-low .mer-track i{background:#d64545}.mer-low b{color:#b42323}
.mer-muted{color:#8193a6;font-size:13px}
.mer-legend{display:flex;gap:14px;flex-wrap:wrap;font-size:13px;color:#576b81;margin:4px 0 10px}
.mer-legend span::before{content:'';display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px;vertical-align:-1px;background:var(--dot)}
.mer-brief{background:#f3f8ff;border:1px solid #cfe0f7;border-radius:12px;padding:16px 20px;margin:14px 0}
.mer-brief h2{font-size:19px;margin:0 0 8px}
.mer-brief h3{font-size:15px;margin:14px 0 4px}
.mer-brief ul{margin:0;padding-left:20px;line-height:1.75}
.mer-up{color:#17803f;font-weight:700}.mer-down{color:#b42323;font-weight:700}.mer-same{color:#576b81}
.mer-stats small.mer-delta{display:block;margin-top:6px;font-size:12px}
.mer-hint{font-size:13px;color:#576b81;margin:2px 0 10px;font-weight:400;line-height:1.5}
.mer-live{grid-column:1/-1;font-size:13px;color:#576b81}
#monthEndPrintSheet .mer-track,#monthEndPrintSheet .mer-track i,#monthEndPrintSheet .mer-brief,#monthEndPrintSheet .mer-legend span::before{-webkit-print-color-adjust:exact;print-color-adjust:exact}
    .mer-scroll{max-width:100%;overflow-x:auto}.mer-scroll table{width:100%;border-collapse:collapse;font-size:14px}.mer-scroll th,.mer-scroll td{padding:10px;text-align:left;vertical-align:top;border-bottom:1px solid #dde6ef}.mer-scroll th{background:#f1f5fa;color:#36506a}.mer-scroll small{display:block;margin-top:4px}.mer-calendar{min-width:920px;table-layout:fixed}.mer-calendar th:first-child,.mer-calendar td:first-child{width:260px}.mer-calendar th:not(:first-child),.mer-calendar td:not(:first-child){text-align:center;vertical-align:middle;padding:2px;font-size:11px;border:1px solid #e3eaf2}.mer-day-on{background:#c9dff8;color:#154c92}.mer-undated{padding:12px;background:#fff8ea;margin-top:12px}.mer-photos{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.mer-photos figure{margin:0;border:1px solid #dde6ef;border-radius:12px;overflow:hidden;background:#fff;display:flex;flex-direction:column}.mer-photos img{display:block;width:100%;aspect-ratio:4/3;height:auto;object-fit:cover;background:#eef3f8;cursor:zoom-in}.mer-photos figcaption{padding:9px 12px;font-size:13px;line-height:1.4;color:#33475c}@media(max-width:1100px){.mer-photos{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.mer-photos{grid-template-columns:1fr}}.mer-zoom{position:fixed;inset:0;z-index:2000;background:rgba(8,16,28,.88);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px;cursor:zoom-out}.mer-zoom img{max-width:100%;max-height:calc(100vh - 90px);object-fit:contain;border-radius:8px}.mer-zoom p{color:#fff;margin:12px 0 0;text-align:center;font-size:14px}#monthEndPrintSheet{display:none}
    @page monthEndPage{size:A4 landscape;margin:10mm}
    @media print{body.printing-month-end{background:white!important;height:auto!important;overflow:visible!important}body.printing-month-end>*{display:none!important}body.printing-month-end #monthEndPrintSheet{display:block!important;page:monthEndPage;color:#162e45}#monthEndPrintSheet .mer-section{margin:10px 0;border:0;padding:4px}#monthEndPrintSheet .mer-cover{color:#153553;background:white;border-bottom:2px solid #234c73;padding:8px 0}#monthEndPrintSheet .mer-cover h2,#monthEndPrintSheet .mer-cover small{color:#153553}#monthEndPrintSheet .mer-scroll{overflow:visible}#monthEndPrintSheet .mer-calendar{min-width:0}#monthEndPrintSheet .mer-calendar td:first-child,#monthEndPrintSheet .mer-calendar th:first-child{width:180px}#monthEndPrintSheet tr,#monthEndPrintSheet figure{break-inside:avoid}#monthEndPrintSheet header,#monthEndPrintSheet h3{break-after:avoid}#monthEndPrintSheet th,#monthEndPrintSheet td{font-size:10px;padding:4px}#monthEndPrintSheet .mer-day-on{print-color-adjust:exact}#monthEndPrintSheet .mer-photos{grid-template-columns:repeat(2,1fr);gap:10px}#monthEndPrintSheet .mer-photos figure{break-inside:avoid}#monthEndPrintSheet .mer-photos img{aspect-ratio:4/3;object-fit:cover}}

    .progress-breakdown{margin:18px 0}.progress-breakdown .performance-panel-head{gap:16px;flex-wrap:wrap}
    .progress-counts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;padding:20px 22px 0}.progress-counts>div{background:#f3f7ff;border:1px solid #dce6f5;border-radius:12px;padding:14px 18px;display:flex;justify-content:space-between;align-items:center;gap:10px}.progress-counts span{font-size:14px;color:#536984}.progress-counts b{font-size:24px}
    .progress-filters{display:grid;grid-template-columns:2fr 1fr 1fr;gap:14px;padding:20px 22px 0}.progress-filters label{font-size:14px;font-weight:650;display:grid;gap:7px}.progress-filters input,.progress-filters select{width:100%;min-width:0;min-height:46px;border:1px solid #d5e0ef;border-radius:9px;padding:10px 12px;font:inherit;background:white;color:#253c58}
    .progress-result-count{padding:0 22px;font-size:13px;color:#64748b}.progress-work-card{margin:18px 22px;border:1px solid #dce5f1;border-radius:14px;padding:20px}.progress-work-heading{display:flex;justify-content:space-between;align-items:center;gap:14px}.progress-work-heading h3{font-size:19px;margin:9px 0 0}.progress-floor-tag{font-size:13px;font-weight:700;color:#2453a0;background:#edf4ff;padding:5px 9px;border-radius:6px}.progress-state{font-size:13px;font-weight:700;padding:7px 10px;border-radius:7px;white-space:nowrap;background:#f0f3f7;color:#526274}.progress-state.done{background:#e4f7ef;color:#087f5b}.progress-state.started{background:#eaf2ff;color:#2459c4}
    .progress-quantities{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin:22px 0;background:#f8faff;padding:16px;border-radius:10px}.progress-quantities span{display:block;font-size:14px;color:#61758f;margin-bottom:8px}.progress-quantities b{font-size:21px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.progress-completed{color:#2265e8}
    .progress-comparison{display:flex;gap:12px;justify-content:space-between;flex-wrap:wrap;font-size:14px}.progress-work-track{position:relative;height:9px;background:#e8eef6;border-radius:8px;margin:14px 2px}.progress-work-track>span{display:block;height:100%;border-radius:8px;background:#2868f5}.progress-work-track i{position:absolute;top:-3px;bottom:-3px;width:2px;background:#64748b}
    .progress-work-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:20px 0 12px}.progress-work-foot>span{font-size:13px;color:#657790}.progress-work-history{border-top:1px solid #e4eaf3;padding-top:14px}.progress-work-history summary{font-size:15px;font-weight:700;cursor:pointer;color:#2053a4;padding:6px 0}.progress-history-scroll{overflow-x:auto;margin-top:14px}.progress-history-scroll table{width:100%;border-collapse:collapse;min-width:650px;font-size:14px}.progress-history-scroll th,.progress-history-scroll td{padding:12px;text-align:left;border-bottom:1px solid #e3eaf4;vertical-align:top;white-space:normal}.progress-history-scroll th{background:#f3f6fb}.progress-history-scroll td:last-child{min-width:180px;max-width:500px;overflow-wrap:anywhere}.progress-history-pages{display:flex;justify-content:flex-end;gap:10px;align-items:center;flex-wrap:wrap;margin-top:14px;font-size:13px}
    @media(max-width:760px){.progress-counts,.progress-quantities{grid-template-columns:repeat(2,minmax(0,1fr))}.progress-filters{grid-template-columns:1fr}.progress-work-card{margin:14px 10px;padding:14px}.progress-counts,.progress-filters{padding-left:10px;padding-right:10px}.progress-quantities{gap:15px;padding:12px}.progress-quantities b{font-size:18px}.progress-work-heading{align-items:flex-start}.progress-work-heading h3{font-size:17px}.progress-work-foot .secondary{width:100%}}


    .progress-budget-scroll{overflow-x:auto;margin:18px 22px 22px;border:1px solid #dce5f1;border-radius:12px}
    .progress-budget-table{width:100%;border-collapse:collapse;min-width:1000px;font-size:15px}
    .progress-budget-table th{background:#edf3fc;color:#506783;font-size:14px;text-align:left;padding:16px 14px}
    .progress-budget-table .progress-budget-row>td{padding:20px 14px 12px;vertical-align:top;border-top:1px solid #dce5f1}
    .progress-budget-row>td:nth-child(2){min-width:220px;max-width:340px;overflow-wrap:anywhere}.progress-budget-row>td:nth-child(n+3){white-space:nowrap}
    .progress-budget-row>td>b{font-size:17px;font-variant-numeric:tabular-nums}.progress-budget-row>td>strong{font-size:16px}
    .progress-budget-row small{display:block;margin-top:8px;color:#6b7f97;font-size:12px}
    .progress-budget-row .negative{color:#be3434}.progress-budget-row .progress-state{font-size:12px;padding:4px 6px}
    .progress-budget-row .progress-work-track{min-width:100px;margin:10px 0}.progress-budget-row .secondary{font-size:13px;min-height:40px}
    .progress-budget-history-row>td{padding:0 14px 15px}.progress-budget-history-row .progress-work-history{border:0;padding:0}
    .progress-budget-history-row summary{font-size:13px}.progress-budget-history-row summary span{font-weight:400;color:#657790;margin-left:12px}
    .progress-budget-history-row .progress-history-body{background:#f8faff;padding:0 12px;border-radius:8px}
    @media(max-width:760px){.progress-budget-scroll{margin:12px 10px}.progress-budget-history-row summary span{display:block;margin:6px 0}.progress-budget-table th{padding:12px}.progress-budget-row>td>b{font-size:16px}}

#progressPreview .progress-preview-grid{grid-template-columns:repeat(3,minmax(0,1fr))}@media(max-width:600px){#progressPreview .progress-preview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.daily-sub-rows{display:grid;gap:6px}.daily-sub-row{display:grid;grid-template-columns:minmax(0,1fr) 96px 44px;gap:6px}.daily-sub-add{margin-top:6px}
#dailyReportSubcontractorWorkers[readonly]{background:#f2f5f9;color:#33475f}
/* Sidebar a few shades lighter (soft navy-blue instead of near-black); white text keeps its contrast. */
.sidebar{background:linear-gradient(180deg,#26496f 0%,#1f3e63 100%)!important}
aside .nav-label.nav-label-accent:not(#expenseCategoryLabel){background:rgba(255,255,255,.13)!important}
aside .nav button:not(.active):hover{background:rgba(255,255,255,.09)!important}
aside .workspace{background:rgba(255,255,255,.08)!important;border-color:rgba(255,255,255,.16)!important}
/* Subcontractor acts */
.acts-box{width:100%;max-width:min(1100px,calc(100% - 16px))}.acts-edit-box{max-width:860px}
@media(max-width:640px){#actsModal .modal-box{margin-left:auto;margin-right:auto}#actsBody .form-grid{grid-template-columns:1fr}.acts-summary>button{margin-left:0}}
.acts-summary{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:4px 0 12px}.acts-summary>span{padding:6px 12px;border-radius:10px;background:#f2f5f9;font-size:13px}.acts-summary>button{margin-left:auto}
#actsBody{padding:4px 22px 18px}
.acts-step{border:1px solid #e4eaf2;border-radius:14px;padding:14px 16px;margin-bottom:14px;background:#fff}
.acts-step h3{display:flex;align-items:center;gap:10px;margin:0 0 4px;font-size:16px}.acts-step h3 span{width:26px;height:26px;border-radius:99px;background:#1f3e63;color:#fff;display:grid;place-items:center;font-size:13px}
.acts-help{margin:0 0 10px;color:#6b7a90;font-size:13px}
.acts-setup-table{width:100%!important;min-width:760px!important;border-collapse:separate;border-spacing:0 6px}
.acts-setup-table th{font-size:12px;color:#6b7a90;text-align:left;padding:0 6px;font-weight:700;white-space:nowrap}
.acts-setup-table td{padding:0 6px;vertical-align:middle}
.acts-setup-table input,.acts-setup-table select{width:100%;min-width:0;height:40px;border:1px solid var(--line);border-radius:9px;padding:0 10px;background:#fff;font:inherit;font-size:14px;box-sizing:border-box}
.acts-setup-table input:focus,.acts-setup-table select:focus{outline:2px solid #9fbaf0;border-color:#5b8def}
.acts-setup-table td:nth-child(2){min-width:200px}.acts-setup-table td:nth-child(3){width:80px}.acts-setup-table td:nth-child(4),.acts-setup-table td:nth-child(5){width:130px}.acts-setup-table td:nth-child(4) input,.acts-setup-table td:nth-child(5) input{text-align:right}
.acts-setup-table td:nth-child(7){min-width:200px}.acts-no{width:28px;color:#7b8797;font-weight:800;text-align:center}
.acts-used{display:block;color:#b45f06;margin-top:3px}
.acts-remove{width:34px;height:34px;border-radius:9px;border:1px solid #f1c4c8;background:#fff7f7;color:#c43842;font-size:18px;cursor:pointer}
.acts-total-row{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-top:6px;padding-top:10px;border-top:1px dashed #d8e0ea;font-size:15px}.acts-total-row b{font-size:18px;color:#1d2b3e}
.acts-split{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.acts-preset{border:1px solid var(--line);background:#fff;border-radius:99px;padding:8px 14px;font-weight:700;cursor:pointer}.acts-preset.active{background:#1f3e63;color:#fff;border-color:#1f3e63}
.acts-cash{display:inline-flex;align-items:center;gap:6px;font-weight:700;margin-left:auto}.acts-cash input{width:80px;height:40px;border:1px solid var(--line);border-radius:9px;text-align:center;font:inherit;font-weight:800}
.acts-split-bar{height:10px;border-radius:99px;background:#f1c27d;margin:12px 0 6px;overflow:hidden}.acts-split-bar i{display:block;height:100%;background:#13986d}
.acts-split-text{margin:0;font-size:14px;color:#33475f}
.acts-save{position:sticky;bottom:0;display:flex;justify-content:flex-end;padding:10px 0 2px;background:linear-gradient(transparent,#fff 30%)}.acts-save .primary{min-width:180px;min-height:46px}
@media(max-width:640px){#actsBody{padding:4px 10px 14px}.acts-cash{margin-left:0}}
.acts-amount{white-space:nowrap;font-weight:700;text-align:right}
.acts-suggest-row{display:flex;justify-content:space-between;align-items:center;margin:10px 0 6px}
.acts-preview{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.acts-preview span{padding:6px 10px;border-radius:10px;background:#f2f5f9;font-size:13px}.acts-preview .acts-pay{background:#e6f6ef;color:#13805c;font-size:14px}
/* Material requests: urgent, receipt, purchase, budget hint */
.inv-request.urgent{border-left-color:#dc4c56;box-shadow:0 0 0 1px #f3c4c8 inset}
.inv-urgent{display:flex;align-items:center;gap:8px;font-weight:700;color:#c43842;cursor:pointer}
.inv-buy{padding:4px 9px;font-size:12px;min-height:30px;white-space:nowrap}.inv-buy.on{background:#fff3e0;border-color:#f1c27d;color:#b45f06}
.inv-budget{margin:-2px 0 8px;padding:5px 10px;border-radius:8px;font-size:12.5px;font-weight:700}.inv-budget.ok{background:#e6f6ef;color:#13805c}.inv-budget.over{background:#fff0f0;color:#c43842}
/* Daily report work line linked to progress */
.daily-work-link{grid-column:1/-1}.daily-work-link small{font-weight:500;color:#6b7a90}.daily-work-hint{display:block;margin-top:3px;color:#13805c!important;font-weight:700!important}
/* Progress review queue */
.review-queue{margin-bottom:14px;border-left:4px solid #e19a2c}.review-queue .card-head{flex-wrap:wrap;gap:10px}.rq-count{display:inline-block;min-width:24px;padding:0 7px;border-radius:99px;background:#c97913;color:#fff;font-size:13px;text-align:center}
.rq-all{display:inline-flex;align-items:center;gap:6px;font-weight:700;color:#4a5a70}
.rq-list{display:grid;gap:6px;padding:0 14px 14px;max-height:360px;overflow:auto}
.rq-row{display:grid;grid-template-columns:22px minmax(0,1fr) auto 28px auto;gap:10px;align-items:center;padding:8px 10px;border:1px solid #e4eaf2;border-radius:10px;background:#fff;cursor:pointer}
.rq-row:has(input:checked){background:#f1f6ff;border-color:#9fbaf0}.rq-main small{display:block;color:#6b7a90}.rq-main em{color:#2453c6;font-style:normal;font-weight:700}
.rq-qty{font-weight:800;color:#13805c;white-space:nowrap}.rq-photo{text-decoration:none;font-size:18px}
@media(max-width:640px){.rq-row{grid-template-columns:22px minmax(0,1fr) auto}.rq-photo,.rq-row>button{grid-column:2/-1;justify-self:start}}
/* Finish-date forecast */
.forecast-panel{margin-top:14px}.fc-head{display:flex;flex-wrap:wrap;gap:8px;align-items:baseline;padding:10px 14px;border-radius:12px;margin:8px 0 10px}.fc-head b{font-size:18px}
.fc-head.ok{background:#e6f6ef;color:#13805c}.fc-head.late{background:#fff0f0;color:#c43842}.fc-head.none{background:#f2f5f9;color:#4a5a70}
.fc-late td{background:#fff7f7}.fc-stalled td{color:#7b8797}
/* Monthly plan: filters, summary, progress per row, Gantt switch */
.mp-toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;margin:4px 0 10px}.mp-toolbar label{display:grid;gap:4px;font-size:12.5px;color:#5d6b80;font-weight:700}.mp-toolbar select{min-width:170px}
.mp-switch{margin-left:auto;display:flex;border:1px solid var(--line);border-radius:10px;overflow:hidden}.mp-switch button{border:0;background:#fff;padding:9px 14px;font-weight:700;color:#4a5a70;cursor:pointer}.mp-switch button.active{background:#1f3e63;color:#fff}
.mp-summary{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.mp-summary>span{padding:5px 11px;border-radius:99px;background:#eef2f7;color:#33475f;font-size:13px}.mp-summary .ok{background:#e6f6ef;color:#13805c}.mp-summary .late{background:#fff0f0;color:#c43842}
.mp-overall{display:inline-flex!important;align-items:center;gap:8px;background:#fff!important;border:1px solid var(--line)}.mp-overall i{display:inline-block;width:120px;height:7px;border-radius:99px;background:#e6ebf2;overflow:hidden}.mp-overall em{display:block;height:100%;background:#13986d}
.mp-bar{height:6px;border-radius:99px;background:#e6ebf2;margin-top:6px;max-width:260px;overflow:hidden}.mp-bar i{display:block;height:100%;background:#13986d}.mp-row-late .mp-bar i{background:#dc4c56}
.mp-row-late td{background:#fff7f7}.mp-late{display:inline-block;padding:3px 9px;border-radius:99px;background:#fff0f0;color:#c43842;font-weight:800;font-size:12px}.mp-qty{display:block;color:#33475f;font-weight:600;margin-top:3px}
.mp-gantt{display:grid;gap:12px;margin-top:12px}.mp-assignee{display:inline-block;margin-top:3px;padding:1px 8px;border-radius:99px;background:#e8f0fe;color:#2453c6!important;font-weight:700}.mp-carried{display:block;color:#8a6d1a}.mp-gantt-card .card-head{padding:12px 16px 6px}
@media(max-width:640px){.mp-switch{margin-left:0}.mp-toolbar select{min-width:140px}}
/* Project work status strip (cards and project page) */
.ps-strip{margin:10px 0 4px;padding:10px 12px;border:1px solid #e4eaf2;border-radius:12px;background:#f8fafd}
.ps-progress-head{display:flex;align-items:baseline;gap:8px}.ps-progress-head span{font-size:12.5px;color:#5d6b80}.ps-progress-head b{font-size:18px;color:#1d2b3e}.ps-progress-head small{margin-left:auto;color:#7b8797}
.ps-bar{position:relative;height:8px;border-radius:99px;background:#e6ebf2;margin:6px 0 8px;overflow:hidden}.ps-bar span{position:absolute;left:0;top:0;bottom:0;border-radius:99px}.ps-bar-plan{background:#c9d6e8}.ps-bar-actual{background:#13986d}.ps-bar-actual.late{background:#e19a2c}
.ps-facts{display:flex;flex-wrap:wrap;gap:6px}
.ps-badge,.ps-chip{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border-radius:99px;font-size:12px;font-weight:700;background:#eef2f7;color:#3f5470}
.ps-badge.ok{background:#e6f6ef;color:#13805c}.ps-badge.late{background:#fff0e0;color:#b45f06}.ps-badge.none{background:#eef1f5;color:#6b7a90}
.ps-chip.danger{background:#fff0f0;color:#c43842}.ps-chip.ok{background:#e8f0fe;color:#2453c6}.ps-chip.muted{color:#8592a3}
/* Project page tabs */
.pd-tabs{display:flex;gap:6px;overflow-x:auto;margin:14px 0 12px;padding-bottom:8px;border-bottom:1px solid var(--line);scrollbar-width:thin}
.pd-tabs button{flex:none;border:1px solid var(--line);background:#fff;border-radius:999px;padding:8px 14px;font-weight:700;color:#4a5a70;cursor:pointer;min-height:38px}
.pd-tabs button.active{background:#1f3e63;border-color:#1f3e63;color:#fff}
.pd-pane>*+*{margin-top:12px}.pd-single{display:block!important}
.pd-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.pd-card{border:1px solid #e4eaf2;border-radius:14px;padding:12px 14px;background:#fff}.pd-card h4{margin:0 0 8px;font-size:15px}.pd-card h4 small{color:#7b8797;font-weight:600}
.pd-row{display:grid;gap:2px;padding:8px 10px;border-radius:10px;background:#f8fafd;margin-top:6px;border-left:3px solid #9aa7b8}.pd-row.danger{border-left-color:#dc4c56;background:#fff7f7}.pd-row span{font-size:12.5px;color:#5d6b80}
.pd-empty{color:#7b8797;margin:4px 0}.pd-issue{grid-template-columns:minmax(0,1fr) auto;align-items:center}.pd-issue>div{display:grid;gap:2px}.pd-issue button{white-space:nowrap}.pd-note{color:#5d6b80;font-size:13px}
.pd-photos{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px}.pd-photos a{display:grid;gap:3px;text-decoration:none;color:#5d6b80;font-size:12px}.pd-photos img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:10px;border:1px solid #e4eaf2}
.pd-person{display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:10px;align-items:center;padding:8px 0;border-top:1px solid #eef2f7}.pd-person:first-of-type{border-top:0}
.pd-avatar{width:38px;height:38px;border-radius:99px;background:#1f3e63;color:#fff;display:grid;place-items:center;font-weight:800;font-size:13px}.pd-person small{display:block;color:#6b7a90}
.pd-contact{display:grid;gap:2px;text-align:right}.pd-contact a{font-size:14px;color:#2453c6;text-decoration:none}
@media(max-width:720px){.pd-grid{grid-template-columns:1fr}.pd-person{grid-template-columns:40px minmax(0,1fr)}.pd-contact{grid-column:1/-1;text-align:left}}
/* "Миний хийх ажил" board; the rolling project card is dropped (same facts as the status table and Projects page). */
#dashboard .grid-2:has(#dashboardAlerts){display:none!important}
.todo-board{margin-bottom:14px}.todo-board .card-head{padding:12px 18px 8px}.todo-board h2{font-size:17px}
.todo-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:8px;padding:0 14px 14px}
.todo-item{display:grid;grid-template-columns:34px minmax(0,1fr) auto 14px;gap:10px;align-items:center;text-align:left;border:1px solid #e4eaf2;border-left:4px solid #9aa7b8;border-radius:12px;background:#fff;padding:10px 12px;cursor:pointer;font:inherit;color:inherit;min-height:56px}
.todo-item:hover{background:#f6f9fd}.todo-item.danger{border-left-color:#dc4c56;background:#fff7f7}.todo-item.warn{border-left-color:#e19a2c;background:#fffaf1}.todo-item.info{border-left-color:#2f6fe4}
.todo-icon{font-size:20px;text-align:center}.todo-text b{display:block;font-size:14px;color:#1d2b3e}.todo-text small{display:block;color:#5d6b80;font-size:12.5px;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.todo-count{min-width:26px;height:26px;padding:0 7px;border-radius:99px;background:#1f3e63;color:#fff;font-weight:800;font-size:13px;display:grid;place-items:center}.todo-item.danger .todo-count{background:#dc4c56}.todo-item.warn .todo-count{background:#c97913}
.todo-go{color:#9aa7b8;font-size:20px}.todo-empty{margin:0;padding:4px 4px 2px;color:#13805c;font-weight:700}
@media(max-width:640px){.todo-list{grid-template-columns:1fr;padding:0 10px 10px}}
/* Compact dashboard: less empty space in the header, stat cards, status table and project card. */
#dashboard>.title-row{margin-bottom:14px!important}
#dashboard .dashboard-stats{margin-bottom:14px!important;gap:12px!important}
#dashboard .dashboard-stats .stat{padding:12px 16px!important}
#dashboard .dashboard-stats .stat .stat-value{margin:6px 0 2px!important}
#dashboard .portfolio-board{margin-bottom:14px!important}
#dashboard .portfolio-board .card-head{padding:12px 18px 10px!important}
#portfolioOverview th{padding:8px 14px!important}#portfolioOverview td{padding:8px 14px!important}
#dashboard .dashboard-project-stream-card{padding-top:16px!important;padding-bottom:16px!important}
@media(min-width:1100px){#dashboard .dashboard-project-stream-category-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important}}
/* Team cards: phone and e-mail readable at a glance. */
.team-contact{gap:5px!important}.team-contact a{font-size:14px!important;color:#3f5470!important;line-height:1.35}
/* Daily report detail (phone-first) */
.drd-hero{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;flex-wrap:wrap}.drd-hero h3{margin:6px 0 2px;font-size:22px}.drd-hero p{margin:0 0 6px;color:#5d6b80}
.drd-status{display:inline-block;padding:3px 10px;border-radius:99px;font-size:12px;font-weight:800}.drd-status.sent{background:#e6f6ef;color:#13805c}.drd-status.draft{background:#eef1f5;color:#5d6b80}
.drd-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:14px 0}
.drd-fact{border:1px solid #e4eaf2;border-radius:12px;padding:10px 12px;background:#fbfcfe;min-width:0}.drd-fact span{display:block;font-size:12px;color:#7b8797}.drd-fact b{display:block;font-size:16px;margin-top:2px;overflow-wrap:anywhere}.drd-fact small{display:block;color:#6b7a90;font-size:11.5px}
.drd-section{margin-top:14px}.drd-section-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:8px}.drd-section-head h4{margin:0;font-size:16px}.drd-section-head span{color:#7b8797;font-size:13px}
.drd-works{display:grid;gap:6px}.drd-work{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:10px;align-items:center;border:1px solid #e4eaf2;border-radius:12px;padding:10px 12px;background:#fff}
.drd-no{width:26px;height:26px;border-radius:99px;background:#e8f0fe;color:#2453c6;font-weight:800;font-size:12px;display:grid;place-items:center}
.drd-work-main b{display:block;overflow-wrap:anywhere}.drd-work-main small{display:block;color:#6b7a90;margin-top:2px;overflow-wrap:anywhere}
.drd-qty{text-align:right;white-space:nowrap}.drd-qty b{display:block;font-size:17px;color:#1d2b3e}.drd-qty small{color:#6b7a90}
.drd-note{margin-top:10px;border-radius:12px;padding:10px 12px;border-left:4px solid #9aa7b8;background:#f5f7fa}.drd-note b{font-size:13.5px}.drd-note p{margin:4px 0 0;white-space:pre-wrap;overflow-wrap:anywhere}
.drd-note.danger{border-left-color:#dc4c56;background:#fff3f3}.drd-note.danger b{color:#c43842}.drd-note.warn{border-left-color:#e19a2c;background:#fff8ec}.drd-note.next{border-left-color:#2f6fe4;background:#f0f5ff}.drd-note.next b{color:#2453c6}
@media(max-width:640px){.drd-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.drd-hero h3{font-size:20px}.drd-hero .detail-actions{width:100%}}
/* Compact sidebar: smaller group headers, less space between groups and rows. */
aside .nav-label.nav-label-accent:not(#expenseCategoryLabel){margin:10px 0 4px!important;padding:6px 12px!important;min-height:0!important}
aside .nav button{min-height:40px}
aside .expense-category-nav button{min-height:32px;font-size:12.5px}
aside .expense-category-nav{margin-bottom:2px!important}
/* Expense categories sit under "Зарцуулалт" as a small sub-toggle, not as a group header. */
#expenseCategoryLabel{background:transparent!important;box-shadow:none!important;border:0!important;min-height:0!important;margin:0!important;padding:2px 12px 2px 44px!important;font-size:11px!important;letter-spacing:.03em;opacity:.7;justify-content:flex-start!important;gap:6px;width:100%}
#expenseCategoryLabel svg{width:14px;height:14px}
/* Budget money hidden for the storekeeper, foreman and other site staff (body.budget-hidden). */
body.budget-hidden .dashboard-stats>.stat:nth-child(-n+4),
body.budget-hidden #portfolioOverview th:nth-child(2),body.budget-hidden #portfolioOverview th:nth-child(3),
body.budget-hidden #portfolioOverview td:nth-child(2),body.budget-hidden #portfolioOverview td:nth-child(3),
body.budget-hidden .dashboard-project-stream-summary,body.budget-hidden .dashboard-project-stream-summary~div,
body.budget-hidden .project-budget-compare,body.budget-hidden .project-budget-comparison-caption,
body.budget-hidden .project-card>.progress,body.budget-hidden .project-category-compare,
body.budget-hidden .project-card>.budget-summary,body.budget-hidden .project-card>.cat-lines,
body.budget-hidden #cashier .detail-layout:has(#cashierProjectList),
body.budget-hidden #cashier [data-pane="review"]>.stats>.stat:nth-child(2){display:none!important}
body.foreman-view #dashboardProgress,body.foreman-view .portfolio-board .progress-link,body.foreman-view .nav button[data-view="schedule"],body.foreman-view .nav button[data-view="monthly-plans"],body.foreman-view .nav button[data-view="progress"]{display:none!important}
/* Storekeeper warehouse and material requests */
.inv-tabs{display:flex;gap:6px;flex-wrap:wrap;margin:4px 0 14px;border-bottom:1px solid var(--line);padding-bottom:8px}
.inv-tabs button{border:1px solid var(--line);background:#fff;border-radius:999px;padding:9px 16px;font-weight:700;color:#4a5a70;cursor:pointer;min-height:40px;display:inline-flex;align-items:center;gap:6px}
.inv-tabs button.active{background:#0b5cff;border-color:#0b5cff;color:#fff}
.inv-badge,.nav-count{display:inline-block;min-width:20px;padding:0 6px;border-radius:99px;background:#f2371f;color:#fff;font-size:11px;line-height:20px;text-align:center}
.nav-count{margin-left:auto}
.inv-stats{margin-bottom:14px}
.inv-head{flex-wrap:wrap;gap:10px}.inv-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.inv-table td{vertical-align:middle}.inv-table small{color:#6b7a90}.inv-balance{font-size:16px}
.inv-table tr.inv-low td{background:#fff7e6}.inv-table tr.inv-empty td{background:#fff0f0}.inv-table tr.inv-empty .inv-balance{color:#dc4c56}.inv-table tr.inv-inactive td{opacity:.55}
.inv-new{display:inline-block;padding:0 6px;border-radius:6px;background:#eef3ff;color:#2453c6!important;font-size:11px;font-weight:700}
.inv-requests{display:grid;gap:12px;padding:4px 0}
.inv-request{border:1px solid var(--line);border-radius:12px;padding:12px 14px;background:#fff}.inv-request.open{border-left:4px solid #c97913}
.inv-request-head{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}.inv-request-head small{color:#6b7a90}
.inv-request-meta{display:flex;flex-direction:column;align-items:flex-end;gap:4px}
.inv-chip{display:inline-block;padding:3px 10px;border-radius:99px;font-size:12px;font-weight:800;color:var(--chip);background:color-mix(in srgb,var(--chip) 12%,#fff)}
.inv-note{margin:8px 0;color:#3d4b5f;font-size:14px}
.inv-lines{width:100%!important;min-width:0!important;border-collapse:collapse;margin-top:8px;font-size:14px}.inv-lines th{text-align:left;color:#6b7a90;font-weight:600;font-size:12px;padding:4px 6px;border-bottom:1px solid var(--line)}.inv-lines td{padding:6px;border-bottom:1px solid #f0f2f6}
.inv-request-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:10px}.inv-request-actions:empty{display:none}
.inv-modal{max-width:640px}.inv-hint{color:#6b7a90;font-size:13px;margin:4px 0 0;display:block}
.inv-line{display:grid;grid-template-columns:minmax(0,1fr) 100px 44px;gap:6px;margin-bottom:6px}.inv-line.free{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 80px 90px 44px}
.inv-add-line{margin-top:4px}
.inv-issue{display:grid;gap:8px;margin:10px 0}.inv-issue-row{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1.3fr) 100px;gap:8px;align-items:center;padding:8px;border:1px solid var(--line);border-radius:10px}.inv-issue-row small{color:#6b7a90}
@media(max-width:640px){.inv-line,.inv-line.free{grid-template-columns:1fr 1fr}.inv-line select{grid-column:1/-1}.inv-issue-row{grid-template-columns:1fr 1fr}.inv-issue-row>div{grid-column:1/-1}.inv-request-meta{align-items:flex-start}.inv-tabs button{padding:8px 12px;font-size:13px}}

/* ===== 2/6 ===== */
    /* Project budget breakdown: keep every column visible inside the detail modal. */
    #projectDetailModal .modal-box.wide {
      width: min(1120px, calc(100vw - 32px));
    }

    .modal-box.budget-breakdown-modal {
      width: min(1440px, calc(100vw - 24px));
      max-height: calc(100vh - 24px);
    }

    #approvedBudgetModal {
      z-index: 100;
    }

    #approvedBudgetModal .modal-head h2 { font-size: 20px; }
    #approvedBudgetModal .form-stack { gap: 16px; }
    #approvedBudgetModal .form-stack > label,
    #approvedBudgetModal .form-grid label { gap: 8px; font-size: 13px; }
    #approvedBudgetModal .form-stack input,
    #approvedBudgetModal .form-stack select { min-height: 46px; padding: 11px 12px; font-size: 16px; line-height: 1.4; }
    #approvedBudgetModal .form-stack small { font-size: 12px; line-height: 1.45; }
    #approvedBudgetModal .field-hint { font-size: 13px; line-height: 1.5; }
    #approvedBudgetModal #approvedBudgetCalculatedTotal { font-size: 16px; line-height: 1.5; }
    #approvedBudgetModal .modal-actions button { padding: 11px 15px; font-size: 14px; }

    .budget-breakdown-subtitle {
      margin: 4px 0 0;
      color: var(--muted);
      font-size: 11px;
    }

    .budget-breakdown-modal > .modal-head {
      position: sticky;
      top: 0;
      z-index: 20;
      background: #fff;
    }

    .budget-breakdown-modal .approved-budget-breakdown > .card-head {
      position: sticky;
      top: 72px;
      z-index: 15;
      margin: 0 -22px;
      padding: 14px 22px;
      border-bottom: 1px solid var(--line);
      background: #fff;
      box-shadow: 0 7px 12px rgba(20, 47, 78, .08);
    }

    .budget-breakdown-modal .approved-budget-breakdown .material-table th {
      padding: 8px 9px;
      font-size: 10px;
    }

    .budget-breakdown-modal .approved-budget-breakdown .material-table td {
      padding: 8px 9px;
      font-size: 13px;
      line-height: 1.25;
    }

    .budget-breakdown-modal .approved-budget-breakdown .material-table td small {
      margin-top: 2px !important;
      font-size: 10px;
      line-height: 1.2;
    }

    .budget-breakdown-modal .approved-budget-breakdown .material-actions {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 3px;
      min-width: 94px;
    }

    .budget-breakdown-modal .approved-budget-breakdown .budget-move-controls {
      display: contents;
    }

    .budget-breakdown-modal .approved-budget-breakdown .material-actions .secondary {
      width: auto;
      padding: 4px 3px;
      font-size: 10px;
      line-height: 1.1;
    }

    .approved-budget-summary {
      padding: 15px;
      border: 1px solid var(--line);
      border-radius: 12px;
      background: #fff;
    }

    .approved-budget-summary .card-head {
      padding: 0 0 12px;
    }

    .approved-budget-category-list {
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: 8px;
    }

    .approved-budget-category-summary {
      display: grid;
      gap: 4px;
      padding: 10px;
      border-radius: 8px;
      background: #f7f9fc;
    }

    .approved-budget-category-summary b {
      color: #314a66;
      font-size: 11px;
    }

    .approved-budget-category-summary span {
      color: var(--muted);
      font-size: 10px;
    }

    .approved-budget-breakdown .table-wrap {
      overflow-x: hidden;
    }

    .approved-budget-category-nav {
      position: sticky;
      z-index: 14;
      top: 132px;
      display: flex;
      gap: 8px;
      overflow-x: auto;
      margin: 0 -4px 10px;
      padding: 9px 4px;
      border-bottom: 1px solid #e7edf5;
      background: rgba(255,255,255,.97);
      box-shadow: 0 6px 10px rgba(24,54,89,.04);
      scrollbar-width: thin;
    }

    .approved-budget-category-nav button {
      display: grid;
      flex: 0 0 auto;
      gap: 1px;
      min-width: 118px;
      padding: 8px 11px;
      border: 1px solid #dbe5f2;
      border-radius: 9px;
      color: #294563;
      background: #f8faff;
      text-align: left;
    }

    .approved-budget-category-nav button:hover,
    .approved-budget-category-nav button:focus-visible {
      border-color: #91b4ff;
      color: #1858c9;
      background: #edf4ff;
      outline: 0;
    }

    .approved-budget-category-nav button.active {
      border-color: #246bfd;
      color: #fff;
      background: #246bfd;
      box-shadow: 0 4px 10px rgba(36,107,253,.18);
    }

    .approved-budget-category-nav button.active small { color: #dbe8ff; }

    .approved-budget-category-nav b { font-size: 12px; }
    .approved-budget-category-nav small { color: #71829a; font-size: 10px; }
    .approved-budget-breakdown .budget-category-panel { display: none; }
    .approved-budget-breakdown .budget-category-panel.active { display: block; }
    .approved-budget-breakdown .budget-reserve-package { border-color: #f1d39b; background: #fffdf7; }
    .approved-budget-breakdown .budget-reserve-package > summary { background: #fff8e8; }

    /* Keep the selected category's add/action bar available while its rows scroll. */
    .budget-breakdown-modal .approved-budget-breakdown .budget-category-panel.active {
      overflow: visible;
    }

    .budget-breakdown-modal .approved-budget-breakdown .budget-category-panel.active > .budget-category-head {
      position: sticky;
      top: 192px;
      z-index: 13;
      border-bottom: 1px solid #dce6f2;
      box-shadow: 0 7px 12px rgba(20, 47, 78, .08);
    }

    .approved-budget-breakdown .material-table {
      width: 100%;
      table-layout: fixed;
    }

    .approved-budget-breakdown .material-table th,
    .approved-budget-breakdown .material-table td {
      white-space: normal;
      overflow-wrap: anywhere;
      word-break: break-word;
    }

    .approved-budget-breakdown .material-table th {
      padding: 9px 7px;
      font-size: 9px;
      line-height: 1.25;
    }

    .approved-budget-breakdown .material-table td {
      padding: 10px 7px;
      font-size: 11px;
      line-height: 1.35;
    }

    .approved-budget-breakdown .material-table th:nth-child(1) { width: 18%; }
    .approved-budget-breakdown .material-table th:nth-child(2) { width: 10%; }
    .approved-budget-breakdown .material-table th:nth-child(3) { width: 14%; }
    .approved-budget-breakdown .material-table th:nth-child(4) { width: 16%; }
    .approved-budget-breakdown .material-table th:nth-child(5) { width: 20%; }
    .approved-budget-breakdown .material-table th:nth-child(5):last-child { width: 28%; }
    .approved-budget-breakdown .material-table th:last-child:not(:nth-child(5)) { width: 10%; }

    .approved-budget-breakdown .material-reserve-table th:nth-child(1) { width: 24%; }
    .approved-budget-breakdown .material-reserve-table th:nth-child(2) { width: 7%; }
    .approved-budget-breakdown .material-reserve-table th:nth-child(3) { width: 11%; }
    .approved-budget-breakdown .material-reserve-table th:nth-child(4) { width: 14%; }
    .approved-budget-breakdown .material-reserve-table th:nth-child(5) { width: 16%; }
    .approved-budget-breakdown .material-reserve-table th:nth-child(6) { width: 17%; }
    .approved-budget-breakdown .material-reserve-table th:nth-child(6):last-child { width: 28%; }
    .approved-budget-breakdown .material-reserve-table th:nth-child(7) { width: 11%; }
    .budget-reserve-value { display: grid; justify-items: start; gap: 4px; line-height: 1.4; }
    .budget-reserve-value b { padding: 2px 8px; border-radius: 6px; background: #fff0ce; color: #795000; font-size: 13px; }
    .budget-reserve-value span { color: #566a83; font-size: 12px; }
    .budget-reserve-value strong { color: #795000; font-size: 13px; }
    .budget-no-reserve { color: #718096; font-size: 12px; }
    @media (max-width: 760px) { .approved-budget-breakdown .material-reserve-table { min-width: 820px; } }

    .approved-budget-breakdown .budget-work-package {
      margin: 9px 0 12px;
      border: 1px solid #dbe6f5;
      border-radius: 10px;
      overflow: hidden;
      background: #fff;
    }

    .approved-budget-breakdown .budget-work-package > summary {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 12px;
      padding: 10px 14px;
      cursor: pointer;
      color: #173a63;
      background: #f5f8fd;
      list-style: none;
    }

    .approved-budget-breakdown .budget-work-package > summary::-webkit-details-marker { display: none; }
    .approved-budget-breakdown .budget-work-package > summary::before { content: '▾'; color: var(--blue); font-weight: 800; }
    .approved-budget-breakdown .budget-work-package:not([open]) > summary::before { content: '▸'; }
    .approved-budget-breakdown .budget-work-package > summary > span { flex: 1; font-size: 14px; font-weight: 800; }
    .approved-budget-breakdown .budget-work-package > summary > small { color: #58718f; font-size: 11px; white-space: nowrap; }
    .approved-budget-breakdown .budget-work-package > summary > b { color: #0f795a; font-size: 13px; white-space: nowrap; }

    .approved-budget-breakdown .budget-group-actions {
      display: inline-flex;
      gap: 4px;
      align-items: center;
      margin-left: auto;
    }

    .approved-budget-breakdown .budget-group-actions .secondary {
      width: auto;
      min-width: 0;
      padding: 5px 8px;
      font-size: 10px;
      white-space: nowrap;
    }

    @media print {
      @page { size: A4 portrait; margin: 10mm; }

      body.printing-approved-budget { background: #fff !important; }
      body.printing-approved-budget > * { display: none !important; }
      body.printing-approved-budget #approvedBudgetBreakdownModal {
        position: static !important;
        display: block !important;
        padding: 0 !important;
        background: #fff !important;
      }
      body.printing-approved-budget #approvedBudgetBreakdownModal .budget-breakdown-modal {
        display: block !important;
        width: auto !important;
        max-height: none !important;
        overflow: visible !important;
        border-radius: 0 !important;
        box-shadow: none !important;
      }
      body.printing-approved-budget #approvedBudgetBreakdownModal .modal-head,
      body.printing-approved-budget .approved-budget-breakdown > .card-head,
      body.printing-approved-budget .budget-category-head {
        position: static !important;
        margin: 0 !important;
        box-shadow: none !important;
      }
      body.printing-approved-budget #approvedBudgetBreakdownModal .modal-head { padding: 0 0 10px !important; }
      body.printing-approved-budget #approvedBudgetBreakdownModal .detail-body { padding: 0 !important; }
      body.printing-approved-budget .approved-budget-breakdown > .card-head { padding: 12px 0 !important; }
      body.printing-approved-budget .approved-budget-category-nav,
      body.printing-approved-budget .close,
      body.printing-approved-budget [data-print-approved-budget],
      body.printing-approved-budget [data-print-budget-category],
      body.printing-approved-budget [data-budget-group-add],
      body.printing-approved-budget .budget-group-actions,
      body.printing-approved-budget .material-actions,
      body.printing-approved-budget .budget-move-controls {
        display: none !important;
      }
      body.printing-approved-budget .approved-budget-breakdown .budget-category-panel {
        display: block !important;
        overflow: visible !important;
        margin-top: 12px;
        break-before: page;
        page-break-before: always;
      }
      body.printing-approved-budget .approved-budget-breakdown .budget-category-panel:first-of-type {
        break-before: auto;
        page-break-before: auto;
      }
      body.printing-single-budget-category .approved-budget-breakdown .budget-category-panel {
        display: none !important;
      }
      body.printing-single-budget-category .approved-budget-breakdown .budget-category-panel.printing-category {
        display: block !important;
        margin-top: 0;
        break-before: auto;
        page-break-before: auto;
      }
      body.printing-single-budget-category #approvedBudgetBreakdownModal .modal-head,
      body.printing-single-budget-category .approved-budget-breakdown > .card-head,
      body.printing-single-budget-category .approved-budget-breakdown > .report-note {
        display: none !important;
      }
      body.printing-approved-budget .budget-category-head {
        padding: 9px 10px !important;
        background: #f4f7fb !important;
      }
      body.printing-approved-budget .budget-work-package,
      body.printing-approved-budget .material-table tr {
        break-inside: avoid;
        page-break-inside: avoid;
      }
      body.printing-approved-budget .table-wrap { overflow: visible !important; }
      body.printing-approved-budget .approved-budget-breakdown .material-table {
        table-layout: fixed !important;
        font-size: 9pt;
      }
      body.printing-approved-budget .approved-budget-breakdown .material-table th,
      body.printing-approved-budget .approved-budget-breakdown .material-table td {
        padding: 6px 7px !important;
        font-size: 9pt !important;
      }
    }

    .schedule-toolbar { display:flex; align-items:end; gap:10px; flex-wrap:wrap; margin-bottom:16px; }
    .schedule-picker { display:grid; min-width:280px; gap:6px; }
    .schedule-picker label { color:#53657b; font-size:11px; font-weight:750; }
    .schedule-picker select { padding:10px; border:1px solid #dfe5ec; border-radius:8px; color:#34465d; background:#fff; }
    .schedule-summary { display:flex; gap:9px; flex-wrap:wrap; margin:0 0 15px; }
    .schedule-summary span { padding:7px 10px; border-radius:8px; color:#52677f; background:#f0f4f9; font-size:11px; font-weight:700; }
    .schedule-summary b { color:#1d4f9d; }
    .gantt-card { overflow:hidden; border:1px solid var(--line); border-radius:var(--radius); background:#fff; box-shadow:var(--shadow); }
    .gantt-card-head { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; padding:17px 19px 13px; border-bottom:1px solid #edf0f4; }
    .gantt-card-head h2 { margin:0; font-size:15px; }
    .gantt-card-head p { margin:3px 0 0; color:var(--muted); font-size:11px; }
    .gantt-wrap { overflow:auto; max-height:calc(100vh - 255px); min-height:330px; }
    .gantt-calendar { --gantt-day:32px; display:grid; grid-template-columns:260px max-content; min-width:max-content; }
    .gantt-label-head,.gantt-timeline-head { position:sticky; top:0; z-index:8; height:52px; border-bottom:1px solid #dfe7f0; background:#f7f9fc; }
    .gantt-label-head { position:sticky; left:0; z-index:12; display:flex; align-items:center; padding:0 15px; color:#60738b; font-size:10px; font-weight:850; letter-spacing:.5px; }
    .gantt-timeline-head { display:flex; width:var(--gantt-width); }
    .gantt-day-head { width:var(--gantt-day); min-width:var(--gantt-day); box-sizing:border-box; padding-top:8px; border-left:1px solid #edf1f5; color:#718198; font-size:9px; line-height:1.2; text-align:center; }
    .gantt-day-head.weekend { color:#a17272; background:#fff8f8; }
    .gantt-day-head.today { color:#175bc7; background:#edf4ff; font-weight:850; }
    .gantt-task-cell { position:sticky; left:0; z-index:5; display:flex; flex-direction:column; justify-content:center; min-height:62px; padding:9px 14px; box-sizing:border-box; border-bottom:1px solid #edf1f5; background:#fff; }
    .gantt-task-cell b { overflow:hidden; color:#263b56; font-size:12px; text-overflow:ellipsis; white-space:nowrap; }
    .gantt-task-cell small { overflow:hidden; margin-top:3px; color:#74859a; font-size:10px; text-overflow:ellipsis; white-space:nowrap; }
    .gantt-lane { position:relative; width:var(--gantt-width); min-height:62px; box-sizing:border-box; border-bottom:1px solid #edf1f5; background-image:repeating-linear-gradient(to right, transparent 0, transparent calc(var(--gantt-day) - 1px), #edf1f5 calc(var(--gantt-day) - 1px), #edf1f5 var(--gantt-day)); }
    .gantt-lane.weekend-lane { background-color:#fffdfd; }
    .gantt-today-line { position:absolute; top:0; bottom:0; width:2px; background:#246bfd; opacity:.65; }
    .gantt-bar { position:absolute; top:17px; display:block; height:28px; min-width:26px; overflow:hidden; padding:0 8px; border:0; border-radius:7px; color:#fff; cursor:pointer; font-size:10px; font-weight:800; line-height:28px; text-align:left; text-overflow:ellipsis; white-space:nowrap; box-shadow:0 3px 7px rgba(24,76,153,.2); }
    .gantt-bar.planned { background:#8295ae; }
    .gantt-bar.in_progress { background:#246bfd; }
    .gantt-bar.done { background:#13986d; }
    .gantt-bar:hover { filter:brightness(.94); transform:translateY(-1px); }
    .gantt-empty { padding:70px 20px; color:#718198; text-align:center; }
    .schedule-status { display:inline-flex; margin-top:3px; font-size:10px; font-weight:800; }
    .schedule-status.planned { color:#65788e; }.schedule-status.in_progress { color:#246bfd; }.schedule-status.done { color:#13986d; }
    .schedule-task-actions { display:flex; gap:8px; margin-top:6px; }
    .schedule-task-actions button { padding:0; border:0; background:transparent; color:#246bfd; font:inherit; font-size:11px; font-weight:750; cursor:pointer; }
    .schedule-task-actions button.danger { color:#c83b47; }
    @media print { .schedule-task-actions { display:none; } }
    /* The schedule editor remains readable even in a narrow desktop window. */
    #scheduleTaskModal { padding:16px; overflow-y:auto; }
    #scheduleTaskModal .modal-box { width:min(560px,calc(100vw - 32px)); box-sizing:border-box; }
    #scheduleTaskModal .form-grid { grid-template-columns:1fr; }
    #scheduleTaskModal .field.full { grid-column:auto; }

    .execution-stats { grid-template-columns:repeat(4,minmax(0,1fr)); }
    .execution-payment-table td { white-space:nowrap; }
    .execution-payment-table td:nth-child(2),.execution-payment-table td:nth-child(3) { white-space:normal; min-width:150px; }
    .execution-status-select { min-width:112px; padding:7px 8px; border:1px solid #dfe5ec; border-radius:7px; color:#40536c; background:#fff; font-size:11px; font-weight:700; }
    .execution-status-select:disabled { border-color:transparent; color:#53657b; background:#f5f7fa; opacity:1; }
    .execution-money { display:grid; gap:3px; }
    .execution-money small { color:#718198; font-size:10px; }
    .execution-split { display:flex; width:116px; height:6px; overflow:hidden; margin-top:5px; border-radius:99px; background:#edf1f5; }
    .execution-split .cash { background:#13986d; }.execution-split .barter { background:#e98622; }
    .barter-remaining { color:#13986d; font-weight:800; }.barter-exhausted { color:#dc4c56; font-weight:800; }
    @media(max-width:900px){.execution-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
    @media(max-width:560px){.execution-stats{grid-template-columns:1fr}.title-row .detail-actions{flex-wrap:wrap}.title-row .detail-actions .primary,.title-row .detail-actions .secondary{flex:1 1 auto}}

    .approved-budget-breakdown .material-actions {
      flex-direction: column;
      gap: 4px;
    }

    .approved-budget-breakdown .material-actions .secondary {
      width: 100%;
      min-width: 0;
      padding: 5px 3px;
      font-size: 9px;
      white-space: nowrap;
    }

    .approved-budget-breakdown tr[draggable="true"] {
      cursor: grab;
    }

    .approved-budget-breakdown tr[draggable="true"]:active,
    .approved-budget-breakdown tr.budget-row-dragging {
      cursor: grabbing;
      opacity: .48;
    }

    .approved-budget-breakdown tr.budget-row-drop-before td {
      border-top: 3px solid var(--blue);
    }

    .approved-budget-breakdown tr.budget-row-drop-after td {
      border-bottom: 3px solid var(--blue);
    }

    .approved-budget-breakdown tr.budget-row-moved td {
      background: #f2f7ff;
      transition: background .7s ease;
    }

    .budget-drag-handle {
      display: inline-block;
      margin-right: 5px;
      color: #7a8da6;
      font-size: 15px;
      font-weight: 800;
      letter-spacing: -2px;
      vertical-align: middle;
      cursor: grab;
      user-select: none;
    }

    .approved-budget-breakdown .budget-move-controls {
      display: flex;
      gap: 3px;
    }

    .approved-budget-breakdown .budget-move-controls .secondary {
      flex: 1;
      padding: 4px 2px;
      font-size: 12px;
    }

    .project-expense-group tr[draggable="true"] { cursor: grab; }
    .project-expense-group tr.expense-row-dragging { cursor: grabbing; opacity: .48; }
    .project-expense-group tr.expense-row-drop-before td { border-top: 3px solid var(--blue); }
    .project-expense-group tr.expense-row-drop-after td { border-bottom: 3px solid var(--blue); }
    .expense-drag-handle { display:inline-block; margin-right:6px; color:#7a8da6; font-size:15px; font-weight:800; letter-spacing:-2px; vertical-align:middle; cursor:grab; user-select:none; }
    .expense-move-controls { display:flex; gap:3px; }
    .expense-move-controls .secondary { min-width:31px; padding:4px 7px; font-size:12px; }

    @media (max-width: 760px) {
      #projectDetailModal .modal-box.wide {
        width: calc(100vw - 16px);
      }

      .modal-box.budget-breakdown-modal {
        width: calc(100vw - 12px);
        max-height: calc(100vh - 12px);
      }

      .budget-breakdown-modal .approved-budget-breakdown > .card-head {
        top: 90px;
        margin: 0 -12px;
        padding: 12px;
      }

      .approved-budget-category-nav { top: 151px; }

      .budget-breakdown-modal .approved-budget-breakdown .budget-category-panel.active > .budget-category-head {
        top: 213px;
      }

      .budget-breakdown-modal .approved-budget-breakdown .material-table td {
        padding: 7px 5px;
        font-size: 11px;
      }

      .budget-breakdown-modal .approved-budget-breakdown .material-table td small {
        font-size: 9px;
      }

      .budget-breakdown-modal .approved-budget-breakdown .material-actions {
        min-width: 70px;
      }

      .approved-budget-breakdown .budget-work-package > summary {
        flex-wrap: wrap;
        padding: 9px 10px;
      }

      .approved-budget-breakdown .budget-work-package > summary > span {
        min-width: calc(100% - 24px);
      }

      .approved-budget-breakdown .budget-group-actions {
        margin-left: 0;
      }

      .schedule-picker { min-width:0; width:100%; }
      .gantt-calendar { grid-template-columns:180px max-content; }
      .gantt-task-cell { padding-left:9px; padding-right:9px; }

      .approved-budget-category-list {
        grid-template-columns: 1fr 1fr;
      }

      #projectDetailModal .detail-body {
        padding: 16px 12px 20px;
      }

      .approved-budget-breakdown .material-table th {
        padding: 8px 4px;
        font-size: 8px;
      }

      .approved-budget-breakdown .material-table td {
        padding: 9px 4px;
        font-size: 10px;
      }
    }

    /* Project details are a full workspace view, not a constrained popup. */
    .project-detail-page-head {
      display: flex;
      align-items: center;
      gap: 13px;
      margin-bottom: 17px;
    }

    .project-detail-page-head h1 {
      margin: 0;
      color: var(--ink);
      font-size: 24px;
      letter-spacing: -.6px;
    }

    .project-detail-page-head p {
      margin: 2px 0 0;
      color: var(--muted);
      font-size: 12px;
    }

    .project-detail-back {
      flex: 0 0 auto;
      padding: 9px 12px;
      white-space: nowrap;
    }

    .project-detail-page-card {
      padding: 24px;
      border: 1px solid var(--line);
      border-radius: var(--radius);
      background: var(--white);
      box-shadow: var(--shadow);
    }

    @media (max-width: 760px) {
      .project-detail-page-head {
        align-items: flex-start;
      }

      .project-detail-page-head h1 {
        font-size: 20px;
      }

      .project-detail-page-card {
        padding: 16px 12px 20px;
      }

      /* Project detail: prioritize readable cards and member names on phones. */
      .project-detail-page-card .detail-hero {
        flex-direction: column;
        gap: 11px;
      }

      .project-detail-page-card .detail-actions {
        width: 100%;
        justify-content: flex-start;
      }

      .project-detail-page-card .detail-stats {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 9px;
        margin-bottom: 14px;
      }

      .project-detail-page-card .detail-stat {
        min-height: 104px;
        padding: 13px 11px;
      }

      .project-detail-page-card .detail-stat span { font-size: 11px; line-height: 1.35; }
      .project-detail-page-card .detail-stat b { font-size: 16px; line-height: 1.35; }

      .project-detail-page-card .detail-layout {
        grid-template-columns: 1fr;
        gap: 12px;
      }

      .project-detail-page-card .detail-panel { padding: 15px; }
      .project-detail-page-card .detail-panel h4 { font-size: 15px; }
      .project-detail-page-card .detail-category { grid-template-columns: 82px minmax(0, 1fr) auto; font-size: 12px; }
      .project-detail-page-card .detail-category b { font-size: 11px; }

      .project-detail-page-card .detail-members {
        display: grid;
        grid-template-columns: 1fr;
        gap: 8px;
      }

      .project-detail-page-card .detail-member {
        padding: 9px 10px;
        font-size: 12px;
      }

      .project-detail-page-card .approved-budget-summary .card-head {
        align-items: flex-start;
        gap: 10px;
      }

      .project-detail-page-card .approved-budget-summary .primary {
        flex: 0 0 auto;
        padding: 10px 12px;
        font-size: 12px;
      }
    }

/* ===== 3/6 · floorComparisonStyles ===== */
.floor-comparison{margin-top:20px;padding:20px;border:1px solid #e1e8f2;border-radius:14px;background:#fff!important}.floor-comparison-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:12px}.floor-comparison h4{font-size:17px;margin:0}.floor-comparison p,.floor-budget-note{font-size:12px;color:#65768d;line-height:1.6}.floor-compare-table{width:100%;border-collapse:collapse;font-size:13px}.floor-compare-table th,.floor-compare-table td{padding:12px 10px;border-bottom:1px solid #e8edf5;text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.floor-compare-table th:first-child,.floor-compare-table td:first-child{text-align:left;white-space:normal;min-width:95px}.floor-compare-table th{font-size:11px;color:#6a7d95;background:#f7faff}.floor-compare-table .floor-actual{color:#246bfd}.floor-compare-table .floor-positive{color:#13986d}.floor-compare-table .floor-negative{color:#dc4c56}.floor-category-row td{font-size:12px;background:#fbfcff;padding-top:9px;padding-bottom:9px}.floor-category-row td:first-child{padding-left:28px}.floor-compare-table tfoot{font-weight:800;background:#f4f8ff}.floor-unassigned{background:#fff9ef}.floor-expand{padding:0;border:0;background:transparent;color:#334f70;font:inherit;font-weight:750;cursor:pointer;min-height:28px;text-align:left}.floor-expand:focus-visible{outline:2px solid #246bfd;outline-offset:3px}.project-floor-toggle{border-top:1px solid #e8edf5;margin-top:15px;padding-top:12px}.project-floor-toggle>summary{color:#246bfd;font-size:12px;font-weight:750;cursor:pointer}.project-floor-toggle .floor-compare-table{font-size:11px}.project-floor-toggle .floor-compare-table th,.project-floor-toggle .floor-compare-table td{padding:9px 4px}.floor-budget-modal .modal-box{width:min(1100px,96vw);max-height:92dvh;display:flex;flex-direction:column;overflow:hidden}.floor-budget-modal .modal-head{flex-shrink:0}.floor-budget-modal form{overflow:auto;padding:20px;min-height:0}.floor-budget-modal .form-actions{position:sticky;bottom:-20px;padding:16px 0;background:#fff;z-index:2}.floor-budget-grid{max-height:55dvh;overflow:auto;border:1px solid #e1e8f2;border-radius:10px}.floor-budget-grid thead{position:sticky;top:0;z-index:1}.floor-budget-grid input{width:135px;max-width:100%;padding:9px;border:1px solid #dbe4f1;border-radius:6px;text-align:right;font:inherit}.floor-budget-grid tfoot td{background:#f4f8ff}.floor-budget-note strong{color:#2f4f76}.floor-budget-error{color:#c73d4d;font-size:12px;min-height:18px}.floor-budget-summary{margin:12px 0;font-size:13px;font-weight:700}.floor-comparison .table-wrap{overflow:auto}.floor-budget-filter{margin:0 0 12px;display:flex;gap:8px;align-items:center;font-size:12px;color:#526b8a}.floor-budget-filter select{padding:8px;border:1px solid #dbe4f1;border-radius:7px;background:#fff}.floor-tag{display:inline-block;padding:3px 6px;margin-left:7px;border-radius:5px;background:#edf4ff;color:#3266a8;font-size:11px}
@media(max-width:760px){.floor-comparison{padding:14px}.floor-comparison h4{font-size:15px}.floor-compare-table{font-size:12px}.floor-compare-table th,.floor-compare-table td{padding:10px 7px}.floor-budget-modal form{padding:14px}.floor-budget-modal .form-actions{bottom:-14px}.floor-budget-modal .modal-box{width:96vw}.floor-budget-grid input{width:112px;min-height:40px}}

/* ===== 4/6 ===== */
.budget-floor-controls{display:flex;align-items:center;flex-wrap:wrap;gap:16px;padding:18px 0}
.budget-floor-controls label{display:flex;gap:10px;align-items:center}
.budget-floor-controls select{max-width:100%;padding:10px;border:1px solid #dce5f1;border-radius:8px}
.budget-floor-summary{padding:14px 0}.budget-floor-summary summary{cursor:pointer;font-weight:700}
.budget-floor-summary .table{min-width:680px}
.budget-floor-category-total{padding:10px 16px;background:#eef5ff;color:#245690;font-weight:600}
#floorBudgetModal{z-index:2400}
@media(max-width:600px){.budget-floor-controls{align-items:stretch;flex-direction:column}.budget-floor-controls label{flex-direction:column;align-items:stretch}}
@media print{.budget-floor-controls{display:none!important}}
/* Tick boxes inside form fields keep their own small size (the field rule stretches inputs to full width). */
.field input[type=checkbox],.field input[type=radio]{width:18px;height:18px;min-width:18px;padding:0;margin:0;flex:0 0 auto;accent-color:#246bfd}
.member-option{min-width:0;max-width:100%;line-height:1.35}.member-option span{min-width:0;overflow-wrap:anywhere}
html.theme-dark .member-option{background:#1a2533;border-color:#33435a;color:#dde6f1}html.theme-dark .member-option small{color:#9fb0c4}
/* Dark theme gaps found by a full scan: white boxes holding light text, dark text on dark cards, white bar tracks. */
html.theme-dark .modal .close{background:#222e3e;border-color:#33435a;color:#cfdbea}
html.theme-dark :is(.daily-worker-total,.daily-issue-toggle,.progress-preview,.budget-allocation,.progress-counts>div,.mer-stats>div){background:#1a2533!important;border-color:#33435a!important;color:#dde6f1}
html.theme-dark :is(.daily-issue-toggle,.progress-counts>div,.mer-stats>div) :is(b,strong,small,span){color:inherit}
html.theme-dark .danger-zone{background:#2a1a20!important;border-color:#6a2c38!important;color:#f3c9cf}
html.theme-dark :is(.ds-bar,.mp-bar,.progress-work-track,.mp-overall i){background:#2a3748!important}
html.theme-dark #director-screen .ds-bar em{background:#e8f0fb}
html.theme-dark #director-screen :is(.ds-big,.ds-card h3,.ds-card strong){color:#e8f0fb}
html.theme-dark #director-screen :is(.ds-line,.ds-line span,.ds-card small){color:#b8c7d9}
html.theme-dark :is(.ds-stats>div,.mp-summary>span,.schedule-summary>span){background:#1a2533!important;border-color:#33435a!important;color:#c4d1e0!important}
html.theme-dark .mp-summary>span.ok{background:#12342a!important;color:#86dcb6!important}html.theme-dark .mp-summary>span.late{background:#3a1c23!important;color:#f3a9b4!important}
html.theme-dark :is(.ds-stats>div,.mp-summary>span,.schedule-summary>span) b{color:inherit!important}
html.theme-dark .rg-head .rg-badge{background:#23365a;color:#b9cffc}
html.theme-dark #app .team-contact a{color:#8fb4ff!important}
html.theme-dark #director-screen .ds-big span{color:#b8c7d9}
html.theme-dark #monthEndPrintSheet .mer-stats>div{background:#fff!important;color:#0f2238;border-color:#dde6ef!important}
/* Role guide: what each person does in the system, shown at sign-in and on the Help page. */
.rg-dialog{width:min(640px,calc(100vw - 24px));max-height:calc(100vh - 40px);padding:0;border:0;border-radius:16px;box-shadow:0 24px 60px rgba(10,30,60,.3)}
.rg-dialog::backdrop{background:rgba(8,20,40,.55)}
.rg-dialog .rg-body{padding:22px 22px 8px;overflow:auto;max-height:calc(100vh - 150px)}
.rg-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:14px 22px;border-top:1px solid #e3eaf3;background:#f7f9fc}
.rg-foot label{display:flex;align-items:center;gap:8px;font-size:13px;color:#40536c;cursor:pointer}.rg-foot label input{width:18px;height:18px;margin:0}
.rg-head{display:flex;gap:12px;align-items:center;margin-bottom:6px}.rg-head .rg-badge{flex:0 0 auto;padding:4px 10px;border-radius:999px;background:#e8f0ff;color:#1d4fd7;font-size:12px;font-weight:700}
.rg-head h2{margin:0;font-size:19px;color:#173b6a}
.rg-intro{margin:4px 0 12px;color:#5b6f88;font-size:13px;line-height:1.6}
.rg-step{display:flex;gap:10px;align-items:flex-start;padding:11px 0;border-top:1px solid #edf1f6;color:#40536c;font-size:13px;line-height:1.55}.rg-step:first-of-type{border-top:0}
.rg-step>b{display:grid;flex:0 0 25px;width:25px;height:25px;place-items:center;border-radius:50%;color:#fff;background:#246bfd;font-size:11px}
.rg-step>div{flex:1}.rg-step strong{display:block;color:#173b6a;font-size:14px;margin-bottom:2px}
.rg-go{flex:0 0 auto;border:1px solid #c9d8f2;background:#fff;color:#1d4fd7;border-radius:8px;padding:5px 10px;font-size:12px;font-weight:600;cursor:pointer;white-space:nowrap}.rg-go:hover{background:#eef4ff}
.rg-tips{margin:10px 0 6px;padding:12px 14px;border-radius:10px;background:#f4f8ff;color:#45617f;font-size:12.5px;line-height:1.65}.rg-tips b{color:#173b6a}.rg-tips ul{margin:4px 0 0;padding-left:18px}
#roleGuide{margin-bottom:22px}.rg-section-title{margin:6px 0 12px;font-size:16px;color:#173b6a}
.update-bar{position:fixed;left:50%;bottom:calc(16px + env(safe-area-inset-bottom));transform:translateX(-50%);z-index:2500;display:flex;align-items:center;gap:12px;width:min(560px,calc(100vw - 24px));padding:12px 12px 12px 16px;border-radius:14px;background:#10243e;color:#fff;box-shadow:0 14px 40px rgba(8,20,40,.35);font-size:13px;line-height:1.45}
.update-bar>div{flex:1;min-width:0}.update-bar b{display:block;font-size:14px}.update-bar span{display:block;color:#c9d7ea;font-size:12px}
.update-bar .primary{flex:0 0 auto;padding:9px 14px;border-radius:9px;white-space:nowrap}
.update-bar-close{flex:0 0 auto;width:32px;height:32px;border:0;border-radius:8px;background:transparent;color:#c9d7ea;font-size:20px;cursor:pointer}
html.theme-dark .update-bar{background:#22324a}
html.theme-dark .rg-dialog,html.theme-dark .rg-foot{background:#16212f;color:#dde6f1;border-color:#2a3a4f}html.theme-dark :is(.rg-head h2,.rg-step strong,.rg-tips b){color:#e8f0fb}html.theme-dark :is(.rg-step,.rg-intro,.rg-foot label,.rg-tips){color:#c4d1e0}html.theme-dark .rg-tips{background:#1c2a3c}html.theme-dark .rg-step{border-color:#2a3a4f}html.theme-dark .rg-go{background:#1c2a3c;border-color:#34507a;color:#8fb4ff}

/* ===== 5/6 ===== */
    /* Зарцуулалтын цэсийн гарчиг болон нэмэх товч нь жагсаалттай хамт алга болохгүй. */
    #expenses .title-row {
      position: sticky;
      top: 76px;
      z-index: 20;
      margin: -14px -14px 18px;
      padding: 14px;
      background: rgba(247, 249, 252, .97);
      box-shadow: 0 8px 14px rgba(25, 52, 88, .08);
      backdrop-filter: blur(10px);
    }
    @media (max-width: 760px) {
      #expenses .title-row { top: 62px; margin: -10px -6px 16px; padding: 10px 6px; }
    }
    .dashboard-project-stream { position:relative; overflow:hidden; padding:0 18px 18px; }
    .dashboard-project-slider-track { display:flex; transition:transform .55s cubic-bezier(.22,.75,.25,1); will-change:transform; }
    .dashboard-project-stream-card { box-sizing:border-box; min-width:100%; min-height:438px; display:grid; align-content:start; gap:15px; padding:23px 70px; border:1px solid #e1e8f1; border-radius:13px; background:linear-gradient(135deg,#fff,#f7faff); cursor:pointer; transition:.16s ease; }
    .dashboard-project-stream-card:hover,.dashboard-project-stream-card:focus-visible { border-color: #aac5fb; box-shadow: 0 8px 19px rgba(36,107,253,.12); outline: 0; transform: translateY(-1px); }
    .dashboard-project-stream-head { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; }
    .dashboard-project-stream-summary { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
    .dashboard-project-stream-code { display:inline-flex; padding:4px 7px; border-radius:5px; color:#41618a; background:#eaf1fb; font-size:10px; font-weight:800; letter-spacing:.35px; }
    .dashboard-project-stream-card h3 { margin:9px 0 4px; color:#243851; font-size:22px; letter-spacing:-.55px; }
    .dashboard-project-stream-card small { color:var(--muted); font-size:13px; }
    .dashboard-project-stream-summary span { display:block; color:var(--muted); font-size:13px; }
    .dashboard-project-stream-summary b { display:block; margin-top:5px; color:#334b6a; font-size:clamp(18px,1.35vw,23px); line-height:1.15; letter-spacing:-.35px; white-space:nowrap; }
    .dashboard-project-stream-summary .remaining b { color:#13986d; }
    .dashboard-project-stream-progress-label { display:flex; justify-content:space-between; color:#61738b; font-size:10px; }
    .dashboard-project-stream-card .progress { margin-top:6px; }
    .dashboard-project-stream-category-breakdown { padding-top:11px; border-top:1px solid #e7edf5; }
    .dashboard-project-stream-category-caption { display:flex; justify-content:space-between; gap:10px; margin-bottom:8px; color:#697b91; font-size:10px; }.dashboard-project-stream-category-caption strong { color:#344f72; font-size:11px; }.dashboard-project-stream-category-caption span { text-align:right; }
    .dashboard-project-stream-category-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
    .dashboard-project-stream-category { min-width:0; padding:9px 10px; border:1px solid #e5ecf5; border-radius:9px; background:#fff; }.dashboard-project-stream-category.over-budget { border-color:#f2c8cd; background:#fff8f8; }
    .dashboard-project-stream-category-head { display:flex; align-items:center; justify-content:space-between; gap:8px; color:#526882; font-size:11px; }.dashboard-project-stream-category-head strong { color:#435c7c; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.dashboard-project-stream-category-head b { color:#536e91; font-size:10px; }.dashboard-project-stream-category.over-budget .dashboard-project-stream-category-head b { color:#dc4c56; }
    .dashboard-project-stream-category-values { display:grid; grid-template-columns:1fr 1fr; gap:7px; margin-top:7px; }.dashboard-project-stream-category-values span { min-width:0; color:#8290a1; font-size:9px; }.dashboard-project-stream-category-values b { display:block; margin-top:2px; color:#475f7d; font-size:11px; line-height:1.2; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }.dashboard-project-stream-category-variance { display:flex; justify-content:space-between; gap:8px; margin-top:7px; color:#8290a1; font-size:9px; }.dashboard-project-stream-category-variance b { color:#60758e; font-size:10px; }.dashboard-project-stream-category.over-budget .dashboard-project-stream-category-variance b { color:#dc4c56; }
    .dashboard-project-slider-dots { display:flex; justify-content:center; gap:7px; padding-top:12px; }
    .dashboard-project-slider-dot { width:7px; height:7px; padding:0; border:0; border-radius:99px; background:#cfd9e7; cursor:pointer; transition:.18s ease; }
    .dashboard-project-slider-dot.active { width:21px; background:#246bfd; }
    .dashboard-project-slider-control { position:absolute; z-index:2; top:50%; width:38px; height:38px; padding:0; border:1px solid #d8e2f0; border-radius:99px; color:#245cae; background:rgba(255,255,255,.94); box-shadow:0 4px 12px rgba(32,70,120,.14); font-size:18px; line-height:1; cursor:pointer; transform:translateY(-50%); }
    .dashboard-project-slider-control:hover { color:#fff; border-color:#246bfd; background:#246bfd; }.dashboard-project-slider-control.prev { left:29px; }.dashboard-project-slider-control.next { right:29px; }
    .project-budget-compare { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; margin:16px 0 10px; padding:11px; border:1px solid #e3eaf3; border-radius:10px; background:#f8fbff; }
    .project-budget-compare-cell { min-width:0; padding:4px 5px; }.project-budget-compare-cell span { display:block; color:#718198; font-size:10px; }.project-budget-compare-cell b { display:block; margin-top:4px; color:#334b6a; font-size:13px; line-height:1.2; word-break:break-word; }.project-budget-compare-cell.actual b { color:#246bfd; }.project-budget-compare-cell.positive b { color:#13986d; }.project-budget-compare-cell.negative b { color:#dc4c56; }
    .project-budget-comparison-caption { display:flex; justify-content:space-between; gap:8px; margin:0 1px 7px; color:#65768d; font-size:10px; }.project-budget-comparison-caption strong { color:#365273; }
    .project-category-compare { display:grid; gap:0; padding-top:12px; }.project-category-compare-labels,.project-category-compare-row { display:grid; grid-template-columns:minmax(74px,1.15fr) repeat(3,minmax(0,1fr)); column-gap:8px; }.project-category-compare-labels { padding:0 0 6px; color:#8492a4; font-size:9px; }.project-category-compare-labels span:not(:first-child) { text-align:right; }.project-category-compare-row { padding:9px 0 8px; border-top:1px solid #edf1f5; }.project-category-compare-name { min-width:0; color:#53657b; font-size:10px; }.project-category-compare-name strong { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:#4a6381; }.project-category-compare-name small { display:block; margin-top:3px; color:#617891; font-size:9px; }.project-category-compare-value { min-width:0; text-align:right; }.project-category-compare-value span { display:none; }.project-category-compare-value b { display:block; color:#61758d; font-size:10px; line-height:1.2; overflow-wrap:anywhere; }.project-category-compare-value.actual b { color:#246bfd; }.project-category-compare-value.variance b { color:#13986d; }.project-category-compare-row.over-budget .project-category-compare-name small,.project-category-compare-row.over-budget .project-category-compare-value.variance b { color:#dc4c56; }.project-category-compare-row .progress { grid-column:1/-1; height:6px; margin-top:7px; }
    @media (max-width:760px) { .project-budget-compare { gap:4px; padding:8px; }.project-budget-compare-cell { padding:3px; }.project-budget-compare-cell span { font-size:9px; }.project-budget-compare-cell b { font-size:11px; }.project-category-compare-labels,.project-category-compare-row { grid-template-columns:minmax(66px,1.05fr) repeat(3,minmax(0,1fr)); column-gap:5px; }.project-category-compare-labels { font-size:8px; }.project-category-compare-name { font-size:10px; }.project-category-compare-value b { font-size:9px; }.project-category-compare-row { padding:9px 0; } }
    @media (max-width: 760px) { .dashboard-project-stream { padding:0 12px 12px; }.dashboard-project-stream-card { min-height:0; padding:20px 56px; }.dashboard-project-stream-card h3 { font-size:20px; }.dashboard-project-stream-card small { font-size:12px; }.dashboard-project-stream-summary { grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px 12px; }.dashboard-project-stream-summary .remaining { grid-column:span 2; }.dashboard-project-stream-summary span { font-size:11px; }.dashboard-project-stream-summary b { font-size:18px; white-space:normal; }.dashboard-project-stream-category-grid { grid-template-columns:1fr; }.dashboard-project-stream-category-caption { align-items:flex-start; flex-direction:column; gap:2px; }.dashboard-project-stream-category-caption span { text-align:left; }.dashboard-project-slider-control { width:34px; height:34px; }.dashboard-project-slider-control.prev { left:18px; }.dashboard-project-slider-control.next { right:18px; } }
    /* UI polish: quiet sidebar group titles, compact brand, line icons, budget warning, phone layout. */
    aside .nav-label.nav-label-accent:not(#expenseCategoryLabel){display:block!important;margin:16px 0 3px!important;padding:2px 14px!important;min-height:0!important;height:auto!important;max-height:none!important;line-height:16px!important;overflow:visible!important;flex-shrink:0!important;border:0!important;border-radius:0!important;background:none!important;box-shadow:none!important;color:rgba(214,228,247,.58)!important;font-size:10px!important;font-weight:750!important;letter-spacing:1.1px!important}
    aside .nav-label.nav-label-accent:not(#expenseCategoryLabel)::before,aside .nav-label.nav-label-accent:not(#expenseCategoryLabel)::after{display:none!important}
    .sidebar .brand-home{padding:0 10px 10px}.sidebar .brand-home .brand-logo{height:58px;padding:4px 7px;border-radius:8px}
    aside .workspace{margin:0 10px 6px!important;padding:0!important;border:0!important;background:none!important}aside .workspace small{display:none}aside .workspace strong{margin:0;color:rgba(255,255,255,.82);font-size:11px;font-weight:650}
    .ico{display:inline-flex;width:1.05em;height:1.05em;vertical-align:-.16em;flex-shrink:0}.ico svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
    .stat-value.stat-bad{color:#dc4c56}.stat-note.stat-bad{color:#dc4c56;font-weight:650}.stat-note.stat-warn{color:#c0700f;font-weight:650}
    /* Softer, less glaring surfaces inside the app (no pure white). */
    body:has(#app[style*="grid"]),body:has(#app:not([style*="none"])){background:#e3e8ef}
    #app{--canvas:#e3e8ef;--white:#f4f6f9;--line:#d7dee8;--surface:#f4f6f9;--surface-2:#ecf0f5;background:#e3e8ef}
    #app .content{background:transparent}
    #app .topbar{background:rgba(236,240,245,.94)!important;border-bottom-color:#d3dbe6!important}
    #app .card,#app .stat,#app .todo-board,#app .pd-card,#app .list-card,#app .performance-panel,#app .project-card,#app .inv-request,#app .mp-overall,#app .todo-item.info,#app .ds-panel,#app .project-expense-head,#app .help-guide,#app .profile-photo-edit,#app .mer-section,#app .mer-employee-options,#app #monthEndEmployeeSummary,#app .gantt-card,#app .settings-item,#app .team-member{background:var(--surface)!important;border-color:var(--line)!important}
    #app input:not([type=checkbox]):not([type=radio]),#app select,#app textarea{background-color:#f8f9fb!important;border-color:#cfd8e3!important}
    #app button.secondary,#app .secondary,#app .notification,#app .app-refresh,#app .month{background:#eef2f6!important}
    #app table th{background:#e9eef4!important}#app table td{background:transparent}
    .modal .modal-box,.modal-box{background:#f4f6f9!important}
    .pd-setup{border-left:4px solid #e98622!important}.pd-setup h4 small{color:#8a6a3a}
    .pd-setup-bar{height:6px;margin:6px 0 4px;overflow:hidden;border-radius:6px;background:#dfe5ee}.pd-setup-bar span{display:block;height:100%;border-radius:6px;background:#e98622}
    .pd-setup-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:8px;margin-top:8px}
    .pd-setup-step{display:flex;align-items:center;gap:10px;width:100%;padding:9px 11px;border:1px solid var(--line);border-radius:10px;background:#fff7ec;color:inherit;text-align:left;font:inherit}
    .pd-setup-step:not(:disabled):hover{border-color:#e98622}.pd-setup-step i{display:grid;flex:0 0 22px;height:22px;place-items:center;border:2px solid #e2a35c;border-radius:50%;font-style:normal;font-size:12px;font-weight:800}
    .pd-setup-step span{flex:1;min-width:0}.pd-setup-step b{display:block;font-size:13px}.pd-setup-step small{display:block;color:var(--muted);font-size:11px}.pd-setup-step em{color:#c0700f;font-style:normal;font-weight:800}
    .pd-setup-step.done{background:transparent;opacity:.75;cursor:default}.pd-setup-step.done i{border-color:#13986d;background:#13986d;color:#fff}
    /* Project cards: less empty space, readable type, one column on phones. */
    #projectCards.project-cards,#completedProjectCards.project-cards{grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:14px}
    #app .project-card{display:flex;flex-direction:column;padding:16px 18px}
    #app .project-card .project-badge{font-size:12px;padding:4px 8px}#app .project-card .project-status{font-size:11px;padding:4px 8px}
    #app .project-card h3{margin:10px 0 2px;font-size:18px;line-height:1.25}
    #app .project-card>p{min-height:0;margin:0 0 2px;font-size:13px}
    #app .project-card .project-budget-compare{margin:12px 0 8px;padding:10px 12px;gap:6px}
    #app .project-card .project-budget-compare-cell span{font-size:12px}#app .project-card .project-budget-compare-cell b{font-size:16px;margin-top:2px}
    #app .project-card .project-budget-comparison-caption{font-size:12px;margin:0 1px 5px}
    #app .project-card>.progress{height:7px;margin:0 0 4px}
    #app .project-card .project-category-compare{padding-top:6px}
    #app .project-card .project-category-compare-labels{font-size:11px;padding:4px 0}
    #app .project-card .project-category-compare-row{padding:7px 0 6px}
    #app .project-card .project-category-compare-name{font-size:12px}#app .project-card .project-category-compare-name strong{font-size:13.5px}#app .project-card .project-category-compare-name small{font-size:11.5px;margin-top:1px}
    #app .project-card .project-category-compare-value b{font-size:13px}
    #app .project-card .project-category-compare-row .progress{height:5px;margin-top:5px}
    #app .project-card .ps-strip{margin:10px 0 0;padding:9px 11px}
    #app .project-card .ps-strip,#app .project-card .ps-strip :is(span,b,small){font-size:13px}#app .project-card .ps-progress-head b{font-size:17px}
    #app .project-card .project-card-foot{margin-top:auto;padding-top:11px;font-size:12.5px}#app .project-card .project-card-foot .project-detail-link{font-size:14px}
    #app .project-card .ps-strip+.project-card-foot,#app .project-card .project-card-foot{border-top:1px solid var(--line)}
    #app .project-card .ps-strip{margin-bottom:12px}
    @media(max-width:760px){
      #projectCards.project-cards,#completedProjectCards.project-cards{grid-template-columns:1fr;gap:12px}
      #app .project-card{padding:14px}
      #app .project-card .project-budget-compare-cell span{font-size:11.5px}#app .project-card .project-budget-compare-cell b{font-size:15px}
      #app .project-card .project-category-compare-labels,#app .project-card .project-category-compare-row{grid-template-columns:minmax(86px,1.2fr) repeat(3,minmax(0,1fr));column-gap:6px}
      #app .project-card .project-category-compare-labels{font-size:10.5px}#app .project-card .project-category-compare-value b{font-size:12.5px}
    }
    .theme-toggle{display:inline-grid;width:44px;height:44px;place-items:center;flex-shrink:0;border:1px solid #d9e3f1;border-radius:10px;color:#1f58af;background:#fff;cursor:pointer}.theme-toggle svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
    @media(max-width:760px){
      #dashboard>.title-row{gap:8px!important;margin-bottom:12px!important}
      #dashboard .dashboard-greeting{font-size:21px!important;line-height:1.25}#dashboard .dashboard-greeting-name{font-size:.86em}
      #dashboard>.title-row p{display:none}#dashboard .dashboard-refreshed{font-size:11px}
      #dashboard>.title-row .detail-actions{display:none!important}
      .app-refresh span{display:none}.app-refresh{padding:8px 11px}
      .topbar .crumb>span,.topbar .crumb{font-size:0}.topbar .crumb strong{font-size:16px}
      .content{padding-bottom:calc(96px + env(safe-area-inset-bottom))!important}
    }
    /* Dark theme (button in the top bar; remembered per device). */
    html.theme-dark{color-scheme:dark}
    html.theme-dark body{background:#111923!important}
    html.theme-dark #app,html.theme-dark .modal{--ink:#dde6f1;--muted:#97a7bb;--line:#2b394c;--canvas:#111923;--white:#1a2432;--surface:#1a2432;--surface-2:#222e3e;--blue-soft:#1d2d47;--green-soft:#163126;--orange-soft:#33261a;color:#dde6f1}
    html.theme-dark #app{background:#111923}
    html.theme-dark #app .sidebar{background:#0d1622!important}
    html.theme-dark #app .topbar{background:rgba(20,29,41,.95)!important;border-bottom-color:#263345!important}
    html.theme-dark #app .content :is(h1,h2,h3,h4,h5,strong,b,th,td,label,p,li,dt,dd,summary,legend,.crumb strong,.stat-value):not(.primary):not([class*=badge]):not([class*=chip]):not(.warn):not(.stat-bad){color:#dde6f1}
    html.theme-dark #app .content :is(small,.stat-note,.stat-header,.muted,.pd-note,.empty-state,.pd-empty,.title-row p,.dashboard-refreshed,.project-expense-meta,.dashboard-greeting-name):not(.stat-bad):not(.stat-warn):not([class*=badge]):not([class*=chip]){color:#97a7bb}
    html.theme-dark #app .topbar :is(.crumb,.crumb strong,.global-project-picker span){color:#dde6f1}
    html.theme-dark #app :is(.card,.stat,.todo-board,.pd-card,.list-card,.performance-panel,.project-card,.inv-request,.mp-overall,.ds-panel,.project-expense-head,.help-guide,.profile-photo-edit,.mer-section,.mer-employee-options,#monthEndEmployeeSummary,.gantt-card,.settings-item,.team-member,.detail-stat,.report-note,.project-detail-page-card,.performance-hero,.dashboard-project-stream,.dashboard-project-stream-card,.project-budget-compare,.drd-fact,.pd-row,.todo-item){background:#1a2432!important;border-color:#2b394c!important;color:#dde6f1}
    html.theme-dark :is(.modal .modal-box,.modal-box,.quick-menu,.notification-panel,#notificationPanel){background:#1a2432!important;border-color:#2b394c!important;color:#dde6f1}
    html.theme-dark .modal-box :is(h2,h3,h4,b,strong,label,td,th,p,span:not([class*=badge]):not([class*=chip])){color:inherit}
    html.theme-dark :is(#app,.modal) :is(input:not([type=checkbox]):not([type=radio]),select,textarea){background-color:#111923!important;border-color:#33435a!important;color:#dde6f1!important}
    html.theme-dark :is(#app,.modal) :is(button.secondary,.secondary,.notification,.app-refresh,.month,.theme-toggle,.pd-tabs button,.pd-setup-step){background:#222e3e!important;border-color:#33435a!important;color:#cfdbea!important}
    html.theme-dark :is(#app,.modal) :is(.pd-tabs button.active,[role=tablist] button.active){background:#2b5bd1!important;color:#fff!important}
    html.theme-dark :is(#app,.modal) table th{background:#222e3e!important;color:#b8c6d8!important}
    html.theme-dark :is(#app,.modal) table td,html.theme-dark :is(#app,.modal) table tr{background:transparent!important;border-color:#2b394c!important}
    html.theme-dark :is(#app,.modal) :is(hr,.pd-row,.table td,.table th){border-color:#2b394c!important}
    html.theme-dark #app .todo-item.warn,html.theme-dark #app .todo-item.urgent,html.theme-dark #app .pd-setup-step:not(.done){background:#2a2219!important}
    html.theme-dark #app .pd-setup-bar,html.theme-dark #app .ps-bar,html.theme-dark #app .progress{background:#2b394c!important}
    html.theme-dark #app .ps-badge.none,html.theme-dark #app .ps-chip{background:#263345!important;color:#c3d0e0!important}
    html.theme-dark #app :is(.ps-strip,#expenses .title-row,.ds-card,.help-video-note,.mer-empty,.fc-head,.performance-state,.profile-role,.performance-track){background:#222e3e!important;border-color:#2b394c!important;color:#dde6f1!important}
    html.theme-dark #app .content button:not([class]),html.theme-dark #app .content [role=tablist] button:not(.active){background:#222e3e!important;border-color:#33435a!important;color:#cfdbea!important}
    html.theme-dark #app .content a:not(.primary):not(.secondary):not([class*=badge]){color:#8fb4ff}
    html.theme-dark #app :is(.help-guide span,.ds-clock,td){color:#dde6f1}
    html.theme-dark :is(#app,.modal) .inv-chip{background:color-mix(in srgb,var(--chip,#2563eb) 28%,#1a2432)!important;color:color-mix(in srgb,var(--chip,#2563eb) 45%,#fff)!important}
    html.theme-dark #app img.brand-logo{background:#fff}
    html.theme-dark .theme-toggle .sun{display:block}html.theme-dark .theme-toggle .moon,.theme-toggle .sun{display:none}
    /* ХАБЭА */
    .sf-danger{background:#dc4c56;color:#fff;border:0;border-radius:10px;padding:10px 16px;font-weight:700;cursor:pointer}.sf-danger:hover{background:#c43842}
    .sf-tabs{margin:4px 0 14px}.sf-pane[hidden]{display:none}
    .sf-hero{display:grid;grid-template-columns:220px 1fr;gap:14px;margin-bottom:14px}
    .sf-free{background:linear-gradient(160deg,#13805c,#0f6b4d);color:#fff;border-radius:16px;padding:18px;display:flex;flex-direction:column;justify-content:center;gap:2px}
    .sf-free b{font-size:52px;line-height:1;font-weight:800}.sf-free span{font-size:15px;font-weight:700;opacity:.9}.sf-free small{opacity:.85;font-size:12.5px}
    .sf-stats{margin:0;grid-template-columns:repeat(2,minmax(0,1fr))}
    .sf-board-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:14px}
    .sf-table td{vertical-align:top}
    .sf-bar{display:grid;grid-template-columns:minmax(0,1fr) 40% 28px;align-items:center;gap:8px;margin:8px 0;font-size:13.5px}.sf-bar i{display:block;height:10px;border-radius:6px;background:#c97913}.sf-bar b{text-align:right}
    .sf-list{display:flex;flex-direction:column;gap:10px;padding:4px 0}
    .sf-item{border:1px solid var(--line,#dfe4ec);border-radius:12px;padding:12px 14px;background:var(--surface,#fff)}
    .sf-item.sf-high{border-left:4px solid #dc4c56}.sf-item.sf-late{background:color-mix(in srgb,#dc4c56 6%,var(--surface,#fff))}
    .sf-item-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.sf-item-head small{color:var(--muted)}
    .sf-count{text-align:center;min-width:52px}.sf-count b{display:block;font-size:22px;line-height:1}.sf-count small{color:var(--muted)}
    .sf-score{white-space:nowrap;font-size:15px}
    .sf-text{margin:8px 0 4px;font-size:14.5px;white-space:pre-wrap}.sf-meta{margin:4px 0;font-size:13.5px}
    .sf-fix{margin:6px 0;padding:8px 10px;border-radius:8px;background:color-mix(in srgb,#13986d 9%,transparent);font-size:13.5px}
    .sf-item-foot{display:flex;justify-content:space-between;align-items:flex-end;gap:10px;margin-top:8px;flex-wrap:wrap}
    .sf-photos{display:flex;gap:8px}.sf-photo img{width:72px;height:72px;object-fit:cover;border-radius:8px;border:1px solid var(--line,#dfe4ec);display:block}
    .sf-mini{padding:7px 12px;font-size:13px}
    .sf-names summary{cursor:pointer;color:var(--muted);font-size:13px;margin-top:6px}.sf-names p{margin:6px 0 0;font-size:13.5px}
    .sf-check-items{list-style:none;padding:0;margin:8px 0 0;font-size:13.5px}.sf-check-items li{display:flex;gap:8px;padding:3px 0}.sf-check-items li span{width:16px;font-weight:800}
    .sf-r-ok span{color:#13986d}.sf-r-bad{color:#c43842}.sf-r-na{color:var(--muted)}
    .sf-modal{max-width:640px}.sf-alert{background:color-mix(in srgb,#dc4c56 9%,transparent);padding:10px 12px;border-radius:10px}
    .sf-check{display:flex;flex-direction:column;gap:8px;margin:12px 0}
    .sf-check-row{border:1px solid var(--line,#dfe4ec);border-radius:10px;padding:10px;display:flex;flex-direction:column;gap:8px}.sf-check-row>span{font-weight:600;font-size:14px}
    .sf-check-row[data-result=bad]{border-color:#dc4c56;background:color-mix(in srgb,#dc4c56 6%,transparent)}.sf-check-row[data-result=ok]{border-color:#13986d}
    .sf-seg{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.sf-seg label{display:flex;align-items:center;justify-content:center;gap:4px;min-height:40px;border:1px solid var(--line,#dfe4ec);border-radius:8px;cursor:pointer;font-size:13px;font-weight:600;text-align:center;padding:4px}
    .sf-seg input{position:absolute;opacity:0;pointer-events:none}.sf-seg label:has(input:checked).sf-ok{background:#13986d;color:#fff;border-color:#13986d}.sf-seg label:has(input:checked).sf-bad{background:#dc4c56;color:#fff;border-color:#dc4c56}.sf-seg label:has(input:checked).sf-na{background:#7b8797;color:#fff;border-color:#7b8797}
    @media(max-width:760px){.sf-hero,.sf-board-grid{grid-template-columns:1fr}.sf-free{flex-direction:row;flex-wrap:wrap;align-items:baseline;gap:6px 10px}.sf-free b{font-size:44px}.sf-free small:last-child{flex-basis:100%}.sf-quick{display:grid!important;grid-template-columns:1fr 1fr;gap:8px;width:100%}.sf-quick button{width:100%}.sf-tabs{overflow-x:auto;flex-wrap:nowrap}.sf-tabs button{white-space:nowrap}}
    /* Гэрээгүй гүйцэтгэл */
    .sa-summary{display:flex;flex-wrap:wrap;gap:8px 18px;margin:0 0 12px;font-size:14px;color:var(--muted)}.sa-summary b{color:var(--text,#172033)}
    .sa-table td{vertical-align:top}.sa-table small{color:var(--muted)}
    .sa-kind{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px}.sa-kind label{cursor:pointer}.sa-kind input{position:absolute;opacity:0;pointer-events:none}
    .sa-kind span{display:flex;flex-direction:column;gap:2px;border:1.5px solid var(--line,#dfe4ec);border-radius:12px;padding:10px 12px;height:100%}.sa-kind span small{color:var(--muted);font-size:12px}
    .sa-kind label:has(input:checked) span{border-color:#2563eb;background:color-mix(in srgb,#2563eb 8%,transparent)}
    .modal-box.sa-box{width:min(940px,96vw);max-width:none}
    .sa-lines-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;margin:14px 0 6px}.sa-lines-head small{color:var(--muted)}
    .sa-lines input{width:100%;min-width:70px}.sa-lines td:nth-child(2) input{min-width:180px}.sa-auto{background:color-mix(in srgb,var(--muted,#7b8797) 10%,transparent)!important;font-weight:700}
    .sa-bank{margin:10px 0}.sa-bank summary{cursor:pointer;font-weight:600;font-size:14px}.sa-bank summary small{color:var(--muted);font-weight:400}
    @media(max-width:640px){.sa-kind{grid-template-columns:1fr}}
    .sf-ppe-line{display:flex!important;gap:6px;margin-bottom:6px;align-items:center}.sf-ppe-line select{flex:1.4;min-width:0}.sf-ppe-line [name=pname]{flex:1;min-width:0}.sf-ppe-line [name=pqty]{width:84px;flex:none}.sf-ppe-line button{flex:none}
    .sf-report-tab{margin-left:auto}
    .ds-acts{display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:10px;font-size:14px}.ds-acts b{font-size:16px}.ds-acts .bad{color:#ff8a8a}
    .st-stats{margin-bottom:12px}.st-table td{vertical-align:top}.st-table small{color:var(--muted)}.st-done{color:#13986d;font-weight:700}.st-wait{color:#c97913;font-size:13px}.st-owe{color:#c43842}.st-muted{color:var(--muted)}
    .st-part{display:flex;gap:6px;align-items:baseline;justify-content:space-between;font-size:12.5px;margin-top:3px}.st-part .link-button{color:#c43842;font-weight:700}.st-left{display:block;margin:4px 0;color:#c97913!important}.st-btns{display:flex;gap:6px;flex-wrap:wrap;margin-top:4px}.st-btns .st-pay{padding:6px 10px;font-size:13px}
    .st-journal-sum{display:flex;flex-wrap:wrap;gap:8px 18px;align-items:baseline;padding:12px 14px;border-bottom:1px solid var(--line)}.st-journal-sum small{flex-basis:100%;color:var(--muted)}
    .st-pay{padding:6px 12px;font-size:13px;margin-top:4px}
    html.theme-dark .sf-item{background:var(--surface)}html.theme-dark .sf-free{background:linear-gradient(160deg,#0f6b4d,#0b5039)}

/* ===== 6/6 · ui-v64 ===== */
    /* v64 look: soft blue-lavender canvas, a floating blue icon rail that opens on hover (desktop), a greeting with
       quick-action cards, and number cards with small charts. Phones keep the slide-in menu. */
    #app{--canvas:#f3f5fc;background:#f3f5fc}
    #app .content .card,#app .content .stat{border:1px solid #e6eaf5!important;border-radius:18px!important;box-shadow:0 6px 22px rgba(30,60,140,.06)!important}
    #app .sidebar>*{flex-shrink:0} /* a long menu scrolls instead of squeezing rows into each other */
    /* Readable contrast (light): table headings, small times and warnings, the director screen's badges */
    #app table th{color:#55657a}
    #dashboard .dash-inbox .dash-notice time{color:#66768a}#dashboard .dash-cal .dash-cal-grid b{color:#66768a}
    #app .project-category-compare-labels span{color:#5f6f84}html.theme-dark #app .project-category-compare-labels span{color:#9fb0c6}
    #dashboard .stat-note .warn{color:#b85a0c}
    #director-screen .ds-health{text-shadow:0 1px 1px rgba(0,0,0,.25)}#director-screen .ds-card.watch .ds-health{background:#b07d00}
    #director-screen .ds-acts b.bad{color:#c62828}
    /* Readable contrast (dark) */
    html.theme-dark #app table th{color:#b8c6d8}
    html.theme-dark #app .mer-gantt td.wg-weekend{background:#1f2b3b}html.theme-dark #app .mer-gantt th.wg-weekend{background:#2c3e57!important;color:#dbe5f2}
    html.theme-dark #app .wg-table td.wg-plan{background:#e0c400}
    html.theme-dark #app .mer-same,html.theme-dark #app .ps-progress-head span,html.theme-dark #director-screen .ds-stats span{color:#9fb0c6}
    html.theme-dark #director-screen .ds-note.mid{color:#e8bd52}
    html.theme-dark #director-screen .ds-acts b.bad{color:#ff8a8a}
    html.theme-dark #dashboard .dash-cal-grid button.today{color:#fff}
    .purge-box{margin-top:18px;padding:14px 16px;border:1px solid #f1c4c8;border-radius:14px;background:#fff7f7}
    .purge-box h3{margin:0 0 6px;color:#b3261e;font-size:15px}.purge-box p{margin:0 0 10px;font-size:13px;color:#5b6676}
    .purge-row,.purge-confirm{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px;margin-bottom:10px}
    .purge-row label,.purge-confirm label{display:flex;flex-direction:column;gap:4px;font-size:12.5px;font-weight:650}
    .purge-confirm .danger{background:#d64545;color:#fff;border:0;border-radius:10px;padding:9px 16px;font-weight:700;cursor:pointer}.purge-confirm .danger:disabled{opacity:.45;cursor:not-allowed}
    html.theme-dark .purge-box{background:#2a1d22;border-color:#5a2e35}html.theme-dark .purge-box p{color:#b9c3d0}
    /* Gantt cells keep their colours over the plain table background (planned days yellow, done green, weekends grey). */
    #app .mer-gantt td.wg-weekend{background:#e9edf3}#app .mer-gantt th.wg-weekend{background:#a9bed8!important}
    #app .wg-table th.wg-now{background:#ffd8d8!important}#app .wg-table tfoot td{background:#b8cce4}
    #app .wg-table td.wg-plan{background:#ffe600}#app .wg-table td.wg-done{background:#34b36b}
    #app .content .stat-interactive{transition:transform .18s ease,box-shadow .18s ease}
    #app .content .stat-interactive:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(30,70,170,.12)!important}
    @media(min-width:761px){
      body:not(.ds-full):not(.tv-mode) .shell{grid-template-columns:100px 1fr!important}
      #app .sidebar{position:sticky;top:14px;z-index:40;align-self:start;width:76px;height:calc(100vh - 28px);margin:14px 0 14px 14px;padding:14px 10px!important;overflow-x:hidden;overflow-y:auto;scrollbar-width:none;border-radius:26px;color:#fff;background:linear-gradient(180deg,#3577ff 0%,#2557e0 55%,#1c47c4 100%)!important;box-shadow:0 18px 40px rgba(37,87,224,.32);transition:width .22s ease,box-shadow .22s ease}
      #app .sidebar::-webkit-scrollbar{display:none}
      #app .sidebar:is(:hover,:focus-within){width:268px;box-shadow:0 24px 60px rgba(20,50,140,.38)}
      #app .sidebar .brand-home{padding:0 0 10px!important;justify-content:center}
      #app .sidebar .brand-home .brand-logo{height:44px!important;width:44px;max-width:none;padding:3px!important;border-radius:12px!important;object-fit:contain;object-position:left center;transition:width .22s ease}
      #app .sidebar:is(:hover,:focus-within) .brand-home .brand-logo{width:auto;height:52px!important;max-width:200px}
      #app .sidebar .nav button{min-height:44px;justify-content:flex-start;padding:0 14px!important;border-radius:14px!important;color:rgba(255,255,255,.82)!important;gap:14px}
      #app .sidebar .nav button:not(.active):hover{background:rgba(255,255,255,.14)!important;color:#fff!important}
      #app .sidebar .nav button.active{background:#fff!important;color:#1f4fd6!important;box-shadow:0 6px 16px rgba(10,30,90,.22)!important}
      #app .sidebar .nav button.active .nav-icon svg{stroke:#1f4fd6}
      #app .sidebar .nav button>span:not(.nav-icon),#app .sidebar .nav-label,#app .sidebar .workspace,#app .sidebar .help-card,#app .sidebar #expenseCategoryLabel,#app .sidebar .profile>div{opacity:0;transition:opacity .15s ease;white-space:nowrap}
      #app .sidebar:is(:hover,:focus-within) :is(.nav button>span:not(.nav-icon),.nav-label,.workspace,.help-card,#expenseCategoryLabel,.profile>div){opacity:1;transition-delay:.08s}
      #app .sidebar:not(:hover):not(:focus-within) :is(.nav-label,.workspace,.help-card,#expenseCategoryLabel,.expense-category-nav){max-height:0!important;margin-top:0!important;margin-bottom:0!important;padding-top:0!important;padding-bottom:0!important;overflow:hidden}
      #app .sidebar:not(:hover):not(:focus-within) .nav-label{height:0!important}
      #app .sidebar:not(:hover):not(:focus-within) .nav+.nav-label,#app .sidebar:not(:hover):not(:focus-within) .nav+.nav{border-top:1px solid rgba(255,255,255,.18);margin-top:8px!important;padding-top:8px!important}
      #app .sidebar .nav-label.nav-label-accent:not(#expenseCategoryLabel){color:rgba(255,255,255,.62)!important}
      #app .sidebar .nav-count{position:absolute;left:38px;top:5px;min-width:16px;height:16px;padding:0 4px;font-size:9px}
      #app .sidebar .nav button{position:relative}
      #app .sidebar .profile{border-top-color:rgba(255,255,255,.2);padding:12px 6px 0}
      #app .sidebar .profile button{color:#fff}
      #app .sidebar:not(:hover):not(:focus-within) .profile button{display:none}
      #app .sidebar .help-card{background:rgba(255,255,255,.14);color:#e6eeff}
      #app .sidebar .help-card a{color:#fff}
      #app .topbar{margin:14px 14px 0 18px;border:1px solid #e6eaf5;border-radius:18px;background:rgba(255,255,255,.86)!important;backdrop-filter:blur(10px);box-shadow:0 6px 22px rgba(30,60,140,.05)}
      /* Less wasted room: a lower top bar with its buttons gathered on the right, tighter page headers and table rows. */
      #app .topbar{height:60px;min-height:60px;justify-content:flex-start!important;gap:12px!important;padding:0 20px!important}
      #app .topbar .global-project-picker{margin-right:auto}
      #app .content{padding-top:18px!important}
      #app .content .title-row{margin-bottom:14px!important}
      #app .content table.table td{padding:11px 16px!important}#app .content table.table th{padding:10px 16px!important}
      #daily-reports table.table :is(th,td):not(:nth-child(3)){width:1%;white-space:nowrap}
      #daily-reports table.table.no-photos :is(th,td):nth-child(7):not([colspan]){display:none}
    }
    #dashboard .dash-hero{display:grid!important;grid-template-columns:minmax(260px,1fr) minmax(0,1.6fr);align-items:stretch;gap:18px;margin-bottom:18px!important}
    #dashboard .dash-hello{display:flex;flex-direction:column;justify-content:center;gap:2px}
    #dashboard .dash-date{color:#6b7a95;font-size:12px;font-weight:650}
    #dashboard .dash-hello h1{margin:2px 0 0;font-size:32px!important;line-height:1.15!important;letter-spacing:-1px!important}
    #dashboard .dash-hello .dashboard-greeting-name{margin-left:6px;color:#2557e0!important;font-size:1em!important;font-weight:800}
    #dashboard .dash-ask{margin:0;color:#16263a;font-size:30px;font-weight:800;line-height:1.15;letter-spacing:-1px}
    #dashboard .dash-sub{margin:8px 0 2px;color:#66768c;font-size:13px}
    #dashboard .dash-hello .detail-actions{margin-top:10px}
    #dashboard .dash-quick{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px}
    #dashboard .dash-q{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;gap:2px;min-height:150px;padding:14px 16px;border:1px solid #e6eaf5;border-radius:20px;color:#16263a;text-align:left;background:#fff;box-shadow:0 6px 22px rgba(30,60,140,.06);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
    #dashboard .dash-q:hover{transform:translateY(-3px);border-color:#c9d7ff;box-shadow:0 14px 30px rgba(37,87,224,.14)}
    #dashboard .dash-q[hidden],#dashboard .dashboard-stats[hidden],#dashFillDaily[hidden],#dashStreak[hidden],#dashWeek[hidden]{display:none!important}
    #dashboard .dash-ask.is-ok{color:#0e7a55}#dashboard .dash-ask.is-due{color:#b4561b}
    #dashboard .dash-streak{align-self:flex-start;margin:6px 0 2px;padding:3px 10px;border-radius:999px;color:#8a4b12;font-size:12px;font-weight:750;background:#fff1e0}
    #dashboard .dash-my-stats{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))!important}
    #dashboard .dash-my-stats .stat.is-late .stat-value{color:#c8323f}
    #dashboard .dash-week{margin-top:12px;padding-top:12px;border-top:1px solid #e6eaf5}
    #dashboard .dash-week h3{margin:0 0 6px;font-size:13px}
    #dashboard .dash-week-item{display:flex;align-items:flex-start;gap:9px;padding:6px 0;cursor:pointer}
    #dashboard .dash-week-item input{flex:none;width:17px;height:17px;margin-top:2px;accent-color:#13a174}
    #dashboard .dash-week-item b{display:block;font-size:13px;font-weight:650;line-height:1.3}
    #dashboard .dash-week-item small{color:#5d6c82;font-size:11.5px}
    #dashboard .dash-week-item.done b{color:#5d6c82;text-decoration:line-through}
    #dashboard .dash-week-item.late small{color:#c8323f}
    html.theme-dark #dashboard .dash-ask.is-ok{color:#5fd6a8}html.theme-dark #dashboard .dash-ask.is-due{color:#f3a765}
    html.theme-dark #dashboard .dash-streak{color:#f6c48a;background:#3a2a18}
    html.theme-dark #dashboard .dash-week{border-top-color:#2c3a50}html.theme-dark #dashboard .dash-week-item small,html.theme-dark #dashboard .dash-week-item.done b{color:#9fb0c6}html.theme-dark #dashboard .dash-week-item.late small{color:#ff8f98}
    #dashboard .dash-q b{font-size:14px}
    #dashboard .dash-q small{color:#6b7a8c;font-size:11.5px}
    #dashboard .dash-q-art{flex:1;display:flex;align-items:center;justify-content:center;width:100%}
    #dashboard .dash-q-art svg{width:96px;height:72px;transition:transform .25s ease}
    #dashboard .dash-q:hover .dash-q-art svg{transform:scale(1.06) rotate(-2deg)}
    .dash-q-art .a1{fill:#eef3ff;stroke:#1f3d77;stroke-width:2.2}.dash-q-art .a2{fill:#c9d8ff;stroke:#1f3d77;stroke-width:2}.dash-q-art .a3{fill:none;stroke:#1f3d77;stroke-width:2.2;stroke-linecap:round}.dash-q-art .a4{fill:#2f6bff}.dash-q-art .a5{fill:none;stroke:#fff;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
    #dashboard .stat{position:relative;overflow:hidden}
    #dashboard .stat-spark{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-top:8px;pointer-events:none}#dashboard .stat-spark.is-ring{position:absolute;top:10px;right:10px;margin:0}#dashboard .dashboard-stats .stat-header{display:flex;align-items:center;justify-content:flex-start;gap:9px}#dashboard .dashboard-stats .stat-icon{order:-1;flex:none;width:30px;height:30px;border-radius:10px}#dashboard .dashboard-stats .stat-value{font-size:26px;letter-spacing:-.5px}
    #dashboard .stat-spark .spark{flex:1;width:100%;height:30px;overflow:visible}
    #dashboard .stat-spark .spark-ring{width:40px;height:40px;color:#1f3d77}
    #dashboard .stat-spark .spark-ring text{font-size:8.5px;font-weight:800;fill:currentColor}
    #dashboard .spark-chip{padding:1px 7px;border-radius:999px;font-size:10.5px;font-weight:800}
    #dashboard .spark-chip.up{color:#b4561b;background:#fff1e4}
    #dashboard .spark-chip.down{color:#0e7a55;background:#e5f6ee}
    #dashboard .stat.has-spark:has(.is-ring) .stat-header{padding-right:40px}
    /* Row under the numbers: my to-do, latest notices, this month's calendar */
    #dashboard .dash-row{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(0,1fr) minmax(0,.95fr);gap:14px;align-items:stretch;margin-bottom:14px}
    #dashboard .dash-row>.card{margin:0!important;min-width:0;display:flex;flex-direction:column}
    #dashboard .dash-row>.card[hidden]{display:none}
    #dashboard .dash-row .card-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:14px 18px 8px}
    #dashboard .dash-row h2{font-size:16px;margin:0}
    #dashboard .dash-row .todo-list{grid-template-columns:1fr;max-height:330px;overflow:auto;scrollbar-width:thin}
    #dashboard .dash-link{border:0;background:none;padding:0;color:#2557e0;font-size:12px;font-weight:700;cursor:pointer}
    #dashboard .dash-empty{margin:6px 18px 18px;color:#7a879a;font-size:13px}
    #dashboard .dash-inbox-list{display:flex;flex-direction:column;gap:4px;padding:0 10px 12px;max-height:330px;overflow:auto;scrollbar-width:thin}
    #dashboard .dash-notice{display:grid;grid-template-columns:10px minmax(0,1fr) auto;gap:10px;align-items:start;padding:9px 8px;border-radius:12px;cursor:pointer;transition:background .15s ease}
    #dashboard .dash-notice:hover{background:#f1f5ff}
    #dashboard .dash-notice>i{width:8px;height:8px;margin-top:6px;border-radius:50%;background:#cfd8e8}
    #dashboard .dash-notice.unread>i{background:#2f6bff;box-shadow:0 0 0 3px #dce7ff}
    #dashboard .dash-notice b{display:block;font-size:13px;line-height:1.3;color:#16263a}
    #dashboard .dash-notice small{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin-top:2px;color:#6b7a8c;font-size:12px;line-height:1.35}
    #dashboard .dash-notice time{color:#8a96a8;font-size:11px;white-space:nowrap;margin-top:2px}
    #dashboard .dash-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;padding:2px 14px 6px}
    #dashboard .dash-cal-grid b{padding:4px 0;color:#8a96a8;font-size:10.5px;font-weight:700;text-align:center}
    #dashboard .dash-cal-grid button{position:relative;height:32px;padding:0;border:0;border-radius:10px;background:transparent;color:#34445a;font-size:12px;font-weight:650;cursor:pointer}
    #dashboard .dash-cal-grid button:hover{background:#eef3ff}
    #dashboard .dash-cal-grid button.ok{background:#e6efff;color:#1f4fd6}
    #dashboard .dash-cal-grid button.ok::after,#dashboard .dash-cal-grid button.miss::after{content:'';position:absolute;left:50%;bottom:4px;width:4px;height:4px;margin-left:-2px;border-radius:50%;background:#2f6bff}
    #dashboard .dash-cal-grid button.miss{color:#9aa6b6}
    #dashboard .dash-cal-grid button.miss::after{background:#f0a3a9}
    #dashboard .dash-cal-grid button.today{background:linear-gradient(180deg,#3577ff,#1f4fd6);color:#fff;box-shadow:0 6px 14px rgba(37,87,224,.3)}
    #dashboard .dash-cal-grid button.today::after{background:#fff}
    #dashboard .dash-cal-legend{display:flex;gap:14px;padding:4px 18px 14px;color:#7a879a;font-size:11px}
    #dashboard .dash-cal-legend i{display:inline-block;width:7px;height:7px;margin-right:5px;border-radius:50%;background:#2f6bff}
    #dashboard .dash-cal-legend i.miss{background:#f0a3a9}
    @media(max-width:1180px){#dashboard .dash-row{grid-template-columns:repeat(2,minmax(0,1fr))}#dashboard .dash-row>.todo-board{grid-column:1/-1}}
    @media(max-width:760px){#dashboard .dash-row{grid-template-columns:1fr}#dashboard .dash-row .todo-list,#dashboard .dash-inbox-list{max-height:none;overflow:visible}
      /* On a phone the to-do list comes right after the greeting; the numbers follow */
      #dashboard.view.active{display:flex;flex-direction:column}#dashboard>.dash-hero{order:-3}#dashboard>.dash-my-stats{order:-2;grid-template-columns:1fr 1fr!important;gap:10px!important;margin-bottom:14px}#dashboard>.dash-row{order:-1}
      #dashboard .dash-hello .dash-ask:is(.is-ok,.is-due){display:block!important;margin:4px 0 0;font-size:19px!important;line-height:1.25;letter-spacing:-.3px}
      #dashboard .dash-hello .detail-actions:has(#dashFillDaily:not([hidden])){display:flex!important}#dashboard .dash-hello .detail-actions:has(#dashFillDaily:not([hidden])) #tvModeToggle{display:none!important}
      #dashboard .dashboard-stats .stat-icon{display:none}#dashboard .dashboard-stats .stat-value{font-size:22px}
      /* room under the last card so the round ＋ button never covers a link */
      #app .content{padding-bottom:96px!important}}
    html.theme-dark #dashboard .dash-notice:hover,html.theme-dark #dashboard .dash-cal-grid button:hover{background:#22324a}
    html.theme-dark #dashboard .dash-notice b{color:#e3ebf5}
    html.theme-dark #dashboard .dash-notice.unread>i{box-shadow:0 0 0 3px #1d3360}
    html.theme-dark #dashboard .dash-cal-grid button{color:#c9d6ea}
    html.theme-dark #dashboard .dash-cal-grid button.ok{background:#1d3360;color:#a9c4ff}
    html.theme-dark #dashboard .dash-cal-grid button.miss{color:#6d7b8f}
    html.theme-dark #dashboard .dash-link{color:#8fb4ff}
    @media(max-width:1180px){#dashboard .dash-hero{grid-template-columns:1fr}}
    @media(max-width:760px){
      #dashboard .dash-hello h1,#dashboard .dash-ask{font-size:23px!important}
      #dashboard .dash-quick{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
      #dashboard .dash-q{min-height:112px;padding:10px;border-radius:16px}
      #dashboard .dash-q-art svg{width:64px;height:48px}
      #dashboard .dash-q b{font-size:12px;line-height:1.2}
      #dashboard .dash-q small{display:none}
      #dashboard .stat-spark .spark{height:24px}
      #dashboard .stat-spark .spark-ring{width:36px;height:36px}
      #app .sidebar{background:linear-gradient(180deg,#3577ff 0%,#2557e0 55%,#1c47c4 100%)!important}
      #app .sidebar .nav button.active{background:#fff!important;color:#1f4fd6!important}
    }
    html.theme-dark #app{--canvas:#111923;background:#111923}
    html.theme-dark #app .sidebar{background:linear-gradient(180deg,#1d3f8f 0%,#17336f 60%,#122a5c 100%)!important}
    html.theme-dark #app .sidebar .nav button.active{background:#e8efff!important}
    html.theme-dark #app .content .card,html.theme-dark #app .content .stat{border-color:#2b394c!important;box-shadow:none!important}
    html.theme-dark #dashboard .dash-q{background:#1a2432;border-color:#2b394c;color:#dde6f1}
    html.theme-dark #dashboard .dash-q:hover{border-color:#3d5a8f}
    html.theme-dark #dashboard .dash-ask{color:#e8eef6}
    html.theme-dark #dashboard .dash-hello .dashboard-greeting-name{color:#8fb4ff!important}
    html.theme-dark .dash-q-art .a1{fill:#22324a;stroke:#9fb8e8}html.theme-dark .dash-q-art .a2{fill:#2f4a78;stroke:#9fb8e8}html.theme-dark .dash-q-art .a3{stroke:#9fb8e8}
    html.theme-dark #dashboard .stat-spark .spark-ring{color:#c9d6ea}
    html.theme-dark #dashboard .spark-chip.up{background:#3a2a1b;color:#ffb27a}html.theme-dark #dashboard .spark-chip.down{background:#173226;color:#7fe0b4}
    @media(min-width:761px){html.theme-dark #app .topbar{background:rgba(26,36,50,.9)!important;border-color:#2b394c}}

/* ===== Director screen: decisions band, 7-day trends, quieter empty states ===== */
#director-screen .ds-panel[hidden]{display:none}
#director-screen .ds-grid.no-week .ds-today{grid-row:1 / 3}
.ds-decide{margin:0 0 12px;padding:12px 16px;border:1px solid #dde6f1;border-radius:14px;background:#fff!important}
.ds-decide h2{margin:0 0 8px;font-size:17px}.ds-decide h2 small{color:#5b6b80;font-size:13px;font-weight:600}
.ds-dec-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:8px}
.ds-dec{display:flex;align-items:center;gap:10px;min-width:0;padding:9px 12px;border:1px solid #dde6f1;border-left:4px solid #8aa0bd;border-radius:10px;color:#0f2238;text-align:left;background:#f7fafd;cursor:pointer}
.ds-dec:hover{background:#eef4fb}
.ds-dec.danger{border-left-color:#d64545;background:#fdf3f3}.ds-dec.warn{border-left-color:#d9951f;background:#fdf8ee}
.ds-dec-ico{flex:none;font-size:18px}
.ds-dec-text{flex:1;min-width:0}.ds-dec-text b{display:block;font-size:13.5px;line-height:1.25}
.ds-dec-text small{display:block;overflow:hidden;color:#5b6b80;font-size:12px;white-space:nowrap;text-overflow:ellipsis}
.ds-dec strong{flex:none;font-size:17px;white-space:nowrap}.ds-dec.danger strong{color:#c0392b}
.ds-dec-none{margin:0;color:#1d7a46;font-size:14px;font-weight:700}
.ds-big .ds-trend{display:inline-block;margin-left:10px;padding:2px 9px;border-radius:999px;font-size:12px;font-style:normal;font-weight:750;vertical-align:middle}
.ds-big .ds-trend.up{color:#12693c;background:#e3f5ea}.ds-big .ds-trend.flat{color:#5b6b80;background:#eef2f7}
.ds-trends{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:0 0 10px}
.ds-trends div{padding:7px 10px;border:1px solid #e3eaf3;border-radius:10px}
.ds-trends span{display:block;color:#5b6b80;font-size:11.5px}
.ds-trends b{font-size:17px;color:#0f2238}
.ds-trends em{margin-left:6px;font-size:12px;font-style:normal;font-weight:750}
.ds-trends em.good{color:#1d7a46}.ds-trends em.bad{color:#c0392b}.ds-trends em.flat{color:#5b6b80}
.ds-missing{margin:8px 0 0}
html.theme-dark .ds-decide{background:#1a2432;border-color:#2b394c}
html.theme-dark .ds-decide h2 small,html.theme-dark .ds-dec-text small,html.theme-dark .ds-trends span{color:#9fb0c6}
html.theme-dark .ds-dec{color:#e8f0fb;background:#202c3c;border-color:#2b394c;border-left-color:#6f86a6}
html.theme-dark .ds-dec:hover{background:#263447}
html.theme-dark .ds-dec.danger{background:#33212a;border-left-color:#ff7b7b}html.theme-dark .ds-dec.warn{background:#33301f;border-left-color:#e8bd52}
html.theme-dark .ds-dec.danger strong{color:#ff8a8a}html.theme-dark .ds-dec-none{color:#5fd6a8}
html.theme-dark .ds-big .ds-trend.up{color:#7fe0ae;background:#1c3a2c}html.theme-dark .ds-big .ds-trend.flat{color:#b8c7d9;background:#26334a}
html.theme-dark .ds-trends div{border-color:#2b394c}html.theme-dark .ds-trends b{color:#e8f0fb}
html.theme-dark .ds-trends em.good{color:#5fd6a8}html.theme-dark .ds-trends em.bad{color:#ff8a8a}html.theme-dark .ds-trends em.flat{color:#9fb0c6}
@media(max-width:760px){.ds-decide{padding:10px 12px}.ds-dec-list{grid-template-columns:minmax(0,1fr)}.ds-trends{grid-template-columns:minmax(0,1fr)}.ds-trends div{display:flex;align-items:baseline;gap:8px}.ds-trends span{flex:1}.ds-big .ds-trend{display:block;width:max-content;margin:6px 0 0}}
/* ===== Project list cards (work first, money on one line) and the project page's key numbers ===== */
#app .project-card .pc-work{margin:10px 0 2px;min-height:20px}
#app .project-card .pc-work-head{display:flex;align-items:baseline;gap:8px}
#app .project-card .pc-work-head b{font-size:30px;line-height:1;letter-spacing:-.5px;color:#1d2b3e}
#app .project-card .pc-work-head span{font-size:13px;color:#5d6b80}
#app .project-card .pc-work-head small{margin-left:auto;font-size:12.5px;color:#66758a}
#app .project-card .pc-note{margin:0 0 8px;font-size:12.5px;font-weight:700}
#app .pc-note.bad,#app .pd-key.bad p{color:#c0392b}#app .pc-note.good,#app .pd-key.good p{color:#1d7a46}#app .pc-note.mid,#app .pd-key.mid p{color:#8a6a1a}
#app .project-card .pc-money{margin-top:10px;padding-top:10px;border-top:1px solid #e4eaf2}
#app .project-card .pc-money-head{display:flex;align-items:baseline;gap:6px;font-size:13px;color:#5d6b80}
#app .project-card .pc-money-head b{font-size:15px;color:#1d2b3e}
#app .project-card .pc-money-head em{margin-left:auto;font-style:normal;font-weight:800;color:#1d2b3e}
#app .project-card .pc-money .progress{margin:6px 0}
#app .project-card .pc-money .pc-note{margin-bottom:0}
#app .project-card .project-status.pc-health{padding:3px 10px;border-radius:99px;font-size:12px;font-weight:800}
#app .project-card .project-status.pc-health.risk{background:#fdecec;color:#c0392b}
#app .project-card .project-status.pc-health.watch{background:#fff4dd;color:#8a6200}
#app .project-card .project-status.pc-health.good{background:#e6f6ef;color:#13805c}
.pd-keys{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-bottom:14px}
.pd-key{display:block;min-width:0;padding:14px 16px;border:1px solid #e4eaf2;border-radius:14px;color:inherit;font:inherit;text-align:left;background:#fff}
button.pd-key{cursor:pointer}button.pd-key:hover{border-color:#b9cdf5;box-shadow:0 6px 18px rgba(30,60,140,.08)}
.pd-key>span{display:block;font-size:12.5px;color:#5d6b80}
.pd-key>b{display:block;margin-top:2px;font-size:28px;line-height:1.15;letter-spacing:-.5px;color:#1d2b3e}
.pd-key>small{display:block;font-size:12.5px;color:#5d6b80}
.pd-key p{margin:0;font-size:12.5px;font-weight:700}
.pd-key .ps-bar{margin:8px 0 6px}
.pd-key.bad{border-color:#f1c4c4}.pd-key.bad>b{color:#c0392b}.pd-key.mid>b{color:#7b8797}
.ps-bar-actual.over{background:#dc4c56}
.pd-grid.pd-grid-one{grid-template-columns:minmax(0,1fr)}
.pd-allclear{margin:0 0 14px;color:#1d7a46;font-size:13px;font-weight:700}.pd-allclear:empty{display:none}
html.theme-dark #app .project-card .pc-work-head b,html.theme-dark #app .project-card .pc-money-head b,html.theme-dark #app .project-card .pc-money-head em,html.theme-dark .pd-key>b{color:#e8f0fb}
html.theme-dark #app .project-card .pc-work-head span,html.theme-dark #app .project-card .pc-work-head small,html.theme-dark #app .project-card .pc-money-head,html.theme-dark .pd-key>span,html.theme-dark .pd-key>small{color:#9fb0c6}
html.theme-dark #app .project-card .pc-money{border-top-color:#2b394c}
html.theme-dark #app .pc-note.bad,html.theme-dark #app .pd-key.bad p,html.theme-dark .pd-key.bad>b{color:#ff8a8a}
html.theme-dark #app .pc-note.good,html.theme-dark #app .pd-key.good p,html.theme-dark .pd-allclear{color:#5fd6a8}
html.theme-dark #app .pc-note.mid,html.theme-dark #app .pd-key.mid p{color:#e8bd52}html.theme-dark .pd-key.mid>b{color:#9fb0c6}
html.theme-dark #app .project-card .project-status.pc-health.risk{background:#3a2228;color:#ff9a9a}
html.theme-dark #app .project-card .project-status.pc-health.watch{background:#3a3220;color:#f0c865}
html.theme-dark #app .project-card .project-status.pc-health.good{background:#1c3a2c;color:#7fe0ae}
html.theme-dark .pd-key{background:#1a2432;border-color:#2b394c}html.theme-dark .pd-key.bad{border-color:#5a2e35}
@media(max-width:760px){.pd-keys{grid-template-columns:1fr 1fr;gap:8px}.pd-key{padding:11px 12px}.pd-key>b{font-size:22px}}.pd-key{display:flex;flex-direction:column;justify-content:flex-start;align-items:stretch}
html.theme-dark #app .pc-note.bad,html.theme-dark #app .pd-key.bad p,html.theme-dark #app .pd-key.bad>b{color:#ff8a8a!important}
html.theme-dark #app .pc-note.good,html.theme-dark #app .pd-key.good p,html.theme-dark #app .pd-allclear{color:#5fd6a8!important}
html.theme-dark #app .pc-note.mid,html.theme-dark #app .pd-key.mid p{color:#e8bd52!important}
/* v82 dark mode: light pills and dim text that were hard to read on dark cards */
html.theme-dark #app .project-badge,html.theme-dark #app .project-expense-code,html.theme-dark #app .type,html.theme-dark #app .portfolio-state,html.theme-dark #app .progress-state.pending,html.theme-dark #app .performance-difference.neutral,html.theme-dark #app .project-status.completed{background:#263345!important;color:#c9d6e6!important;border-color:#344558!important}
html.theme-dark #app .stat-icon.red-bg,html.theme-dark #app .performance-difference.negative,html.theme-dark #app .mp-late{background:#3d2228!important;color:#ff9a9a!important}
html.theme-dark #app .stat-icon.red-bg{color:#ff9a9a!important}
html.theme-dark #app .progress-state.started,html.theme-dark #app .performance-entry-date,html.theme-dark #app .mp-assignee,html.theme-dark #app .mer-section header>span{background:#1f3352!important;color:#9cc0ff!important}
html.theme-dark #app .daily-report-status.draft,html.theme-dark #app .inv-new{background:#3a3020!important;color:#f3c66b!important}
html.theme-dark #app .progress-history-body{background:#1a2432!important}
html.theme-dark #app .stat-note .warn{color:#f3a64f!important}
html.theme-dark #app .stat-bad,html.theme-dark #app .stat-bad span,html.theme-dark #app .cat-line b,html.theme-dark #app .inv-request-meta small,html.theme-dark #app .stat-value[style*="dc4c56"]{color:#ff8a8a!important}
html.theme-dark #app .ds-note.bad{color:#ff8a8a!important}
html.theme-dark #app .dash-notice time,html.theme-dark #app .dash-cal-grid button.miss,html.theme-dark #app .dash-cal-legend span,html.theme-dark #app .curve-legend span,html.theme-dark #app .gantt-empty,html.theme-dark #app .ds-empty,html.theme-dark #app .performance-list-meta span{color:#a3b2c6!important}
html.theme-dark #app .project-detail-link,html.theme-dark #app .link-button{color:#8fb4ff!important}
html.theme-dark #app .mini-avatar{background:#4d6283!important}
#app .inv-new.inv-buying{background:#fff3e0;color:#b45f06!important}
html.theme-dark #app td[style*="2563eb"]{color:#8fb4ff!important}
html.theme-dark #app [style*="color:#13986d"]{color:#4fd1a1!important}
html.theme-dark #app .progress-work-history summary span{color:#a3b2c6!important}
html.theme-dark #app .rg-step>b,html.theme-dark #app .help-step>b{background:#1d55c8!important;color:#fff!important}
html.theme-dark #app .inv-new.inv-buying{background:#3a3020!important;color:#f3c66b!important}
html.theme-dark #app [style*="color:#dc4c56"]{color:#ff8a8a!important}
html.theme-dark #app .detail-panel,html.theme-dark #app .approved-budget-summary,html.theme-dark .daily-work-row{background:#1a2432!important;border-color:#2c3a4d!important}
html.theme-dark #app .approved-budget-category-summary,html.theme-dark #app .material-summary>div{background:#212d3d!important;border-color:#2c3a4d!important}
html.theme-dark #app .detail-code{background:#263345!important;color:#c9d6e6!important}
html.theme-dark #app .pd-row span{color:#a3b2c6!important}
html.theme-dark #app .text-link{color:#8fb4ff!important}
html.theme-dark #app .dashboard-project-stream-code{background:#263345!important;color:#c9d6e6!important}
html.theme-dark #app .dashboard-project-stream-category{background:#1a2432!important;border-color:#2c3a4d!important}
html.theme-dark #app .dashboard-project-stream-category.over-budget{background:#2e1f26!important}
html.theme-dark #app .dashboard-project-slider-control{background:#263345!important;color:#c9d6e6!important}
html.theme-dark .expense-material-total{background:#1f3352!important;color:#cfe0ff!important}
html.theme-dark .content-image-preview{background:#1a2432!important}
/* v84 dark mode: director-screen event feed and the phone-notification card in the notification panel */
html.theme-dark .ds-ev{background:#1a2432!important;border-color:#2c3a4d!important;border-left-color:#4f8bff!important;color:#dde6f1!important}
html.theme-dark .ds-ev[data-open-daily-report]:hover{background:#213044!important}
html.theme-dark .ds-ev.has-issue{background:#2a1d24!important;border-left-color:#ff6b75!important}
html.theme-dark .ds-ev-kind{background:#1f3352!important;color:#9cc0ff!important}
html.theme-dark .ds-ev-kind.progress{background:#163126!important;color:#6fdcae!important}
html.theme-dark .ds-ev time{color:#8fb4ff!important}
html.theme-dark .ds-ev-who,html.theme-dark .ds-ev-who b{color:#eef3f9!important}
html.theme-dark .ds-ev-who small,html.theme-dark .ds-ev-who span,html.theme-dark .ds-ev-line small{color:#a3b2c6!important}
html.theme-dark .ds-ev-line{color:#dde6f1!important}
html.theme-dark .ds-ev-line span,html.theme-dark .ds-ev-line b{color:#eef3f9!important}
html.theme-dark .ds-ev-line em{color:#a3b2c6!important}
html.theme-dark .ds-ev-line.danger span,html.theme-dark .ds-ev-line.danger em{color:#ff8a8a!important}
html.theme-dark .ds-ev-line.warn span{color:#f3a64f!important}
html.theme-dark .push-setting{background:#1f2b3b!important;color:#eef3f9!important;border:1px solid #2c3a4d}
html.theme-dark .push-setting b{color:#eef3f9!important}
html.theme-dark .push-setting small{color:#a3b2c6!important}
/* v84 dark mode sweep: light surfaces and status pills that only appear once real data is present */
html.theme-dark .install-banner,html.theme-dark .ds-task,html.theme-dark .wg-table th,html.theme-dark .wg-table td,html.theme-dark .portfolio-board th,html.theme-dark .category-icon,html.theme-dark .table th,html.theme-dark .filter,html.theme-dark .close,html.theme-dark .contract-preview-body,html.theme-dark .contract-preview-frame,html.theme-dark .contract-preview-loading,html.theme-dark .demo-note,html.theme-dark .request-card,html.theme-dark .project-option,html.theme-dark .detail-member,html.theme-dark .performance-compare-item,html.theme-dark .floor-level,html.theme-dark .content-post-row,html.theme-dark .daily-photo-card,html.theme-dark #merWorkList>li,html.theme-dark .mer-employee-picker summary,html.theme-dark .material-group-head,html.theme-dark .mer-edit-head,html.theme-dark .mer-edit-foot,html.theme-dark .mer-entry,html.theme-dark .mer-brief,html.theme-dark .mer-scroll th,html.theme-dark .mer-photos figure,html.theme-dark .progress-quantities,html.theme-dark .progress-history-scroll th,html.theme-dark .progress-budget-table th,html.theme-dark .acts-summary>span,html.theme-dark .acts-step,html.theme-dark .acts-preset,html.theme-dark .acts-preview span,html.theme-dark .rq-row,html.theme-dark .drd-work,html.theme-dark .drd-note,html.theme-dark .budget-breakdown-modal>.modal-head,html.theme-dark .budget-breakdown-modal .approved-budget-breakdown>.card-head,html.theme-dark .approved-budget-category-nav,html.theme-dark .approved-budget-breakdown .budget-work-package,html.theme-dark .approved-budget-breakdown .budget-work-package>summary,html.theme-dark .gantt-label-head,html.theme-dark .gantt-timeline-head,html.theme-dark .gantt-task-cell,html.theme-dark .gantt-lane.weekend-lane,html.theme-dark .execution-status-select,html.theme-dark .execution-split,html.theme-dark .floor-comparison,html.theme-dark .floor-compare-table th,html.theme-dark .floor-category-row td,html.theme-dark .floor-compare-table tfoot,html.theme-dark .floor-budget-modal .form-actions,html.theme-dark .floor-budget-grid tfoot td,html.theme-dark .mer-gantt .wg-weekend,html.theme-dark .approved-budget-breakdown tr.budget-row-moved td{background:#1a2432!important;color:#dde6f1!important;border-color:#2c3a4d!important}
html.theme-dark .wg-meta div,html.theme-dark .wg-table thead th,html.theme-dark .wg-table tfoot td,html.theme-dark .wg-table td.wg-c1,html.theme-dark .wg-table td.wg-c2,html.theme-dark .wg-table td.wg-c3,html.theme-dark .wg-table td.wg-c4,html.theme-dark .wg-table td.wg-c5,html.theme-dark .wg-table td.wg-c6,html.theme-dark .mer-track,html.theme-dark .mer-photos img{background:#233042!important;color:#dde6f1!important;border-color:#2c3a4d!important}
html.theme-dark .wg-table th.wg-now{background:#4a2a30!important;color:#ffd0d0!important}
/* green = done / approved / sent */
html.theme-dark .ds-person.ok,html.theme-dark .team-report.approved,html.theme-dark .entry-status.approved,html.theme-dark .project-status,html.theme-dark .performance-alert.good,html.theme-dark .performance-alert.good i,html.theme-dark .performance-difference.positive,html.theme-dark .publish-badge.live,html.theme-dark .daily-report-status.submitted,html.theme-dark .issue-row.resolved .issue-marker,html.theme-dark .mer-status-approved,html.theme-dark .progress-state.done,html.theme-dark .acts-preview .acts-pay,html.theme-dark .inv-budget.ok,html.theme-dark .mp-summary .ok,html.theme-dark .ps-badge.ok,html.theme-dark .drd-status.sent{background:#163126!important;color:#6fdcae!important}
/* amber = waiting / draft / warning */
html.theme-dark .ds-person.draft,html.theme-dark .team-report.submitted,html.theme-dark .entry-status.pending,html.theme-dark .performance-alert,html.theme-dark .performance-alert i,html.theme-dark .publish-badge.draft,html.theme-dark .mer-status-draft,html.theme-dark .mer-undated,html.theme-dark .inv-buy.on,html.theme-dark .ps-badge.late,html.theme-dark .drd-note.warn,html.theme-dark .inv-table tr.inv-low td,html.theme-dark .report-notice.unread,html.theme-dark .floor-unassigned,html.theme-dark .approved-budget-breakdown .budget-reserve-package,html.theme-dark .approved-budget-breakdown .budget-reserve-package>summary,html.theme-dark .budget-reserve-value b{background:#33291a!important;color:#f3c66b!important}
/* red = missing / returned / late / error */
html.theme-dark .ds-person,html.theme-dark .ds-task.late,html.theme-dark .team-report.returned,html.theme-dark .red-bg,html.theme-dark .contract-preview-error,html.theme-dark .progress-error,html.theme-dark .daily-work-remove,html.theme-dark .issue-marker,html.theme-dark .mer-status-returned,html.theme-dark .material-delete,html.theme-dark .acts-remove,html.theme-dark .inv-budget.over,html.theme-dark .mp-summary .late,html.theme-dark .fc-late td,html.theme-dark .mp-row-late td,html.theme-dark .drd-note.danger,html.theme-dark .inv-table tr.inv-empty td,html.theme-dark .gantt-day-head.weekend{background:#3a2026!important;color:#ff9a9a!important}
html.theme-dark .ds-person.ok{background:#163126!important;color:#6fdcae!important}
html.theme-dark .ds-person.draft{background:#33291a!important;color:#f3c66b!important}
html.theme-dark .ds-task.late,html.theme-dark .fc-late td,html.theme-dark .mp-row-late td,html.theme-dark .drd-note.danger,html.theme-dark .inv-table tr.inv-empty td{background:#2a1d24!important;color:#dde6f1!important}
html.theme-dark .inv-table tr.inv-low td,html.theme-dark .report-notice.unread,html.theme-dark .floor-unassigned,html.theme-dark .mer-undated,html.theme-dark .approved-budget-breakdown .budget-reserve-package{background:#2a2419!important;color:#dde6f1!important}
/* blue / neutral info pills */
html.theme-dark .team-report,html.theme-dark .mer-status,html.theme-dark .ps-badge,html.theme-dark .drd-status.draft{background:#263345!important;color:#c9d6e6!important}
html.theme-dark .performance-entry-photo,html.theme-dark .content-post-thumb,html.theme-dark .mer-status-submitted,html.theme-dark .mer-day-on,html.theme-dark .progress-floor-tag,html.theme-dark .drd-no,html.theme-dark .drd-note.next,html.theme-dark .gantt-day-head.today,html.theme-dark .floor-tag,html.theme-dark .budget-floor-category-total,html.theme-dark .floor-level.active{background:#1f3352!important;color:#9cc0ff!important}
html.theme-dark .floor-level.complete{background:#163126!important}
html.theme-dark .floor-level.idle{background:#1a2432!important}
html.theme-dark #app .wg-table th.wg-now{background:#4a2a30!important;color:#ffd0d0!important}
html.theme-dark .progress-state{background:#263345!important;color:#c9d6e6!important}
/* v85: the app does not zoom on phones (no double-tap, no pinch); element rules with their own touch-action win by specificity */
html,body,*{touch-action:pan-x pan-y}
/* v86: the daily report form on a phone — worker counts side by side, tighter rows, smaller fields */
@media (max-width:600px){
  #dailyReportModal .modal-head{padding:12px 16px!important}
  #dailyReportModal .modal-intro{margin:0 16px 6px!important;font-size:11.5px;line-height:1.4}
  #dailyReportForm{padding:10px 16px 14px!important}
  #dailyReportForm .form-grid{grid-template-columns:1fr 1fr!important;gap:10px 10px!important}
  #dailyReportForm .form-grid>.field{grid-column:1/-1;gap:4px}
  #dailyReportForm .form-grid>.field:has(#dailyReportPrimaryWorkers),#dailyReportForm .form-grid>.field:has(#dailyReportSubcontractorWorkers){grid-column:auto}
  #dailyReportForm .form-grid>.field:has(.daily-worker-total){margin-top:-4px}
  #dailyReportForm .daily-worker-total{padding:0 2px!important;font-size:12.5px}
  #dailyReportForm input:not([type=checkbox]):not([type=file]),#dailyReportForm select{padding:7px 10px!important;min-height:38px}
  #dailyReportForm textarea{min-height:64px!important;padding:7px 10px!important}
  #dailyReportForm .daily-sub-add,#dailyReportForm .daily-work-add{padding:8px 12px!important;min-height:0}
  #dailyReportForm .form-actions{padding-top:10px!important;gap:8px}
}
@media (max-width:600px){
  #dailyReportForm .daily-work-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 32px!important;gap:6px!important;padding:8px!important;align-items:end}
  #dailyReportForm .daily-work-row .daily-work-remove{width:32px;height:38px;padding:0!important;grid-column:auto!important;justify-self:end}
  #dailyReportForm .daily-work-row .field{gap:3px}
  #dailyReportForm .daily-sub-add,#dailyReportForm .daily-work-add{font-size:13.5px}
}
@media (max-width:600px){
  #dailyReportForm .form-actions{margin-top:6px!important;display:grid!important;grid-template-columns:auto 1fr 1.2fr;gap:6px!important}
  #dailyReportForm .form-actions button{padding:10px 8px!important;font-size:13.5px!important;white-space:nowrap;min-height:0}
  #dailyReportForm .field-help{font-size:11px;margin:2px 0 0}
  #dailyReportForm .daily-issue-toggle{padding:8px 10px!important}
}
@media (max-width:600px){#dailyReportForm .form-actions{margin-left:0!important;margin-right:0!important;padding-left:0!important;padding-right:0!important}}
/* v86: file pickers — Mongolian button instead of the browser's "Choose Files" box */
.file-pick-input{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;overflow:hidden!important;pointer-events:none;border:0!important;padding:0!important;margin:0!important}
.file-pick{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.file-pick-btn{display:inline-flex!important;align-items:center;gap:6px;padding:9px 14px;border-radius:10px;border:1.5px dashed #9db6dc;background:#f3f7fd;color:#1f4fae;font-weight:700;font-size:14px;cursor:pointer;margin:0!important;text-transform:none;letter-spacing:0}
.file-pick-btn:hover{background:#e8f0fd}
.file-pick-input:focus-visible+.file-pick .file-pick-btn{outline:2px solid #246bfd;outline-offset:2px}
.file-pick-note{font-size:12.5px;color:#6b7a90;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
.file-pick-note.picked{color:#13805c;font-weight:700}
html.theme-dark .file-pick-btn{background:#1f2b3b!important;border-color:#3d5a85!important;color:#9cc0ff!important}
html.theme-dark .file-pick-btn:hover{background:#243650!important}
html.theme-dark .file-pick-note{color:#a3b2c6!important}
html.theme-dark .file-pick-note.picked{color:#6fdcae!important}
@media (max-width:600px){.file-pick-btn{flex:1;justify-content:center;padding:11px 14px}.file-pick-note{flex-basis:100%;text-align:center}}
@media (max-width:600px){.file-pick-btn{font-size:15px}}
.file-pick-clear{background:none!important;border:0!important;color:#c43842!important;font-size:13px;font-weight:700;padding:4px 6px!important;min-height:0;cursor:pointer;box-shadow:none!important}
html.theme-dark .file-pick-clear{color:#ff8a8a!important}
@media (max-width:600px){.file-pick-clear{flex-basis:100%}}
/* v86: the remove button on each daily-report photo is big enough for a finger */
#dailyReportPhotoList [data-remove-daily-photo]{width:34px!important;height:34px!important;font-size:20px!important;line-height:1!important;border-radius:50%!important;background:rgba(196,56,66,.92)!important;color:#fff!important;border:2px solid #fff!important;box-shadow:0 2px 6px rgba(0,0,0,.35)!important;padding:0!important}
/* v87: month-end report on a phone — table rows become small cards, less padding everywhere */
@media screen and (max-width:600px){
  .mer-section{padding:12px!important;margin:10px 0!important}
  .mer-section header{gap:10px!important;margin-bottom:8px!important;align-items:flex-start!important}
  .mer-section header>span{padding:4px 7px!important;font-size:12px}
  .mer-section h2{font-size:16.5px!important;line-height:1.3}
  .mer-section header p{font-size:12.5px;margin:2px 0 0!important;line-height:1.4}
  .mer-section h3{margin:12px 0 6px!important;font-size:15px!important}
  .mer-brief{padding:12px 14px!important;margin:10px 0!important}
  .mer-brief h2{font-size:16.5px!important}
  .mer-brief ul{line-height:1.5!important;font-size:14px;padding-left:18px!important}
  .mer-stats{gap:8px!important;margin:8px 0!important}
  .mer-stats>div{padding:8px 10px!important}
  .mer-stats b{font-size:19px!important}
  .mer-legend{gap:4px 12px!important;font-size:11.5px!important;margin:0 0 6px!important}
  .mer-cards{overflow:visible!important}
  .mer-cards table,.mer-cards tbody{display:block;width:100%}
  .mer-cards thead{display:none}
  .mer-cards tr{display:block;padding:9px 0;border-bottom:1px solid #dde6ef}
  .mer-cards tr:last-child{border-bottom:0}
  .mer-cards td{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:2px 0!important;border:0!important;font-size:13.5px;text-align:right}
  .mer-cards td::before{content:attr(data-label);flex:none;color:#6b7a90;font-size:12.5px;text-align:left}
  .mer-cards td:first-child{display:block;text-align:left;font-weight:700;font-size:14.5px;padding-bottom:4px!important}
  .mer-cards td:first-child::before{content:none}
  .mer-cards td:first-child small{font-weight:500}
  .mer-cards td small{display:block;margin-top:2px}
  .mer-cards td:not(:first-child) small{display:inline;margin:0 0 0 4px}
  .mer-cards td>.mer-progress{flex:1;max-width:62%;display:flex;align-items:center;gap:8px}
  .mer-cards td>.mer-progress .mer-track{flex:1;min-width:40px}
  html.theme-dark .mer-cards tr{border-bottom-color:#2c3a4d}
  html.theme-dark .mer-cards td::before{color:#a3b2c6}
}

/* v88: calendar plan as cards on phones */
.mer-gantt-cards{display:none}
@media screen and (max-width:600px){
  .mer-gantt{display:none!important}
  .mer-gantt-cards{display:grid;gap:8px}
  .mgc-card{border:1px solid #dde3ec;border-radius:10px;padding:9px 10px;background:#fff}
  .mgc-card header{display:flex;justify-content:space-between;gap:8px;align-items:baseline}
  .mgc-card header b{font-size:14px;line-height:1.3}
  .mgc-card header span{white-space:nowrap;font-size:13px;color:#33445a}
  .mgc-card>small{display:block;color:#6b7788;font-size:12px;margin:2px 0 7px}
  .mgc-strip,.mgc-ticks{display:grid;grid-template-columns:repeat(var(--days),1fr);gap:1px}
  .mgc-strip i{height:12px;background:#eef1f5;border-radius:2px}
  .mgc-strip i.we{background:#d3dbe6}
  .mgc-strip i.on{background:#f5c400}
  .mgc-ticks span{font-size:9px;color:#8a94a3;text-align:center;overflow:visible;white-space:nowrap;line-height:12px;margin-top:2px}
  html.theme-dark .mgc-card{background:#17212e;border-color:#2c3a4d}
  html.theme-dark .mgc-card header span{color:#c5d0de}
  html.theme-dark .mgc-card>small,html.theme-dark .mgc-ticks span{color:#93a1b4}
  html.theme-dark .mgc-strip i{background:#243142}
  html.theme-dark .mgc-strip i.we{background:#34445a}
  html.theme-dark .mgc-strip i.on{background:#e0b400}
}
@media print{.mer-gantt-cards{display:none!important}}
/* v89: month-end report parts fold behind their headings */
.mer-fold>summary{list-style:none;cursor:pointer;position:relative}
.mer-fold>summary::-webkit-details-marker{display:none}
.mer-fold>summary::after{content:'▾';position:absolute;right:2px;top:4px;font-size:18px;color:#7a8698;transition:transform .15s}
.mer-fold:not([open])>summary::after{transform:rotate(-90deg)}
.mer-fold:not([open])>summary header{margin-bottom:0}
.mer-fold>summary header{padding-right:24px}
@media print{.mer-fold>summary::after{display:none}}
/* v91 */
#daily-reports .title-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}

/* v92: one daily report printed / saved as PDF */
#dailyPrintSheet{display:none}
@media print{
  body.printing-daily-report{background:#fff!important}
  body.printing-daily-report>*:not(#dailyPrintSheet){display:none!important}
  body.printing-daily-report #dailyPrintSheet{display:block!important;color:#111;font-size:12px}
  #dailyPrintSheet *{color:#111!important;background:transparent!important;box-shadow:none!important;border-color:#cfd6df!important}
  #dailyPrintSheet .dps-brand{font-size:10px;letter-spacing:.08em;color:#666!important;margin:0 0 6px}
  #dailyPrintSheet .drd-facts{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
  #dailyPrintSheet .drd-fact,#dailyPrintSheet .drd-note{border:1px solid #cfd6df;border-radius:6px;padding:6px;break-inside:avoid}
  #dailyPrintSheet table{width:100%;border-collapse:collapse}
  #dailyPrintSheet th,#dailyPrintSheet td{border:1px solid #cfd6df;padding:4px 6px;text-align:left}
  #dailyPrintSheet .daily-photo-item{display:inline-block;width:31%;margin:0 1% 8px 0;vertical-align:top;break-inside:avoid}
  #dailyPrintSheet .daily-photo-item img{width:100%;height:auto;max-height:60mm;object-fit:contain}
}
/* v93: in-app photo viewer */
.app-lightbox{position:fixed;inset:0;z-index:100000;background:rgba(5,10,18,.94);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:max(56px,env(safe-area-inset-top)) 12px max(16px,env(safe-area-inset-bottom))}
.app-lightbox img{max-width:100%;max-height:calc(100% - 40px);object-fit:contain;border-radius:6px}
.app-lightbox p{color:#dfe6ef;font-size:14px;margin:10px 0 0;text-align:center;max-width:720px}
.app-lightbox-close{position:fixed;top:max(10px,env(safe-area-inset-top));right:12px;width:46px;height:46px;border-radius:50%;border:0;background:#fff;color:#111;font-size:30px;line-height:46px;padding:0;cursor:pointer;box-shadow:0 2px 10px rgba(0,0,0,.4)}
html.lightbox-open,html.lightbox-open body{overflow:hidden}
/* v95: daily report detail (a modal, outside #app) in dark mode */
html.theme-dark .drd-fact{background:#1b2636!important;border-color:#2c3a4d!important}
html.theme-dark .drd-fact span,html.theme-dark .drd-fact small{color:#93a1b4!important}
html.theme-dark .drd-fact b{color:#e6edf6!important}
html.theme-dark .drd-fact b small{color:#93a1b4!important}
html.theme-dark .detail-code{background:#263345!important;color:#c9d6e6!important}

/* v97: registration request status pill in dark mode (modal, outside #app) */
html.theme-dark .request-card .type{background:#3a2f12!important;color:#f3cf6b!important;border-color:#5c4a17!important}

/* v98: photo viewer arrows/counter; daily report list as cards on phones */
.app-lightbox-count{position:fixed;top:max(22px,calc(env(safe-area-inset-top) + 12px));left:16px;color:#dfe6ef;font-size:14px;font-weight:600}
.app-lightbox-nav{position:fixed;top:50%;transform:translateY(-50%);width:44px;height:64px;border:0;border-radius:10px;background:rgba(255,255,255,.14);color:#fff;font-size:34px;line-height:1;cursor:pointer;padding:0}
.app-lightbox-nav.prev{left:8px}.app-lightbox-nav.next{right:8px}
.app-lightbox-nav[hidden]{display:none}
.app-lightbox img{touch-action:pan-y;user-select:none;-webkit-user-select:none}
@media (max-width:600px){
  .app-lightbox-nav{width:36px;height:52px;font-size:28px;background:rgba(255,255,255,.1)}
  table:has(#dailyReportList){min-width:0!important;width:100%;display:block;border:0;background:transparent!important}
  table:has(#dailyReportList) thead{display:none}
  table:has(#dailyReportList) tbody{display:block}
  #dailyReportList tr.daily-report-row{display:grid;grid-template-columns:auto minmax(0,1fr);gap:6px 12px;padding:12px 14px;margin:0 0 10px;border:1px solid #dde3ec;border-radius:12px;background:#fff}
  #dailyReportList tr.daily-report-row td{display:block;padding:0!important;border:0!important;min-width:0;font-size:13px;line-height:1.45}
  #dailyReportList tr.daily-report-row td:nth-child(1){font-weight:700;white-space:nowrap}
  #dailyReportList tr.daily-report-row td:nth-child(2){text-align:right}
  #dailyReportList tr.daily-report-row td:nth-child(3){grid-column:1/-1;display:-webkit-box;-webkit-line-clamp:6;-webkit-box-orient:vertical;overflow:hidden;border-top:1px solid #eef1f5!important;padding-top:8px!important}
  #dailyReportList tr.daily-report-row td:nth-child(4){color:#5b6878}
  #dailyReportList tr.daily-report-row td:nth-child(5){text-align:right}
  #dailyReportList tr.daily-report-row td:nth-child(6){color:#5b6878}
  #dailyReportList tr.daily-report-row td:nth-child(7){text-align:right}
  #dailyReportList tr.daily-report-row td:nth-child(7) .empty-receipt{display:none}
  html.theme-dark #dailyReportList tr.daily-report-row{background:#17212e!important;border-color:#2c3a4d!important}
  html.theme-dark #dailyReportList tr.daily-report-row td:nth-child(3){border-top-color:#2c3a4d!important}
  html.theme-dark #dailyReportList tr.daily-report-row td:nth-child(4),html.theme-dark #dailyReportList tr.daily-report-row td:nth-child(6){color:#93a1b4}
}
/* v99: engineer's name leads each daily report card on phones */
@media (max-width:600px){
  #dailyReportList tr.daily-report-row td:nth-child(6){order:-1;grid-column:1/-1;font-size:16px;font-weight:800;color:#13233a;padding-bottom:6px!important;border-bottom:1px solid #eef1f5!important}
  #dailyReportList tr.daily-report-row td:nth-child(6)::before{content:'👷 ';font-weight:400}
  html.theme-dark #dailyReportList tr.daily-report-row td:nth-child(6){color:#f1f5fb!important;border-bottom-color:#2c3a4d!important}
}
/* v99b: top row = engineer's name (left) and date with status (right); project small underneath; then the work */
@media (max-width:600px){
  #dailyReportList tr.daily-report-row td:nth-child(6){order:-3;grid-column:1;align-self:center;border-bottom:0!important;padding-bottom:0!important;white-space:normal}
  #dailyReportList tr.daily-report-row td:nth-child(1){order:-2;grid-column:2;text-align:right}
  #dailyReportList tr.daily-report-row td:nth-child(2){order:-1;grid-column:1/-1;text-align:left;font-size:12px;color:#6b7788}
  #dailyReportList tr.daily-report-row td:nth-child(2) b{font-weight:600}
  #dailyReportList tr.daily-report-row td:nth-child(3){border-top:1px solid #eef1f5!important;padding-top:8px!important}
  html.theme-dark #dailyReportList tr.daily-report-row td:nth-child(2){color:#93a1b4}
  html.theme-dark #dailyReportList tr.daily-report-row td:nth-child(3){border-top-color:#2c3a4d!important}
}
/* v100: numbered work lines in the daily report list */
#dailyReportList .drl-no{display:inline-block;min-width:1.6em;color:#6b7788;font-weight:600;font-variant-numeric:tabular-nums}
html.theme-dark #dailyReportList .drl-no{color:#93a1b4}

/* v100: daily report detail - 3 compact facts + subcontractor list */
.drd-facts{grid-template-columns:repeat(3,minmax(0,1fr))}
.drd-fact b{font-size:15px;line-height:1.35}
.drd-subs{margin:4px 0 14px}
.drd-sub-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:6px}
.drd-sub{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid #e4eaf2;border-radius:10px;padding:8px 12px;background:#fbfcfe;min-width:0}
.drd-sub span{font-weight:600;font-size:14px;min-width:0;overflow-wrap:anywhere}
.drd-sub b{flex:none;font-size:12.5px;color:#1d4ed8;background:#eaf1ff;border-radius:999px;padding:2px 9px}
html.theme-dark .drd-sub{background:#1b2636!important;border-color:#2c3a4d!important}
html.theme-dark .drd-sub span{color:#e6edf6}
html.theme-dark .drd-sub b{background:#1e3a66;color:#cfe0ff}
@media(max-width:640px){.drd-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.drd-facts .drd-fact:last-child{grid-column:1/-1}.drd-sub-list{grid-template-columns:1fr}}
#dailyPrintSheet .drd-facts{grid-template-columns:repeat(3,1fr)}
/* v100: director screen spacing - project cards never cut off, tidy "today" panel */
#director-screen .ds-cards{grid-auto-rows:minmax(min-content,1fr)!important;overflow:auto;align-content:start}
#director-screen .ds-card{overflow:visible;gap:10px;min-height:min-content}
#director-screen .ds-facts{margin-top:auto;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px 14px;padding-top:10px}
#director-screen .ds-facts dd{white-space:normal;line-height:1.3}
#director-screen .ds-stats.ds-stats-4{gap:8px;margin-bottom:12px}
#director-screen .ds-stats.ds-stats-4 div{padding:10px 6px}
#director-screen .ds-stats span{display:block;line-height:1.25;margin-top:2px}
#director-screen .ds-acts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0 0 12px;font-size:12px;color:#5b6b80}
#director-screen .ds-acts span{padding:8px 10px;border-radius:10px;background:#f3f7fc;line-height:1.3}
#director-screen .ds-acts b{display:block;font-size:17px;color:#0f2238;margin-top:2px}
#director-screen .ds-trends{margin-bottom:12px}
#director-screen .ds-people{margin-bottom:12px}
#director-screen .ds-feed h3{margin:4px 0 8px}
html.theme-dark #director-screen .ds-acts span{background:#1b2636;color:#9fb0c6}
html.theme-dark #director-screen .ds-acts b{color:#e6edf6}
@media(max-width:760px){#director-screen .ds-acts{grid-template-columns:1fr}}
/* v105: subcontractor contracts as cards on phones (contractor + status, project, contract, amount + dates, buttons) */
@media(max-width:760px){
  #contracts table:has(#contractList){display:block;min-width:0!important;width:100%}
  #contracts table:has(#contractList) thead{display:none}
  #contractList{display:block}
  #contractList tr{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"who st" "proj proj" "no no" "scope scope" "amt date" "act act";gap:6px 10px;padding:14px;margin:0 0 10px;border:1px solid #e3e9f2;border-radius:14px;background:#fff!important}
  #contractList td{display:block;padding:0!important;border:0!important;min-width:0;text-align:left;white-space:normal}
  #contractList td:nth-child(1){grid-area:proj;font-size:13px;color:#5b6b80}#contractList td:nth-child(1) b{color:#33475f}
  #contractList td:nth-child(2){grid-area:who;font-size:17px}
  #contractList td:nth-child(3){grid-area:no;font-size:13px;overflow-wrap:anywhere}
  #contractList td:nth-child(4){grid-area:scope;font-size:13px;color:#5b6b80}#contractList td:nth-child(4)::before{content:"Ажлын хүрээ: ";color:#7b8797}
  #contractList td:nth-child(5){grid-area:amt;font-size:17px}
  #contractList td:nth-child(6){grid-area:date;font-size:12.5px;color:#5b6b80;text-align:right}
  #contractList td:nth-child(7){display:none}
  #contractList td:nth-child(8){grid-area:st;text-align:right;font-size:13px}
  #contractList td:nth-child(9){grid-area:act;padding-top:6px!important;border-top:1px dashed #dfe6ef!important}
  #contractList td:nth-child(9) .detail-actions{display:flex;flex-wrap:wrap;gap:6px}
  #contractList td:nth-child(9) .detail-actions button{flex:1 1 auto;padding:9px 10px;font-size:13px}
  #contractList td[colspan]{grid-column:1/-1}
  html.theme-dark #app #contracts #contractList tr{background:#1a2432!important;border-color:#2b394c}
  html.theme-dark #contractList td:nth-child(1),html.theme-dark #contractList td:nth-child(4),html.theme-dark #contractList td:nth-child(6){color:#9fb0c6}
  html.theme-dark #contractList td:nth-child(1) b{color:#c9d5e4}
  html.theme-dark #contractList td:nth-child(9){border-top-color:#2b394c!important}
}
/* v106: contract acts list as cards on phones; compact summary */
@media(max-width:760px){
  .acts-summary{display:grid!important;grid-template-columns:1fr 1fr;gap:6px!important}
  .acts-summary>span{padding:8px 10px;border-radius:10px;background:#f3f7fc;font-size:12px;line-height:1.3;margin:0!important}
  .acts-summary>span b{display:block;font-size:15px}
  .acts-summary>button{grid-column:1/-1;width:100%}
  html.theme-dark .acts-summary>span{background:#1b2636}
  .acts-list-table{display:block;min-width:0!important;width:100%}
  .acts-list-table thead{display:none}
  .acts-list-table tbody{display:block}
  .acts-list-table tbody tr{display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"no title st" "no amt pay" "act act act";gap:6px 10px;padding:12px;margin:0 0 10px;border:1px solid #e3e9f2;border-radius:14px;background:#fff!important}
  .acts-list-table tbody td{display:block;padding:0!important;border:0!important;min-width:0;text-align:left;white-space:normal}
  .acts-list-table tbody td:nth-child(1){grid-area:no;font-size:16px}
  .acts-list-table tbody td:nth-child(2){grid-area:title}
  .acts-list-table tbody td:nth-child(3){grid-area:amt;font-size:12.5px;color:#5b6b80}.acts-list-table tbody td:nth-child(3)::before{content:"Тайлант үе: "}
  .acts-list-table tbody td:nth-child(4){grid-area:pay;text-align:right}.acts-list-table tbody td:nth-child(4)::before{content:"Олгох ";font-size:11.5px;color:#7b8797;font-weight:400}
  .acts-list-table tbody td:nth-child(5){grid-area:st;text-align:right}
  .acts-list-table tbody td:nth-child(6){grid-area:act;padding-top:8px!important;border-top:1px dashed #dfe6ef!important}
  .acts-list-table tbody td:nth-child(6) .detail-actions{display:flex;flex-wrap:wrap;gap:6px}
  .acts-list-table tbody td:nth-child(6) .detail-actions button{flex:1 1 auto;padding:9px 10px;font-size:13px}
  .acts-list-table tbody td[colspan]{grid-column:1/-1}
  html.theme-dark :is(#app,.modal) .acts-list-table tbody tr{background:#1a2432!important;border-color:#2b394c}
  html.theme-dark .acts-list-table tbody td:nth-child(3){color:#9fb0c6}
  html.theme-dark .acts-list-table tbody td:nth-child(6){border-top-color:#2b394c!important}
}