/* Ajustes transversales para operación desde teléfono y tablet. */
.sidebar-backdrop{display:none}

@media(max-width:900px){
  body.sidebar-is-open{overflow:hidden}
  .sidebar{width:min(290px,86vw);box-shadow:12px 0 35px rgba(0,0,0,.22)}
  .sidebar-backdrop{position:fixed;inset:0;z-index:1025;border:0;background:rgba(8,20,28,.48)}
  body.sidebar-is-open .sidebar-backdrop{display:block}
  .topbar{height:64px;padding:0 14px}
  .topbar .ms-auto{gap:.5rem!important}
  .topbar .btn{min-height:40px}
  .main-content{padding:18px 14px 28px}
  .panel{padding:16px;border-radius:10px}
  .page-heading{gap:14px;flex-wrap:wrap}
  .page-heading>div:last-child:not(:first-child){display:flex;flex-wrap:wrap;gap:8px}
  .page-heading h1{font-size:1.5rem;overflow-wrap:anywhere}
  .page-heading p{font-size:.92rem}
  .panel-title{gap:10px;align-items:flex-start;flex-wrap:wrap}
  .panel-title>div{min-width:0}
  .alert.d-flex,.list-group-item.d-flex{align-items:flex-start!important;flex-direction:column;gap:12px}
  .list-group-item>div:last-child{display:flex;flex-wrap:wrap;gap:6px;width:100%}
  .list-group-item form{margin:0!important}
  .form-panel{max-width:none}
  input,select,textarea,.form-control,.form-select{font-size:16px!important}
  .modal-dialog{margin:.65rem;max-width:none}
  .modal-content{max-height:calc(100dvh - 1.3rem);overflow:auto}
  .modal-footer{position:sticky;bottom:0;background:#fff;border-top:1px solid var(--line);z-index:2}
  .table-responsive{margin-inline:-16px;padding-inline:16px;scrollbar-width:thin}
  .table-responsive table{min-width:680px}
  .table-responsive::after{content:'Desliza para ver más →';display:block;position:sticky;left:0;width:max-content;color:var(--muted);font-size:.72rem;padding:2px 0 5px}
  .table td,.table th{vertical-align:middle}
  .certificate-actions,.report-actions{display:flex;flex-wrap:wrap;gap:8px}
  .report-actions{position:sticky;bottom:0;margin:0 -14px -28px;padding:12px 14px;background:rgba(243,246,249,.97);z-index:20}
  .report-actions .btn,.certificate-actions .btn{flex:1 1 190px}
  .application-details{flex-direction:column!important;gap:10px}
  .application-quantity{margin-left:0!important}
  .searchable-select-menu{max-height:min(45vh,320px)}
  .quote-totals{margin-left:0!important}
}

@media(max-width:700px){
  /* Cada día del mes sigue visible y pulsable en móvil. */
  .calendar-panel{overflow:visible!important}
  .calendar-weekdays{display:none!important}
  .calendar-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px;min-width:0!important}
  .calendar-day.outside{display:none!important}
  .calendar-day:not(.outside){display:block!important;position:relative;min-height:92px!important;margin:0!important;padding:38px 8px 8px!important;border:1px solid var(--line)!important;border-radius:9px!important;overflow:visible}
  .calendar-day:not(.outside)::before{display:none!important}
  .calendar-day .day-number{left:8px!important;top:6px!important}
  .calendar-day .day-add{display:grid!important;opacity:1!important;right:7px!important;top:7px!important}
  .calendar-event{font-size:.7rem!important;padding:6px!important;white-space:normal;overflow-wrap:anywhere}
  .calendar-toolbar{position:static!important;display:grid;grid-template-columns:auto 1fr auto;gap:6px}
  .calendar-toolbar h2{grid-column:1/-1;grid-row:1;text-align:center;margin:0 0 5px!important;min-width:0!important}
  .calendar-toolbar .ms-auto{grid-column:1/-1;margin:5px 0 0!important;display:flex;flex-wrap:wrap;gap:6px}
  .calendar-toolbar .btn{flex:1 1 auto}
  .color-picker{gap:9px}
  .color-picker span{width:38px;height:38px}
}

@media(max-width:560px){
  .main-content{padding:14px 10px 24px}
  .panel{padding:13px}
  .page-heading{display:flex;margin-bottom:18px}
  .page-heading>a.btn,.page-heading>form,.page-heading>form .btn{width:100%}
  .page-heading>div:last-child:not(:first-child),.page-heading>div:last-child:not(:first-child) .btn{width:100%}
  .panel-title .status{white-space:normal}
  .metric-card{min-height:105px}
  .metric-card>div{padding:13px}
  .metric-card strong{font-size:1.35rem}
  .chart-wrap{height:240px}
  .login-panel{padding:24px 16px}
  .login-card h2{font-size:1.6rem}
  .btn-lg{font-size:1rem;padding:.65rem .9rem}
  form>.mt-4>.btn,form>.mt-4>a.btn{width:100%;margin:0 0 8px}
  .image-preview-grid,.work-gallery{grid-template-columns:1fr!important}
  .image-preview-card img,.work-gallery img{height:210px!important}
  .readonly-grid{grid-template-columns:1fr!important}
  .service-check-card{padding:12px}
  .report-check{flex:1 1 145px}
  .modal-footer{display:grid;grid-template-columns:1fr;width:100%}
  .modal-footer .btn{width:100%;margin:0!important}
  .modal-body .col-6{width:100%}
  .finance-metrics{grid-template-columns:1fr!important}
  .quote-totals{width:100%}
  .table-responsive{margin-inline:-13px;padding-inline:13px}
  .sp-document{display:block!important;overflow:visible!important;width:216mm;zoom:.54;transform-origin:top left}
  .sp-page{box-shadow:none;margin-bottom:12px}
}

@media(max-width:430px){
  .sp-document{zoom:.48}
  .calendar-grid{grid-template-columns:1fr!important}
  .calendar-day:not(.outside){min-height:74px!important}
}

@media(max-width:370px){.sp-document{zoom:.41}}

@media print{.sidebar-backdrop{display:none!important}.sp-document{zoom:1!important}}
