/* One text step across both UIs. Do not zoom the page or its drag coordinates.
   Source declarations retain their hierarchy and use a zero fallback for print
   windows and older pages that do not load this screen-only sizing layer. */
:root { --ui-font-step:0px; }
@media screen {
  :root { --ui-font-step:2px; }

  .btn { min-height:40px; gap:7px; }
  .year-tab, .res-tbtn, .gmf-btn, .mode-btn { min-height:36px; }
  .chip, .project-alert-chip, .recv-tab { min-height:36px; }
  .chip .n, .project-alert-chip .n, .recv-tab .n { min-width:22px; height:22px; border-radius:11px; }
  .nav-item { min-height:44px; gap:10px; }
  .nav-icon { width:18px; height:18px; }
  .nav-icon .ppp-icon, .btn > .ppp-icon { width:18px; height:18px; }
  .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:14px; height:14px; }
  .panel-close { width:34px; height:34px; }
  .topbar { min-height:80px; }
  .topbar-title, #role-badge, .topbar > .btn { flex-shrink:0; white-space:nowrap; }
  .search { min-height:40px; width:260px; }
  .search input { min-width:0; }
  .fi, .fs, .fta { min-width:0; min-height:40px; }
  .fg2 { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .fg, .money-wrap { min-width:0; }
  .fl, .cost-field-label { line-height:1.4; }
  .ps { margin-bottom:22px; }
  .panel-body { padding:20px; }
  .panel-header { gap:10px; }
  .panel .rcv-line-main, .panel .rcv-line-advanced { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .panel .rcv-status-quick { justify-content:flex-start; }
  .panel .rcv-row .fi, .panel .rcv-row .fs { min-width:0; }
  .gtask-label { height:24px; }
  .gtask-chip { padding:4px 5px; }
  .ui-disclosure > summary { line-height:1.6; }
  .project-detail-totals strong { overflow-wrap:anywhere; }
  .resource-load-chip { min-height:28px; }
  .resource-load-chip.is-compact { min-height:24px; }
  .res-chip { white-space:nowrap; }
  .summary-dashboard, .summary-side { min-width:0; }
  .summary-chip, .summary-note-pill, .summary-month-chip { max-width:100%; white-space:normal; }
  .gantt-section-heading > span { white-space:nowrap; }
  /* Names are the primary scan target; never truncate them to fit amounts. */
  .proj-name, .maintenance-name, .costs-project { font-weight:700; line-height:1.55; }
  .project-open-button { max-width:100%; overflow-wrap:anywhere; }
  .proj-client { margin-top:5px; }

  @media (min-width:1025px) {
    .sidebar { width:208px; min-width:208px; overflow-y:auto; }
    .sidebar .logo { padding-left:16px; padding-right:16px; }
    .panel, .panel-inner { width:560px; max-width:100%; }
    .panel:has(.project-detail-content), .panel:has(.project-detail-content) .panel-inner { width:580px; max-width:100%; }
    #view-projects .project-data-row td[data-label="担当"] { min-width:88px; }
    #view-projects .project-data-row td[data-label="回収"] { min-width:104px; }
  }
  @media (min-width:1025px) and (max-width:1200px) {
    .topbar { height:auto; flex-wrap:wrap; padding-top:12px; padding-bottom:12px; gap:8px 10px; }
    .topbar .search { order:20; flex-basis:100%; width:100%; }
  }
  @media (min-width:769px) {
    .list-name-cell { min-width:300px; }
    #view-projects .proj-cell-main { width:100%; grid-template-columns:minmax(0,1fr); row-gap:6px; }
    #view-projects .project-data-row td[data-label="回収"] { width:112px; }
    #view-projects .project-data-row td[data-label="回収"] .amt-sub { white-space:normal; line-height:1.45; }
  }
  @media (min-width:769px) and (max-width:1200px) {
    #view-projects th, #view-projects .project-data-row td { padding-left:10px; padding-right:10px; }
  }
  @media (min-width:769px) and (max-width:1024px) {
    .panel, .panel-inner { width:min(92vw, 560px); }
    .panel:has(.project-detail-content), .panel:has(.project-detail-content) .panel-inner { width:min(92vw, 580px); }
    .sidebar .nav-group { flex-wrap:wrap; }
  }
  @media (max-width:768px) {
    .gantt-section-heading { padding:8px 6px !important; }
    .summary-overview-grid, .summary-side { grid-template-columns:minmax(0,1fr); }
    .reserve-overview-grid { grid-template-columns:minmax(0,1fr) !important; }
    .topbar { min-height:0; padding-top:12px; padding-bottom:12px; }
    .panel-body { padding:16px; }
    .fg2, .panel .rcv-line-main, .panel .rcv-line-advanced { grid-template-columns:minmax(0,1fr); }
    .panel-header { gap:6px; }
    .panel-title { font-size:calc(14px + var(--ui-font-step, 0px)); }
    .mode-btn { padding-left:9px; padding-right:9px; }
    .gtask-label { height:22px; }
    .gantt-workbar .gantt-edit-wrap { flex-wrap:wrap; }
  }
}
