/* Mobile audit fixes. Desktop tables retain their full spreadsheet layout. */
.hours-records,.hours-mobile-totals { display:none; }
.instrument-card-timestamps { padding:16px 0 4px; border-top:1px solid #e5e7eb; margin-top:18px; }
.mobile-modal-close { display:grid; place-items:center; min-width:44px; min-height:44px; }
.list-pagination { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:8px; margin:12px 0; color:#64748b; font-size:12px; }
.list-pagination nav { display:flex; gap:8px; }
.list-pagination a { display:inline-flex; align-items:center; justify-content:center; min-height:44px; min-width:64px; padding:0 12px; border:1px solid #dbe3ed; border-radius:9px; color:#245ed3; background:white; }
.training-next-deadline { display:flex; flex-direction:column; align-items:flex-start; gap:5px; margin-top:10px; font-size:12px; }
.training-next-deadline > span { padding:4px 6px; border-radius:5px; }
.training-deadlines { margin-top:8px; font-size:12px; }
.training-deadlines summary { display:flex; align-items:center; min-height:44px; cursor:pointer; color:#245ed3; }
.training-deadlines summary::after { content:'⌄'; margin-left:8px; }
.training-deadlines dl > div { display:flex; justify-content:space-between; gap:12px; padding:8px 0; border-top:1px solid #eef2f6; }
.training-deadlines dd { text-align:right; padding:3px 5px; border-radius:4px; }
.training-deadlines small { display:block; }
.metric-jump-links { display:flex; flex-wrap:wrap; gap:6px; margin:12px 0; }
.metric-jump-links a { display:inline-flex; align-items:center; min-height:44px; padding:0 12px; border:1px solid #dce5f0; background:#fff; border-radius:9px; color:#245ed3; font-size:12px; }
#metric-summary,#asset-table,#metric-method { scroll-margin-top:12px; }
.metric-extra-filters { min-width:0; flex:1; }
.metric-extra-filters > summary { cursor:pointer; color:#49637f; font-size:12px; min-height:44px; align-content:center; }
.metric-extra-fields { display:flex; flex-wrap:wrap; gap:8px; }
@media (min-width:768px) {
  .metric-extra-filters > summary { display:none; }
}
@media (max-width:767px) {
  /* 16px prevents Safari's automatic input zoom; zoom itself remains enabled. */
  input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=submit]):not([type=button]):not([type=file]):not([type=range]):not([type=color]),select,textarea {
    font-size:16px!important; min-height:44px; min-width:0; max-width:100%;
  }
  [data-controller~="compact-filters"] button,[data-controller~="compact-filters"] a { min-height:44px; }
  .mobile-flow-list { height:auto!important; margin-left:0; margin-right:0; margin-bottom:0; }
  .mobile-flow-list > .overflow-auto { overflow:visible; }
  .mobile-flow-list [title="Редактировать"],.mobile-flow-list [title="Удалить"],.hours-index-list a,.hours-index-list button {
    display:inline-flex; align-items:center; justify-content:center; min-height:44px; min-width:44px; flex-shrink:0;
  }
  .mobile-flow-list a[title="Редактировать"] svg { width:18px; height:18px; }
  .mobile-tabs a,.profile-tab-navigation a { display:inline-flex; align-items:center; justify-content:center; min-height:44px; }
  .mobile-tabs,.profile-tab-navigation { scroll-padding-inline:8px; scrollbar-width:thin; overscroll-behavior-x:contain; }
  .personnel-list table,.personnel-list tbody { display:block; white-space:normal; }
  .personnel-list thead { display:none; }
  .personnel-list tbody tr { display:grid; position:relative; grid-template-columns:minmax(0,1fr) minmax(0,1fr); padding:12px; margin-bottom:8px; border:1px solid #e2e8f0; border-radius:12px; background:white; }
  .personnel-list tbody td { display:block; position:static; min-width:0; max-width:none; border:0; padding:5px 0; overflow-wrap:anywhere; text-align:left; }
  .personnel-list td[data-label="№"] { color:#94a3b8; grid-column:1/-1; padding:0; font-size:11px; }
  .personnel-list td[data-label="ФИО"],.personnel-list td[data-label="Должность"],.personnel-list td[data-label="Действия"] { grid-column:1/-1; }
  .personnel-list td[data-label="ФИО"] { background:transparent; font-size:14px; }
  .personnel-list td[data-label="ФИО"] > a { white-space:normal; max-width:none; }
  .personnel-list td[data-label]:not([data-label="№"]):not([data-label="ФИО"]):not([data-label="Должность"]):not([data-label="Действия"])::before { content:attr(data-label); display:block; font-size:10px; color:#94a3b8; margin-bottom:3px; }
  .personnel-list td[data-label="Действия"] > div { display:flex; justify-content:flex-start; flex-wrap:wrap; gap:12px; }
  .personnel-list td[data-label="Действия"] a,.personnel-list td[data-label="Действия"] button { display:inline-flex; align-items:center; min-height:44px; }
  .timesheet-list > .overflow-auto { overflow:auto; }
  .timesheet-list table { width:max-content; }
  .timesheet-list th:nth-child(1),.timesheet-list td:nth-child(1),.timesheet-list th:nth-child(3),.timesheet-list td:nth-child(3) { display:none; }
  .timesheet-list th:nth-child(2),.timesheet-list td:nth-child(2) { left:0; min-width:112px; max-width:112px; width:112px; padding:6px 8px; }
  .timesheet-list td:nth-child(2) a { max-width:96px; white-space:normal; font-size:11px; line-height:1.35; }
  .timesheet-list th:nth-child(n+4),.timesheet-list td:nth-child(n+4) { min-width:44px; height:44px; }
  .timesheet-month-nav { display:grid; grid-template-columns:44px minmax(0,1fr) 44px; padding:8px; gap:6px; }
  .timesheet-month-nav input { grid-column:1/-1; width:100%; }
  .timesheet-month-nav > a { display:grid; place-items:center; height:44px; min-width:44px; }
  .timesheet-month-nav > span:last-child { display:none; }
  .timesheet-list [data-timesheet-table-target="popup"] { width:calc(100vw - 16px); max-height:70dvh; overflow:auto; }
  .timesheet-list [data-timesheet-table-target="popup"] > div { flex-wrap:wrap; }
  .timesheet-list [data-timesheet-table-target="popup"] select { width:100%; }
  .timesheet-list [data-timesheet-table-target="popup"] button { min-width:44px; min-height:44px; }
  .notebook-date-toolbar { display:grid; grid-template-columns:minmax(0,1fr); }
  .notebook-date-navigation { display:grid; width:100%; grid-template-columns:44px minmax(0,1fr) 44px; align-items:start; }
  .notebook-date-navigation > a { display:grid; place-items:center; width:44px; height:44px; }
  .notebook-date-form { display:flex; flex-direction:column; min-width:0; }
  .notebook-date-form input { width:100%; min-width:0; max-width:100%; }
  .notebook-date-form input[type=submit] { min-height:44px; }
  .notebook-date-toolbar > a { display:flex; align-items:center; justify-content:center; min-height:44px; }
  .metric-page .metric-presets a,.metric-page .metric-table-tools a { display:inline-flex; align-items:center; min-height:44px; padding:0 8px; }
  .metric-extra-filters { flex-basis:100%; }
  .metric-extra-fields { flex-direction:column; }
  .metric-extra-fields > * { width:100%; }
  .metric-jump-links { display:grid; grid-template-columns:1fr 1fr; }
  .metric-jump-links a:nth-child(2) { grid-column:2; grid-row:1; }
  .metric-jump-links a:last-child { grid-column:1/-1; }
}
/* Also apply in phone landscape: width alone does not describe usable height. */
@media (max-width:767px), (max-height:500px) and (max-width:1000px) {
  .instrument-card > header { padding:12px 54px 10px 16px; }
  .instrument-card > header h2 { font-size:17px; line-height:1.25; padding:0; }
  .instrument-card > header dl { margin-top:7px; gap:4px 12px; font-size:11px; }
  .instrument-card > nav { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0; padding:0 8px; }
  .instrument-card > nav button { min-height:44px; min-width:0; padding:8px 2px; font-size:12px; }
  .instrument-card > section { padding:0 16px 12px; }
  .instrument-card > section > p { max-height:none; overflow:visible; padding-top:12px; }
  .instrument-card > footer { padding:4px 16px; justify-content:flex-end; }
  .instrument-card > footer a { display:inline-flex; align-items:center; min-height:44px; }
  .instrument-card [role=tabpanel] > dl > div { padding-top:10px; padding-bottom:10px; }
  .hours-modal .hours-workspace { display:block; overflow-y:auto; overscroll-behavior:contain; }
  .hours-modal .hours-workspace > .hours-heading { padding:12px 54px 10px 14px; gap:8px; }
  .hours-workspace .hours-heading__icon,.hours-workspace .hours-eyebrow { display:none; }
  .hours-workspace .hours-heading h2 { font-size:17px; line-height:1.25; margin:0 0 3px; }
  .hours-workspace .hours-heading p { font-size:11px; }
  .hours-workspace .hours-toolbar { padding:6px 10px; gap:4px; }
  .hours-workspace .hours-toolbar__actions { gap:4px; }
  .hours-workspace .hours-toolbar .hours-button { min-height:44px; font-size:11px; padding:6px; }
  .hours-workspace .hours-record-count { display:none; }
  .hours-workspace .hours-desktop-metrics,.hours-workspace .hours-sheet-scroll,.hours-workspace .hours-mobile-hint { display:none; }
  .hours-mobile-totals { display:block; margin:0 10px 6px; border:1px solid #dce5f0; border-radius:8px; background:#f5f8ff; }
  .hours-mobile-totals > summary { padding:0 10px; min-height:44px; align-content:center; cursor:pointer; font-size:12px; color:#245ed3; }
  .hours-mobile-totals .hours-metrics { padding:8px; gap:6px; grid-template-columns:repeat(2,minmax(0,1fr)); }
  .hours-mobile-totals > p { padding:8px; font-size:11px; color:#62748e; }
  .hours-records { display:block; margin:0 10px; }
  .hours-record { border-bottom:1px solid #e3eaf4; }
  .hours-record > summary { display:flex; justify-content:space-between; align-items:center; gap:10px; padding:9px 4px; min-height:61px; cursor:pointer; list-style:none; font-size:12px; }
  .hours-record > summary::-webkit-details-marker { display:none; }
  .hours-record summary > span:first-child { min-width:0; }
  .hours-record summary strong { font-weight:600; }
  .hours-record summary small { display:block; color:#7a8ba2; font-size:10px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:100%; }
  .hours-record-total { text-align:right; white-space:nowrap; color:#245ed3; font-weight:650; }
  .hours-record dl { display:grid; grid-template-columns:1fr 1fr; gap:8px; background:#f5f8fc; border-radius:8px; padding:10px; font-size:12px; }
  .hours-record dt { font-size:10px; color:#7a8ba2; }
  .hours-record dd { overflow-wrap:anywhere; }
  .hours-record dl > div:nth-child(5),.hours-record dl > div:nth-child(9) { grid-column:1/-1; }
  .hours-workspace .hours-journal-footer { padding:10px 14px; font-size:10px; }
  .hours-workspace .hours-journal-footer span { display:none; }
}
/* Grid children must be allowed to shrink after increasing input text to 16px. */
.metric-page { min-width:0; grid-template-columns:minmax(0,1fr); }
.metric-page > *,.metric-heading > div { min-width:0; }
@media (max-width:767px) {
  .metric-filter-dates > label { min-width:0; }
  .metric-page .metric-presets { flex-wrap:wrap; gap:4px; }
  .metric-presets > span { flex-basis:100%; }
  .metric-heading > .metric-button { min-width:44px; min-height:44px; }
}
@media (max-width:767px) {
  a[title="Редактировать"],button[title="Удалить"] { display:inline-flex; align-items:center; justify-content:center; min-width:44px; min-height:44px; flex-shrink:0; }
  .instrument-card [role=tabpanel] a,.instrument-card [role=tabpanel] button { display:inline-flex; align-items:center; min-height:44px; }
}
@media (max-width:380px) {
  .metric-page .metric-filter-dates { display:grid; grid-template-columns:minmax(0,1fr); }
  .metric-filter-dates > span { display:none; }
  .metric-page .metric-filter-dates > label { display:grid; grid-template-columns:20px minmax(0,1fr); }
}
.metric-calculation-details > summary { display:none; }
@media (max-width:767px) {
  .metric-calculation-details > summary { display:block; min-height:44px; padding:12px; border:1px solid #dce5f0; background:white; border-radius:10px; cursor:pointer; font-size:12px; color:#49637f; }
  .metric-calculation-details > summary::after { content:' ⌄'; }
  .metric-calculation-details[open] > summary { margin-bottom:8px; }
}
@media (max-width:767px) {
  .notebook-date-toolbar { grid-template-columns:44px minmax(0,1fr) minmax(0,1fr) 44px; gap:6px; }
  .notebook-date-navigation,.notebook-date-form { display:contents; }
  .notebook-date-navigation > a:first-child { grid-column:1; grid-row:1; }
  .notebook-date-navigation > a:last-child { grid-column:4; grid-row:1; }
  .notebook-date-form input[type=date] { grid-column:2/4; grid-row:1; }
  .notebook-date-form input[type=submit] { grid-column:1/3; grid-row:2; }
  .notebook-date-toolbar > a { grid-column:3/5; grid-row:2; }
}
