/* Shared presentation layer. API, saved values and user-defined task colors stay unchanged. */
:root {
  color-scheme: light;
  --bg: #f5f5f6;
  --surface: #ffffff;
  --surface2: #f0f1f3;
  --border: #e6e7ea;
  --border-control: #d8dade;
  --divider: #eeeff1;
  --grid-line: #e4e6e9;
  --accent: #28658d;
  --accent2: #3c657e;
  /* Softer charcoal for primary text; secondary and semantic colors stay distinct. */
  --text-strong: #4b5159;
  --text-soft: #555b64;
  --text-muted: #626870;
  --text-on-accent: #ffffff;
  --text-warning: #946119;
  --text-warning-soft: #866021;
  --green: #287354;
  --recv-paid: #3c657e;
  --red: #b24949;
  --orange: #946119;
  --status-neutral-bg: #f0f1f3;
  --status-progress-bg: #eaf0f5;
  --status-success-bg: #eaf3ed;
  --status-warning-bg: #f7f1e4;
  --status-danger-bg: #f8eded;
  --section-long-border: #e0e3e8;
  --section-short-border: #e0e9e3;
  --section-long-bg: #f0f1f4;
  --section-short-bg: #edf4ef;
  --gantt-current-week-bg: #f0f1f4;
  --gantt-current-week-soft-bg: #f7f8fa;
  --gantt-sticky-header-bg: #f0f1f3;
  --gantt-sticky-label-bg: #ffffff;
  --gantt-sticky-section-label-bg: #e8eaee;
  --gantt-sticky-header-past-bg: #f2f3f5;
  --gantt-current-week-header-bg: #e4e7ec;
  --gantt-month-boundary: #d5d8de;
  --click-bg: #eeeef0;
  --click-bg-hover: #e4e5e8;
  --click-bg-active: #e5e7eb;
  --click-text: #4b5159;
  --click-text-soft: #555b64;
  --click-text-active: #235778;
  --click-primary: #28658d;
  --click-primary-hover: #1d5277;
  --click-danger: #f9eeee;
  --click-danger-hover: #f3dfdf;
  --shadow-overlay: 0 12px 32px rgba(39,52,62,.12);
}

/* Normal navigation/header placement. Optional glass surfaces live in ppp-glass.css. */
.sidebar { background:var(--surface2); }
.logo { gap:10px; }
.logo-mark { box-shadow:0 3px 10px rgba(39,52,62,.12); }
.nav-item { color:var(--dim); min-height:40px; border-radius:7px; }
.nav-item.active { background:var(--click-bg-active); color:var(--accent); font-weight:600; }
.nav-label { font-size:calc(10px + var(--ui-font-step, 0px)); margin-top:6px; margin-bottom:7px; }
.sidebar-utility-panel, .project-alert-popover { background:var(--surface); box-shadow:var(--shadow-overlay); }
.sidebar-utility-toggle-icon { background:var(--click-bg-active); }
.topbar { min-height:72px; }
.topbar-title { font-size:calc(18px + var(--ui-font-step, 0px)); letter-spacing:-.02em; }
.list-area { padding:24px; }
.btn { min-height:34px; border-radius:7px; }
.btn-ghost, .today-jump-btn { background:var(--click-bg); color:var(--click-text-soft); }
.btn-ghost:hover, .today-jump-btn:hover { background:var(--click-bg-hover); color:var(--click-text); }
.btn-danger { color:var(--red); }
.res-tbtn, .gmf-btn { min-height:32px; }
.res-tbtn.active, .gmf-btn.active, .year-tab.active {
  background:var(--click-bg-active); color:var(--click-text-active); border-color:transparent; box-shadow:none;
}
.year-tabs { gap:4px; }
.year-tab { border:1px solid transparent; }
.search { background:var(--surface); }
.search:focus-within { outline:2px solid var(--accent); outline-offset:2px; }
:where(button, a, input, select, textarea, [tabindex]):focus-visible {
  outline:2px solid var(--accent); outline-offset:2px;
}
input, select, textarea { accent-color:var(--accent); }
#login-pw:focus-visible { outline:2px solid var(--accent) !important; outline-offset:2px; }
input::placeholder, textarea::placeholder { color:var(--muted); opacity:1; }
.fi, .fs { background:var(--surface); border-color:var(--border-control); }
.fi:focus, .fs:focus { border-color:var(--accent); }

/* Quiet table-first surfaces, readable totals and status distinctions. */
.stats { gap:14px; margin-bottom:20px; }
.stats-band-label-sub { color:var(--muted); }
.stat { background:var(--surface); border-color:var(--divider); box-shadow:none; }
.stat:not(.stat-mini) { padding:16px 18px; min-height:98px; }
.stat-label { font-size:calc(11px + var(--ui-font-step, 0px)); letter-spacing:.02em; }
.stat-val { font-size:calc(23px + var(--ui-font-step, 0px)); letter-spacing:-.04em; }
.stat-mini .stat-label { font-size:calc(10px + var(--ui-font-step, 0px)); }
.summary-hero { background:#f2f3f5; border-color:#e0e2e6; }
.tbl-wrap { border-radius:8px; }
th { color:var(--dim); letter-spacing:.02em; }
td { border-bottom-color:var(--divider); }
.detail-row:not(:last-child), .cost-detail-row:not(:last-child) { border-bottom-color:var(--divider); }
tbody tr:hover td { background:#f7f7f8; }
tbody tr.selected td { background:#f0f1f4; border-color:var(--border); }
.proj-name { font-weight:600; }
.row-muted { background:#f8f9fa; }
.row-muted .proj-name { color:var(--dim); }
.amt-sub { opacity:1 !important; }
/* Keep the original print hierarchy; screen-only secondary amounts are quieter. */
.reserve-component-amount { font-size:calc(18px + var(--ui-font-step, 0px)); font-weight:700; }
.reserve-reference-amount { font-size:calc(13px + var(--ui-font-step, 0px)); }
.reserve-rate-value { font-size:calc(14px + var(--ui-font-step, 0px)); color:var(--text); font-weight:700; }
@media screen {
  .money-secondary, .summary-reserve-item .v.money-secondary,
  .reserve-reference-amount, .reserve-rate-value {
    font-size:calc(10px + var(--ui-font-step, 0px)); font-weight:400; color:var(--muted); line-height:1.5;
  }
  .reserve-component-amount { font-size:calc(14px + var(--ui-font-step, 0px)); font-weight:500; color:var(--muted); }
}
.chip .n, .project-alert-chip .n, .recv-tab .n { background:var(--surface); border-color:var(--border); }
.proj-alert-inline, .warn-pill, .warn-pill.muted { color:var(--dim); }
.proj-alert-inline.warn, .warn-pill.warn { color:var(--text-warning); }
.proj-alert-inline.danger, .warn-pill.danger { color:var(--red); }
.b-confirmed, .b-pending, .b-hold, .b-lost {
  background:var(--status-neutral-bg); color:var(--text-soft); border-color:var(--border);
}
.b-operation { background:var(--status-progress-bg); color:var(--accent2); border-color:var(--border); }
.b-complete { background:var(--status-success-bg); color:var(--green); border-color:var(--border); }
.rcv-status-pair, .recv-edit-launcher, .recv-edit-target, .recv-project-directory,
.recv-editor-stat, .recv-pane { background:var(--surface2); }
.recv-editor-shell, .recv-editor-shell.standalone { background:var(--surface); }
.costs-kind.outsource, .costs-status.neutral, .recv-meta-tag.project { color:var(--dim); }
.costs-card { border-color:var(--border); }
.costs-card-tax-sub, .costs-card-note, .costs-card-breakdown-row,
.costs-entry-amount-sub { color:var(--muted); }
.costs-card-breakdown-row strong { color:var(--text); }
.costs-entry-row.is-paid .costs-name, .costs-entry-row.is-paid .amt,
.costs-entry-row.is-paid .amt.pos { color:var(--dim); }
.costs-entry-row.is-paid .costs-entry-meta, .costs-entry-row.is-paid .costs-status-note,
.costs-entry-row.is-paid .costs-entry-amount-sub { color:var(--muted); }
.costs-entry-row.is-paid .costs-inline-status, .costs-entry-row.is-paid .costs-status,
.costs-entry-row.is-paid .costs-status.paid { color:var(--green); }
.costs-kind.expense, .summary-chip.project, .recv-chip.project { color:var(--accent2); }
.summary-chip.maintenance, .summary-month-chip.maintenance, .costs-share-hero-label,
.recv-chip.maintenance, .recv-meta-tag.maintenance { color:var(--accent2); }
.summary-chip.danger, .summary-note-pill.danger, .summary-month-chip.danger,
.recv-chip.danger, .recv-note-pill.danger { color:var(--red); }
.costs-status.unpaid, .costs-inline-status.unpaid,
.costs-card-breakdown-row.is-unpaid span, .costs-card-breakdown-row.is-unpaid strong,
.vendor-master-share-badge.is-warn, .vendor-master-share-history-row.is-warn strong { color:var(--text-warning); }
.costs-status.paid, .costs-inline-status.paid, .vendor-master-share-badge.is-ok,
.vendor-master-share-history-row.is-ok strong, .outsource-vendor-delete-block.is-ok .outsource-vendor-delete-title { color:var(--green); }
.rcv-row-chip.is-future, .costs-status.scheduled, .costs-inline-status.scheduled,
.costs-card-breakdown-row.is-scheduled span, .costs-card-breakdown-row.is-scheduled strong,
.vendor-master-share-badge.is-active, .vendor-master-share-history-row.is-active strong { color:var(--accent2); }

/* Classification is quiet; colored fills are reserved for actual feedback.
   Text/counts remain visible and decorative icons reuse the common icon set. */
.badge::before, .warn-pill::before, .costs-status::before, .costs-inline-status::before,
.recv-chip::before, .recv-note-pill::before, .recv-meta-tag::before { display:none; }
.badge .ppp-icon, .warn-pill .ppp-icon, .proj-alert-inline .ppp-icon,
.costs-status .ppp-icon, .costs-inline-status .ppp-icon,
.recv-chip .ppp-icon, .recv-note-pill .ppp-icon, .recv-meta-tag .ppp-icon,
.summary-chip .ppp-icon, .summary-month-chip .ppp-icon { width:12px; height:12px; }
.warn-pill, .recv-chip, .recv-note-pill, .recv-meta-tag { padding-left:0; }
.recv-note-pill .ppp-icon-label-text { white-space:normal; }
.recv-chip.project, .recv-chip.maintenance, .recv-meta-tag.project,
.recv-meta-tag.maintenance, .recv-meta-tag.category, .costs-kind.expense,
.summary-chip.project, .summary-chip.maintenance, .summary-month-chip.maintenance,
.costs-status.scheduled, .costs-inline-status.scheduled { color:var(--text-soft); }
.maint-category-tag {
  display:inline-flex; font-size:calc(10px + var(--ui-font-step, 0px)); border-radius:4px; padding:2px 6px; white-space:nowrap;
  background:var(--status-neutral-bg); color:var(--text-soft); border:1px solid var(--border);
}
.summary-chip.project, .summary-chip.maintenance, .summary-month-chip.maintenance,
.rcv-row-chip.is-billed { background:var(--status-neutral-bg); color:var(--text-soft); border-color:var(--border); }
.proj-alert-inline, .warn-pill, .warn-pill.muted {
  background:var(--status-neutral-bg); color:var(--text-soft); border-color:var(--border);
}
.b-attention, .proj-alert-inline.warn, .warn-pill.warn, .summary-chip.warn,
.summary-note-pill.warn, .summary-month-chip.warn, .rcv-row-chip.is-future {
  background:var(--status-warning-bg); color:var(--text-warning); border-color:var(--border);
}
.proj-alert-inline.danger, .warn-pill.danger, .summary-chip.danger,
.summary-note-pill.danger, .summary-month-chip.danger {
  background:var(--status-danger-bg); color:var(--red); border-color:var(--border);
}
.summary-chip.ok, .summary-month-chip.ok, .rcv-row-chip.is-paid {
  background:var(--status-success-bg); color:var(--green); border-color:var(--border);
}
.project-alert-chip.active { background:var(--click-bg-active); color:var(--click-text-active); border-color:var(--border); }
.rcv-status-quick-btn.is-active { background:var(--click-bg-active); color:var(--click-text-active); border-color:var(--border); }
.recv-overview-card.emphasis { background:var(--surface); }
.recv-month-card.is-current, .summary-month-card.is-current {
  background:var(--status-neutral-bg); box-shadow:inset 2px 0 0 var(--accent);
}
.recv-month-card.is-alert { background:var(--status-warning-bg); box-shadow:inset 2px 0 0 var(--text-warning); }
.recv-month-card.is-active { background:var(--click-bg-active); box-shadow:inset 2px 0 0 var(--accent); }
.panel { box-shadow:-8px 0 28px rgba(39,52,62,.08); }
.panel-header, .panel-footer { background:var(--surface); }
.panel-backdrop { background:rgba(39,52,62,.22); }
.save-toast, #task-popup, #period-popup { box-shadow:var(--shadow-overlay) !important; }
.manual-note { color:var(--green); }
.manual-shot a, .manual-shot figcaption { background:var(--surface2); }
.manual-shot::before { background:var(--surface); color:var(--dim); }

/* Resource data and saved task palettes are untouched. */
.resource-planning-toolbar, .resource-planning-overview { background:var(--surface2); }
.resource-load-chip { border-color:var(--border); }
.resource-load-chip[data-tone="free"] { background:var(--status-success-bg); color:var(--green); border-color:var(--border); }
.resource-load-chip[data-tone="steady"] { background:var(--status-progress-bg); color:var(--accent2); border-color:var(--border); }
.resource-load-chip[data-tone="busy"] { background:var(--status-warning-bg); color:var(--text-warning); border-color:var(--border); }
.resource-load-chip[data-tone="heavy"] { background:var(--status-danger-bg); color:var(--red); border-color:var(--border); }
.resource-week-card[data-tone="free"], .resource-capacity-cell[data-tone="free"] { background:var(--status-success-bg); }
.resource-week-card[data-tone="steady"], .resource-capacity-cell[data-tone="steady"] { background:var(--status-progress-bg); }
.resource-week-card[data-tone="busy"], .resource-capacity-cell[data-tone="busy"] { background:var(--status-warning-bg); }
.resource-week-card[data-tone="heavy"], .resource-capacity-cell[data-tone="heavy"] { background:var(--status-danger-bg); }
.resource-week-card.is-current { box-shadow:inset 0 0 0 1px var(--accent); }
.resource-capacity-week-head.is-current { background:var(--click-bg-active); }
.resource-capacity-project-pill, .gantt-memo-panel, .resource-memo-editor,
.resource-memo-preview, .resource-memo-source-fallback, .resource-memo-collapsed-preview,
.resource-memo-height-toggle, .resource-memo-readonly, .tm-color-block { background:var(--surface2); }
.gantt-wrap { background:var(--surface); }
.gantt-tbl th { border-right-color:var(--border); border-bottom-color:var(--border); }
.gantt-tbl td { border-right-color:var(--grid-line); border-bottom-color:var(--grid-line); }
.gantt-section td { border-top-color:var(--border) !important; border-bottom-color:var(--border) !important; }
.gantt-tbl tr.gantt-row-dim, .member-proj-item.is-dim, .resource-capacity-project-pill.is-dim { opacity:1; }
.gantt-tbl tr.gantt-row-dim .gantt-lname { color:var(--dim); }
.gantt-tbl tbody tr td.gcell:has(~ td.gtoday) .gtask-label,
.gantt-tbl tbody tr td.gcell:has(~ td.gtoday) .gtask-chip-task { filter:none; opacity:1; }
.gantt-tbl tbody tr td.gcell:has(~ td.gtoday) .gtask-chip-member,
.gtask-chip-member { opacity:1; }
.tm-name, .tpop-task-name { color:var(--text); }
.gcell-period-empty.gcell-period-start::before, .gcell-period-empty.gcell-period-end::after { color:var(--accent2); }
.gantt-wrap.gantt-period-editing .gantt-tbl thead th,
.gantt-wrap.gantt-period-editing .gantt-tbl thead th.gantt-label-td { background:#e8eaee; color:var(--accent); }
.gantt-wrap.gantt-period-editing .gantt-tbl thead th { border-right-color:var(--border); border-bottom-color:var(--border); }
.gantt-wrap.gantt-period-editing .gantt-tbl td { border-right-color:var(--grid-line); border-bottom-color:var(--grid-line); }
.gantt-wrap.gantt-period-editing .gantt-label-td { background:#f7f8fa; border-right-color:var(--border) !important; }
.gantt-workbar {
  position:sticky; bottom:12px; z-index:8;
  display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:8px;
  width:fit-content; max-width:calc(100% - 24px); margin:12px auto; padding:8px;
  border:1px solid var(--border); border-radius:12px;
  background:var(--surface); box-shadow:0 5px 20px rgba(39,52,62,.10);
}
.gantt-workbar .gantt-edit-wrap { display:flex; gap:3px; padding:3px; border-radius:8px; background:var(--surface2); }
.gantt-workbar .gmf-btn { display:inline-flex; align-items:center; justify-content:center; gap:5px; min-height:40px; padding:8px 12px; font-size:calc(13px + var(--ui-font-step, 0px)) !important; }
.gantt-workbar .btn { min-height:40px; font-size:calc(13px + var(--ui-font-step, 0px)) !important; }
.gantt-workbar svg { width:16px; height:16px; }
@media (min-width:1025px) {
  .app.is-gantt-only-scroll:not(.has-resource-memo-scroll) #res-content > .gantt-wrap {
    display:flex; flex-direction:column; height:100%;
  }
  .app.is-gantt-only-scroll:not(.has-resource-memo-scroll) .gantt-toolbar,
  .app.is-gantt-only-scroll:not(.has-resource-memo-scroll) .gantt-workbar { flex-shrink:0; }
  .app.is-gantt-only-scroll:not(.has-resource-memo-scroll) .gantt-scroll { flex:1; min-height:0; }
}
@supports ((backdrop-filter:blur(16px)) or (-webkit-backdrop-filter:blur(16px))) {
  .gantt-workbar { background:rgba(255,255,255,.84); backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px); }
}

/* Memo preview and Toast UI editor share the light surfaces, including important vendor overrides. */
.memo-md h1 { background:var(--surface2); border-color:var(--border); }
.memo-md code, .memo-md pre { background:var(--surface2); border-color:var(--border); }
.memo-md pre code { background:transparent; }
.memo-md-task-box { background:var(--surface); color:var(--text-on-accent); border-color:#8b9b93; }
.memo-md-task-box.is-checked { background:var(--accent); border-color:var(--accent); box-shadow:none; }
.resource-memo-editor-host .toastui-editor-defaultUI,
.resource-memo-editor-host .toastui-editor-main,
.resource-memo-editor-host .toastui-editor-main-container,
.resource-memo-editor-host .toastui-editor-contents,
.resource-memo-editor-host .toastui-editor-md-container .toastui-editor,
.resource-memo-editor-host .toastui-editor-ww-container,
.resource-memo-editor-host .toastui-editor-md-preview { background:var(--surface); }
.resource-memo-editor-host .toastui-editor-defaultUI-toolbar,
.resource-memo-editor-host .toastui-editor-mode-switch { background:var(--surface2); }
.resource-memo-editor-host .toastui-editor-defaultUI-toolbar .toastui-editor-toolbar-icons { filter:none; opacity:1; }
.resource-memo-editor-host .toastui-editor-contents h1 { background:var(--surface2) !important; }
.resource-memo-editor-host .toastui-editor-contents code,
.resource-memo-editor-host .toastui-editor-contents pre { background:var(--surface2); }
.resource-memo-editor-host .toastui-editor-contents li.task-list-item::before { background:var(--surface) !important; }
.resource-memo-editor-host .toastui-editor-contents li.task-list-item.checked::before {
  background:var(--accent) !important; border-color:var(--accent) !important;
  color:var(--text-on-accent) !important; box-shadow:none !important;
}

/* Receivables: quiet month navigation, a clear reading surface, fewer nested boxes.
   Screen-only; keep every metric, warning and editor in the existing flow. */
@media screen {
  .recv-overview-grid { gap:16px; margin-bottom:20px; }
  .recv-overview-primary, .recv-overview-remainder { padding:16px; gap:8px; height:auto; }
  .recv-overview-remainder { justify-content:flex-start; }
  .recv-overview-remainder .recv-detail-summary-foot { margin-top:auto; padding-top:12px; }
  .recv-overview-primary .recv-split-grid { padding-top:10px; border-top:1px solid var(--divider); }
  .recv-overview-primary .recv-stat-block { padding:0; border:0; background:transparent; }
  .recv-workspace { gap:16px; }
  .recv-workspace .recv-month-pane {
    position:static; max-height:none; overflow:visible;
    padding:12px; border-color:transparent; background:transparent;
  }
  .recv-workspace .recv-selected-pane { padding:20px; background:var(--surface); gap:16px; }
  .recv-workspace .recv-section-head { align-items:flex-start; gap:8px; }
  .recv-selected-pane .recv-section-title { font-size:calc(17px + var(--ui-font-step, 0px)); }
  .recv-month-pane .recv-section-head { flex-wrap:wrap; margin-bottom:12px; }
  .recv-month-pane .recv-month-card { padding:11px 10px; gap:5px; }
  .recv-month-pane .recv-month-card-name { font-size:calc(14px + var(--ui-font-step, 0px)); line-height:1.4; }
  .recv-month-pane .recv-month-card-amount { font-size:calc(13px + var(--ui-font-step, 0px)); line-height:1.5; }
  .recv-month-pane .recv-month-card-top, .recv-month-pane .recv-month-card-sub { flex-wrap:wrap; gap:3px 8px; }
  .recv-month-pane .recv-month-card:hover { background:var(--click-bg-hover); }
  .recv-month-pane .recv-month-card:focus-visible { outline:2px solid var(--accent); outline-offset:2px; }
  .recv-selected-pane .recv-selected-summary { grid-template-columns:minmax(0,1fr) auto; align-items:center; }
  .recv-selected-pane .recv-selected-summary-side { max-width:180px; }
  .recv-selected-pane .recv-selected-summary-grid { gap:0; }
  .recv-selected-pane .recv-selected-summary-item { border:0; border-radius:0; background:transparent; padding:0 12px; }
  .recv-selected-pane .recv-selected-summary-item:first-child { padding-left:0; }
  .recv-selected-pane .recv-selected-summary-item + .recv-selected-summary-item { border-left:1px solid var(--divider); }
  .recv-selected-pane .recv-selected-summary-item-value { white-space:normal; overflow:visible; overflow-wrap:anywhere; }
  .recv-selected-pane .recv-detail-card { padding:18px 0; gap:10px; }
  .recv-selected-pane .recv-detail-card-title { font-size:calc(14px + var(--ui-font-step, 0px)); line-height:1.5; }
  .recv-selected-pane .recv-detail-card-grid { grid-template-columns:minmax(0,1.2fr) repeat(3,minmax(0,1fr)); gap:12px; }
  .recv-selected-pane .recv-detail-metric .v { white-space:normal; overflow:visible; overflow-wrap:anywhere; }
  .recv-selected-pane .recv-detail-metric:first-child .v { font-size:calc(17px + var(--ui-font-step, 0px)); }
  .recv-selected-pane .recv-detail-card-meta, .recv-selected-pane .recv-detail-card-foot { color:var(--text-support, var(--muted)); line-height:1.5; }
}
@media screen and (min-width:1025px) {
  .recv-overview-grid { grid-template-columns:minmax(0,1.2fr) minmax(0,1fr); }
  .recv-workspace { grid-template-columns:minmax(240px,.4fr) minmax(0,1fr); }
}
@media screen and (max-width:768px) {
  .recv-workspace .recv-month-pane { padding:0; }
  .recv-workspace .recv-selected-pane { padding:16px; }
  .recv-selected-pane .recv-selected-summary { grid-template-columns:1fr; }
  .recv-selected-pane .recv-selected-summary-side { max-width:none; justify-content:flex-start; }
  .recv-selected-pane .recv-selected-summary-item { padding:10px 0; }
  .recv-selected-pane .recv-selected-summary-item + .recv-selected-summary-item { border-left:0; border-top:1px solid var(--divider); }
  .recv-selected-pane .recv-detail-card-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (max-width:1200px) { .list-area { padding:18px; } }
@media (max-width:1024px) {
  .topbar { min-height:64px; }
  .nav-item { min-height:36px; }
  .gantt-workbar { position:static; background:var(--surface); backdrop-filter:none; -webkit-backdrop-filter:none; box-shadow:none; }
}
@media (max-width:768px) {
  .list-area { padding:12px; }
  .stats { gap:10px; margin-bottom:14px; }
  .stat:not(.stat-mini) { padding:12px; min-height:84px; }
  .stat-val { font-size:calc(20px + var(--ui-font-step, 0px)); }
  .gantt-workbar { max-width:calc(100% - 16px); margin:8px auto; padding:6px; gap:6px; }
  .gantt-workbar .gantt-edit-wrap { flex:1 1 100%; }
  .gantt-workbar .gmf-btn { flex:1; min-height:40px; }
  .gantt-workbar .btn { min-height:40px; }
}
@media (prefers-reduced-motion:reduce) {
  .nav-item, .btn, .chip, .res-tbtn, .gmf-btn, .panel, .sidebar-utility-caret { transition:none; }
}
@media print {
  .gantt-workbar { display:none !important; }
  .panel, .save-toast { box-shadow:none; }
}
