/* Responsive layer; desktop markup, authorized controls and router stay intact. */
.mobile-menu-toggle{display:none}
@media(max-width:760px){
  html{scroll-padding-top:80px}
  .shell{display:block;min-width:0}
  .shell>main,.workspace,#content{min-width:0;max-width:100%}
  .shell>.sidebar{display:none;position:fixed;inset:70px 0 auto;max-height:calc(100dvh - 82px);height:auto;z-index:30;padding:20px;overflow-y:auto;box-shadow:0 12px 24px #0003}
  .mobile-menu-open .shell>.sidebar{display:flex}
  .sidebar .brand{margin-bottom:16px}
  .sidebar nav{display:grid;overflow:visible;gap:5px}
  .sidebar nav a,.sidebar #admin-navigation a{display:flex;align-items:center;min-height:46px;font-size:15px}
  .sidebar nav .finance-links{max-height:none;overflow:visible;min-width:0;margin:0 0 10px 12px;padding-left:10px}
  .sidebar #admin-navigation{margin-top:12px}
  .topbar{position:sticky;top:0;z-index:35;min-height:70px;height:auto;padding:10px max(12px,env(safe-area-inset-right)) 10px max(12px,env(safe-area-inset-left));display:flex;flex-wrap:wrap;gap:8px;background:var(--panel)}
  .mobile-menu-toggle{display:flex;gap:6px;align-items:center;min-height:44px;font-size:14px!important;padding:8px 10px!important}
  .breadcrumb{flex:1;min-width:70px;font-size:12px;overflow-wrap:anywhere}
  .top-actions{margin-left:auto;gap:4px;max-width:100%;flex-wrap:wrap}
  .top-actions button{min-height:44px;font-size:12px;padding:8px}
  .theme-control{margin:0}.theme-control>span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
  #profile-name{display:none}.profile-control{position:relative}.profile-menu{right:0;max-width:calc(100vw - 24px)}
  .workspace{padding:20px max(14px,env(safe-area-inset-right)) calc(24px + env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left))}
  .page-heading{display:block}.page-heading h1{font-size:26px;overflow-wrap:anywhere}
  .page-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;margin-top:12px}
  .creation-actions{display:flex;flex-wrap:wrap;gap:8px;max-width:100%}.page-actions button{min-height:44px;white-space:normal}
  .save-status{margin:0;min-height:20px}.panel{padding:14px}.panel-head{flex-wrap:wrap;align-items:flex-start}
  .project-cards,.client-cards,.people,.columns,.project-detail-grid,.project-overview-grid{grid-template-columns:minmax(0,1fr)!important}
  .project-card,.client-card{padding:16px;min-width:0}.entity-heading{flex-wrap:wrap}
  .project-card h3,.client-card h3{overflow-wrap:anywhere}
  .tabs-inline,.project-workspace-tabs,.project-detail-tabs,.finance-module-tabs{max-width:100%;overflow-x:auto;flex-wrap:nowrap;padding-bottom:6px}
  .tabs-inline>button,.project-workspace-tabs>button,.project-detail-tabs>button,.finance-module-tabs>button{flex-shrink:0;min-height:44px}
  .toolbar,.task-quick-filters,.task-filters-compact{min-width:0;max-width:100%}
  .task-quick-filters{display:flex;flex-direction:column;align-items:stretch;gap:12px}
  .task-filter-controls{flex-wrap:wrap!important}.task-filter-controls>label{flex:1 1 120px;min-width:0!important}
  .task-search-label{width:100%;max-width:none!important}.toolbar input{min-width:0}
  .task-filter-buttons{overflow-x:auto;max-width:100%}
  .table-wrap{min-width:0;max-width:100%;overscroll-behavior-x:contain}
  .unified-task-list .task-mobile-card{gap:10px}.unified-task-list .task-row-description{display:block;max-height:none;-webkit-line-clamp:unset}
  button,.small-button,.row-actions button,summary{min-height:44px}
  input,select,textarea,.task-inline-state,.task-inline-assignee,.task-inline-date{font-size:16px!important;max-width:100%}
  input:not([type=checkbox]):not([type=radio]),select{min-height:44px}
  dialog{width:calc(100% - 16px);max-width:760px;max-height:calc(100dvh - 16px);padding:0}
  .modal-head{padding:12px 14px;background:var(--panel)}.modal-body{padding:16px 14px}
  .form-grid{grid-template-columns:minmax(0,1fr)}.form-grid>.field{grid-column:1/-1;min-width:0}
  .form-actions{position:sticky;bottom:0;background:var(--panel);padding:12px 0 max(12px,env(safe-area-inset-bottom));flex-wrap:wrap}
  .auth-screen{padding:16px}.auth-card{width:100%;min-width:0;padding:24px 18px}
  .toast{width:max-content;max-width:calc(100% - 24px);bottom:calc(16px + env(safe-area-inset-bottom));z-index:60}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
.preview-notice{padding:10px 14px;background:#fff4dd;color:#533e15;display:flex;gap:10px;align-items:center;justify-content:center;flex-wrap:wrap;font-size:13px}.preview-notice button{font-size:12px;min-height:44px}.preview-notice~.shell .topbar{top:0}
@media(max-width:760px){.summary-compact .contribution-block,.contribution-block{min-width:0!important;width:100%;max-width:100%;overflow-x:auto}.client-contribution-scroll{min-width:0!important;max-width:100%}.home-finance-grid>*,.home-contribution-clients>*{min-width:0;max-width:100%}}

/* App shell: same modules and actions, optimized for one-handed use. */
.mobile-dock{display:none}
@media(max-width:760px){
 .mobile-dock{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));position:fixed;inset:auto 0 0;z-index:40;gap:4px;padding:8px max(12px,env(safe-area-inset-right)) calc(8px + env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));background:var(--panel);border-top:1px solid var(--line);box-shadow:0 -4px 24px #122c300a}
 .mobile-dock button{border:0;background:transparent;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:6px 2px;min-height:54px;font-size:11px;color:var(--muted);border-radius:12px}
 .mobile-dock button[hidden]{display:none}.mobile-dock button.active{background:var(--soft);color:var(--accent);font-weight:650}.mobile-dock svg{width:23px;height:23px}
 .topbar{min-height:58px;flex-wrap:nowrap;padding-block:7px;gap:12px}.topbar .breadcrumb{font-size:13px}.topbar .breadcrumb>span:first-child{padding:0 6px}.topbar .mobile-menu-toggle{font-size:0!important;min-width:44px;width:44px;padding:8px!important;justify-content:center}.mobile-menu-toggle::before{content:'☰';font-size:21px}.mobile-menu-toggle>span{display:none}
 .sidebar .top-actions{display:flex;flex-wrap:wrap;justify-content:flex-start;border-top:1px solid #ffffff30;margin:18px 0 0;padding-top:16px}.sidebar .top-actions button{color:#e5eeea}.sidebar .theme-control{margin-right:6px}.sidebar .profile-menu{background:var(--panel)}.sidebar .profile-menu button{color:var(--ink)}.sidebar #profile-name{display:inline}.sidebar .profile-control{width:100%}.sidebar .profile-menu{position:static;margin-top:8px}
 .shell>.sidebar{max-height:calc(100dvh - 145px);border-radius:0 0 22px 22px}
 .workspace{padding-top:18px;padding-bottom:calc(100px + env(safe-area-inset-bottom))}
 .page-heading{margin-bottom:18px}.page-heading h1{font-size:27px;letter-spacing:-.6px;line-height:1.15;margin:0 0 12px}
 .page-actions{margin-top:0;gap:8px}.creation-actions{width:100%}.creation-actions>.primary{flex:1;min-height:46px;border-radius:12px;font-size:14px}.save-status{font-size:11px}
 .panel{border-radius:18px;margin-bottom:16px;padding:16px}.project-card,.client-card{border-radius:16px;background:var(--panel)}.metric{border-radius:14px}.project-card h3{font-size:17px}
 .unified-task-list tr.task-mobile-card{border-radius:16px;padding:16px;box-shadow:0 3px 12px #122c3006}
 .project-detail-tabs,.tabs-inline{gap:6px}.project-detail-tabs>button,.tabs-inline>button{border-radius:12px}
 .preview-notice{padding:5px 10px;font-size:10px;gap:5px}.preview-notice button{min-height:28px;padding:4px 8px;font-size:10px}
 .toast{bottom:calc(88px + env(safe-area-inset-bottom))}
 dialog{border-radius:22px;width:calc(100% - 12px)}.modal-head h2{font-size:19px}
}
@media(max-width:760px){.project-overview-kpis .metric{min-height:100px;padding:14px}.project-overview-kpis .metric .label{margin-bottom:8px}.project-overview-kpis .metric .detail{margin-top:6px;font-size:10px}.mobile-menu-toggle{position:relative}.mobile-menu-toggle::before{background:var(--panel);position:absolute;inset:0;display:grid;place-items:center;border-radius:8px}}
/* Two-row editable task cards. Native controls retain their original handlers. */
@media(max-width:600px){
 .unified-task-list tr.task-mobile-card{grid-template-columns:44px minmax(100px,1fr) minmax(100px,114px);gap:6px 8px;padding:10px 12px;border-radius:13px;align-items:center}
 .unified-task-list tr.task-mobile-card>td:first-child{grid-column:1/-1}
 .unified-task-list tr.task-mobile-card>td[data-mobile-label]::before{display:none!important}
 .unified-task-list .task-row-meta{display:none}
 .unified-task-list .task-title-link,.unified-task-list .task-row-title{font-size:14px;line-height:1.35;text-align:left;white-space:normal;overflow-wrap:anywhere;min-height:30px;padding:0;border:0;background:transparent;font-weight:600;display:block;width:100%}
 .unified-task-list .task-title-link{padding-right:18px;position:relative}
 .unified-task-list .task-title-link::after{content:'›';position:absolute;right:0;top:1px;color:var(--muted);font-size:20px}
 .unified-task-list .task-assignee-control{position:relative;width:44px;min-height:44px;display:flex;align-items:center;justify-content:center;flex-wrap:nowrap}
 .unified-task-list .task-assignee-control>.task-inline-assignee{position:absolute;inset:0;width:44px!important;min-width:0!important;opacity:0;cursor:pointer}
 .unified-task-list .task-assignee-control:focus-within{outline:2px solid var(--accent);outline-offset:1px;border-radius:10px}
 .unified-task-list .task-assignee-control .task-assignees{pointer-events:none}
 .unified-task-list .task-date-field{width:100%;min-height:44px;height:44px;padding:4px 6px;font-size:12px;justify-content:center;border-radius:9px}
 .unified-task-list .task-date-field .task-date-label{font-size:12px;white-space:nowrap}
 .unified-task-list .task-inline-state{width:100%;min-width:0;min-height:44px;height:44px;padding:6px 20px 6px 7px;border-radius:9px;font-size:12px!important}
 .unified-task-list tr.task-mobile-card>td[data-mobile-label=Acciones]{grid-column:1/-1}
 .unified-task-list tr.task-mobile-card>td[data-mobile-label=Acciones]:empty{display:none}
 .unified-task-list .task-order-buttons{flex-direction:row}
}
@media(max-width:600px){.unified-task-list .task-assignee{position:relative;gap:0}.unified-task-list .task-assignee>span:last-child{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.unified-task-list .task-assignee-avatar{width:32px;height:32px;min-width:32px;font-size:11px}.unified-task-list tbody{gap:8px}}
/* Mobile filter rows must not inherit the desktop flex bases. */
@media(max-width:760px){
 .task-quick-filters.task-filters-compact .task-filter-controls{display:grid!important;grid-template-columns:minmax(0,1fr) 44px auto;gap:12px 8px;width:100%;max-width:100%;min-width:0;align-items:end}
 .task-quick-filters.task-filters-compact .task-filter-controls>.task-search-label,
 .task-quick-filters.task-filters-compact .task-filter-controls>.task-filter-icons,
 .task-quick-filters.task-filters-compact .task-filter-controls>label{grid-column:1/-1;display:grid;grid-template-rows:auto auto;gap:6px;width:100%;max-width:none!important;min-width:0!important;flex:none;align-items:start;text-align:left}
 .task-quick-filters.task-filters-compact .task-filter-controls>label>input,
 .task-quick-filters.task-filters-compact .task-filter-controls>label>select{width:100%;min-width:0;max-width:100%;height:44px;min-height:44px;margin:0;padding:9px 10px}
 .task-quick-filters.task-filters-compact .task-filter-icons>.task-filter-label{text-align:left;line-height:16px;min-height:16px}
 .task-quick-filters.task-filters-compact .task-filter-icons>.task-filter-buttons{display:flex;justify-content:flex-start;width:100%;max-width:100%;height:44px;min-height:44px;gap:7px;padding:0;overflow-x:auto;flex-wrap:nowrap}
 .task-quick-filters.task-filters-compact .task-filter-icons>.task-filter-buttons>button{flex:0 0 auto;min-height:44px;height:44px;min-width:44px;width:auto;margin:0;padding:6px 8px}
 .task-quick-filters.task-filters-compact .task-filter-icons>.task-filter-buttons>.person-filter{width:44px;padding:5px}
 .task-quick-filters.task-filters-compact .task-extra-filters{grid-column:1;min-width:0}
 .task-quick-filters.task-filters-compact .task-extra-filters>summary{min-height:44px;display:flex;align-items:center}
 .task-quick-filters.task-filters-compact .task-filter-controls>.task-reset{grid-column:2;width:44px;height:44px;min-height:44px;margin:0}
 .task-quick-filters.task-filters-compact [data-reorder-tasks]{grid-column:3;min-height:44px;padding:8px;font-size:12px}
 .task-quick-filters.task-filters-compact .task-extra-filters[open]>.task-filter-buttons{position:static;min-width:0;max-width:100%;width:100%;margin-top:8px;box-shadow:none}
 .task-results-summary{flex-wrap:wrap;align-items:flex-start}.task-group-controls{display:flex;flex-wrap:wrap;max-width:100%}
}
@media(max-width:600px){.unified-task-list tr.task-mobile-card{grid-template-columns:40px minmax(0,1fr) minmax(0,1fr)}.unified-task-list .task-date-field{min-width:0}}
