/* Kit móvil Linksur: patrones compartidos para pantallas menores a 768 px. */
.ls-sheet-backdrop { position: fixed; inset: 0; background: rgba(3, 6, 15, .62); z-index: 1060; animation: ls-fade .18s ease-out; }
.ls-sheet { position: fixed; left: 0; right: 0; bottom: 0; z-index: 1061; max-height: 88vh; display: flex; flex-direction: column; background: var(--ls-surface); border: 1px solid var(--ls-border); border-bottom: 0; border-radius: 20px 20px 0 0; box-shadow: var(--ls-shadow-lg); padding-bottom: env(safe-area-inset-bottom); animation: ls-sheet-up .22s ease-out; }
@media (min-width: 768px) {
  .ls-sheet.is-dialog { left: 50%; right: auto; top: 50%; bottom: auto; width: min(32rem, calc(100vw - 3rem)); max-height: 85vh; transform: translate(-50%, -50%); border-radius: var(--ls-radius-lg); border-bottom: 1px solid var(--ls-border); padding-bottom: 0; animation: ls-dialog-in .18s ease-out; }
  .ls-sheet.is-dialog.is-sm { width: min(24rem, calc(100vw - 3rem)); }
  .ls-sheet.is-dialog.is-lg { width: min(48rem, calc(100vw - 3rem)); }
  .ls-sheet.is-dialog .ls-sheet-handle { display: none; }
  .ls-sheet.is-dialog .ls-sheet-head { padding: 1.1rem 1.25rem .75rem; border-bottom: 1px solid var(--ls-border); }
  .ls-sheet.is-dialog .ls-sheet-body { padding: 1rem 1.25rem 1.25rem; }
  .ls-sheet.is-dialog .ls-sheet-foot { display: flex; justify-content: flex-end; gap: .5rem; padding: .85rem 1.25rem; }
}
@keyframes ls-dialog-in { from { opacity: 0; transform: translate(-50%, calc(-50% + 8px)); } }
.ls-sheet-handle { width: 2.5rem; height: 4px; border-radius: 4px; background: var(--ls-border-strong); margin: .6rem auto 0; }
.ls-sheet-head { display: flex; align-items: center; justify-content: space-between; gap: .75rem; padding: .6rem 1.1rem .5rem; }
.ls-sheet-head h2 { font-size: 1rem; margin: 0; }
.ls-sheet-body { padding: .25rem 1.1rem 1.1rem; overflow-y: auto; }
.ls-sheet-foot { padding: .85rem 1.1rem; border-top: 1px solid var(--ls-border); background: var(--ls-surface-2); }
body.ls-sheet-open { overflow: hidden; }
@keyframes ls-sheet-up { from { transform: translateY(100%); } }
@keyframes ls-fade { from { opacity: 0; } }

.ls-action-list { display: grid; gap: .25rem; }
.ls-action-item { display: flex; align-items: center; gap: .85rem; width: 100%; min-height: 3rem; padding: .7rem .85rem; border: 0; border-radius: var(--ls-radius); background: transparent; color: var(--ls-text); text-align: left; font-weight: 500; text-decoration: none; }
.ls-action-item .ti { font-size: 1.3rem; color: var(--ls-text-3); flex: none; }
.ls-action-item > span:not(.ls-avatar) { display: flex; flex-direction: column; }
.ls-action-item small { color: var(--ls-text-3); font-weight: 400; font-size: var(--ls-fs-xs); }
.ls-action-item:hover, .ls-action-item:focus-visible, .ls-action-item.is-active { background: var(--ls-surface-2); color: var(--ls-text); text-decoration: none; }
.ls-action-item.is-active .ti { color: var(--ls-accent); }
.ls-action-item.is-danger, .ls-action-item.is-danger .ti { color: var(--ls-accent-text); }
.ls-action-item:disabled { opacity: .5; cursor: not-allowed; }

.ls-rlist { list-style: none; margin: 0; padding: 0; }
.ls-rcard { display: flex; gap: .75rem; align-items: flex-start; padding: .85rem 1rem; border-bottom: 1px solid var(--ls-border); cursor: pointer; min-height: 44px; }
.ls-rcard:last-child { border-bottom: 0; }
.ls-rcard:active, .ls-rcard:hover { background: var(--ls-surface-2); }
.ls-rcard:focus-visible { outline: 2px solid var(--ls-accent); outline-offset: -2px; }
.ls-rcard-main { flex: 1; min-width: 0; }
.ls-rcard-title { font-weight: 600; color: var(--ls-text); line-height: 1.3; overflow-wrap: anywhere; }
.ls-rcard-sub { color: var(--ls-text-3); font-size: var(--ls-fs-xs); margin-top: .1rem; }
.ls-rcard-facts { display: flex; flex-wrap: wrap; gap: .3rem .9rem; margin-top: .45rem; font-size: var(--ls-fs-sm); color: var(--ls-text-2); }
.ls-rcard-facts span { display: inline-flex; align-items: center; gap: .3rem; }
.ls-rcard-facts .ti { color: var(--ls-text-3); font-size: 1rem; }
.ls-rcard-side { display: flex; flex-direction: column; align-items: flex-end; gap: .4rem; flex: none; }
.ls-kebab { width: 2.75rem; height: 2.75rem; }

.ls-action-bar { display: none; }
.ls-bottom-nav { display: none; }
.ls-fab { display: none; }
.ls-drawer-only { display: none; }

.ls-chip-tabs-wrap { position: relative; }

@media (max-width: 767.98px) {
  body { font-size: .875rem; }
  h1, .h1 { font-size: 1.35rem; }
  .ls-page-head { margin-bottom: 1rem; gap: .75rem; }
  .ls-page-head h1 { font-size: 1.3rem; }
  .ls-content { padding: 1rem .9rem 1.5rem; }
  .ls-section { border-radius: var(--ls-radius); margin-bottom: 1rem; }
  .ls-section-head { padding: .8rem 1rem; }
  .ls-section-head h2, .ls-section-head h3 { font-size: 1rem; }
  .ls-section-body { padding: 1rem; }
  .ls-kpi { padding: .85rem; }
  .ls-kpi-value { font-size: 1.2rem; }
  .ls-kpi-icon { width: 1.9rem; height: 1.9rem; font-size: 1rem; }
  .ls-kpi-sub { font-size: var(--ls-fs-xs); }
  .ls-avatar { width: 1.9rem; height: 1.9rem; }
  .ls-icon-badge { width: 2.1rem; height: 2.1rem; font-size: 1.05rem; }

  .btn { min-height: 2.75rem; }
  .btn-sm { min-height: 2.25rem; }
  .btn-icon { min-width: 2.75rem; }
  .form-control, .form-select { font-size: 1rem; min-height: 3rem; }
  .ls-stepper button { width: 3.25rem; min-height: 3rem; font-size: 1.35rem; }
  .ls-stepper input { width: 5.5rem; font-size: 1.15rem; }
  .ls-hide-mobile { display: none !important; }

  .ls-topbar { min-height: 3.4rem; padding: .45rem .75rem; }
  .ls-topbar .ls-topbar-title { font-size: .95rem; }
  .ls-topbar-actions .ls-role-topbar, .ls-topbar-actions .ls-chip { display: none !important; }
  .ls-drawer-only { display: block; }
  .ls-sidebar-nav a { min-height: 2.9rem; }

  body.has-bottom-nav { padding-bottom: calc(4.25rem + env(safe-area-inset-bottom)); }
  body.has-bottom-nav .ls-menu-btn { display: none; }
  .ls-bottom-nav { display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; position: fixed; left: 0; right: 0; bottom: 0; z-index: 1040; background: color-mix(in srgb, var(--ls-surface) 94%, transparent); backdrop-filter: blur(12px); border-top: 1px solid var(--ls-border); padding: .3rem .25rem calc(.3rem + env(safe-area-inset-bottom)); }
  .ls-bottom-nav a, .ls-bottom-nav button { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .1rem; min-height: 3.4rem; border: 0; background: transparent; color: var(--ls-text-3); font-size: .6875rem; font-weight: 500; text-decoration: none; border-radius: var(--ls-radius); }
  .ls-bottom-nav .ti { font-size: 1.4rem; }
  .ls-bottom-nav .is-active { color: var(--ls-text); }
  .ls-bottom-nav .is-active .ti { color: var(--ls-accent); }
  body.has-bottom-nav .ls-sidebar, body.has-bottom-nav .ls-sidebar-backdrop { display: none !important; }

  body.has-action-bar { padding-bottom: calc(4.75rem + env(safe-area-inset-bottom)); }
  body.has-action-bar.has-bottom-nav { padding-bottom: calc(9rem + env(safe-area-inset-bottom)); }
  .ls-action-bar { display: flex; gap: .5rem; position: fixed; left: 0; right: 0; bottom: 0; z-index: 1039; padding: .65rem .9rem calc(.65rem + env(safe-area-inset-bottom)); background: color-mix(in srgb, var(--ls-surface) 96%, transparent); backdrop-filter: blur(12px); border-top: 1px solid var(--ls-border); }
  body.has-bottom-nav .ls-action-bar { bottom: calc(4.1rem + env(safe-area-inset-bottom)); }
  .ls-action-bar .btn { flex: 1; }
  .ls-action-bar .btn-icon { flex: none; }
  .ls-desktop-actions { display: none !important; }

  .ls-fab { display: inline-flex; align-items: center; gap: .5rem; position: fixed; right: 1rem; bottom: calc(1rem + env(safe-area-inset-bottom)); z-index: 1039; min-height: 3.5rem; padding: 0 1.25rem; border-radius: var(--ls-radius-pill); border: 0; background: var(--ls-accent-strong); color: #fff; font-weight: 600; box-shadow: var(--ls-shadow-lg); }
  body.has-bottom-nav .ls-fab { bottom: calc(5rem + env(safe-area-inset-bottom)); }

  .ls-chip-tabs { flex-wrap: nowrap !important; overflow-x: auto; border-bottom: 0 !important; gap: .4rem; padding: .1rem .1rem .4rem; scrollbar-width: none; }
  .ls-chip-tabs::-webkit-scrollbar { display: none; }
  .ls-chip-tabs .nav-item { flex: none; }
  .ls-chip-tabs .nav-link { white-space: nowrap; border: 1px solid var(--ls-border) !important; border-radius: var(--ls-radius-pill) !important; padding: .5rem .95rem; min-height: 2.5rem; box-shadow: none !important; background: var(--ls-surface-2); }
  .ls-chip-tabs .nav-link.active { background: var(--ls-accent-soft); border-color: var(--ls-accent) !important; color: var(--ls-text); }
  .ls-chip-tabs-wrap.has-more::after { content: ""; position: absolute; top: 0; right: 0; bottom: .4rem; width: 2.5rem; pointer-events: none; background: linear-gradient(90deg, transparent, var(--ls-bg)); }

  .modal-dialog { margin: 0; max-width: none; min-height: 100%; display: flex; align-items: flex-end; }
  .modal-dialog .modal-content { border-radius: 20px 20px 0 0; max-height: 94vh; border-bottom: 0; }
  .modal-dialog .modal-body { overflow-y: auto; }
  .modal-footer { position: sticky; bottom: 0; padding-bottom: calc(.75rem + env(safe-area-inset-bottom)); }
  .modal-footer .btn { flex: 1; }
  .modal.fade .modal-dialog { transform: translateY(40px); }
  .modal.show .modal-dialog { transform: none; }

  .table > :not(caption) > * > * { padding: .6rem .7rem; }
  .ls-chart text { font-size: 13px; }
  .ls-toast-wrap { left: .75rem; right: .75rem; bottom: 5rem; max-width: none; }
  .ls-dl { grid-template-columns: 1fr; gap: .1rem; }
  .ls-dl dd { margin-bottom: .55rem; }
}

.ls-addon-lines { display: grid; width: 100%; gap: .45rem; margin-top: .5rem; padding-left: .75rem; border-left: 2px solid var(--ls-border); font-size: var(--ls-fs-xs); }
.ls-addon-main { display: flex; justify-content: space-between; gap: .75rem; align-items: baseline; }
.ls-addon-value { white-space: nowrap; font-weight: 600; color: var(--ls-text); }
.ls-addon-value.is-included { color: var(--ls-success); }
.ls-addon-reason { padding-left: .6rem; color: var(--ls-text-4); font-size: .7rem; }
