:root {
  --page: #f5f7f6;
  --panel: #ffffff;
  --ink: #17211b;
  --muted: #65706a;
  --line: #d9e1dd;
  --soft: #edf2ef;
  --green: #0f766e;
  --green-dark: #115e59;
  --blue: #2f5d8c;
  --amber: #b7791f;
  --red: #b42318;
  --shadow: 0 18px 48px rgba(23, 33, 27, 0.08);
}

* {
  box-sizing: border-box;
}

html {
  color-scheme: light;
}

body {
  margin: 0;
  min-height: 100vh;
  background: var(--page);
  color: var(--ink);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 14px;
}

button,
input,
select,
textarea {
  font: inherit;
}

button {
  cursor: pointer;
}

button:disabled {
  cursor: not-allowed;
  opacity: 0.55;
}

[hidden] {
  display: none !important;
}

.login-layout {
  display: grid;
  grid-template-columns: minmax(0, 3fr) minmax(380px, 2fr);
  min-height: 100vh;
  background: #f8faf9;
}

.login-intro { position:relative; display:grid; grid-template-rows:44% 56%; min-height:100vh; overflow:hidden; padding:clamp(48px,8vh,88px) clamp(56px,7vw,112px) clamp(40px,6vh,72px); background:radial-gradient(circle at 18% 39%,rgba(51,167,145,.12),transparent 22%),radial-gradient(circle at 92% 94%,rgba(39,156,136,.12),transparent 27%),linear-gradient(145deg,#073f3a 0%,#08766c 100%); color:#fff; }
.login-intro::before { content:""; position:absolute; z-index:0; width:660px; height:660px; top:-275px; left:-295px; border:1px solid rgba(170,244,226,.08); border-radius:50%; box-shadow:0 0 0 48px rgba(170,244,226,.035),0 0 0 96px rgba(170,244,226,.025); }
.login-intro::after { content:""; position:absolute; z-index:0; width:112px; height:82px; right:62px; top:42px; opacity:.32; background-image:radial-gradient(circle,rgba(130,244,215,.9) 1px,transparent 1.4px); background-size:14px 14px; }
.login-intro > * { position:relative; z-index:1; }
.login-brand-zone,.login-product-zone,.login-industry-zone { width:min(82%,760px); min-width:0; justify-self:start; }
.login-brand-zone { display:grid; align-content:start; justify-items:start; padding-top:clamp(88px,10vh,112px); }
.login-product-zone { display:none; }
.login-intro h1,.login-panel h2 { font-size:clamp(28px,4vw,46px); margin:0; }
.login-intro h1 { margin-top:26px; font-size:clamp(36px,2.8vw,48px); line-height:1.12; letter-spacing:.045em; }
.login-panel h2 { font-size:28px; }
.eyebrow { margin:0; color:var(--muted); font-size:11px; font-weight:900; letter-spacing:.12em; text-transform:uppercase; }
.login-intro .eyebrow { color:#d2eee8; font-size:12px; font-weight:700; }
.login-subtitle { margin:0; color:var(--muted); line-height:1.5; }
.login-intro .login-subtitle { margin-top:12px; color:rgba(255,255,255,.88); max-width:540px; font-size:clamp(16px,1.35vw,21px); line-height:1.5; }
.lks-logo { display:grid; grid-template-columns:repeat(3,12px); gap:5px; width:max-content; align-items:end; }
.lks-logo span { display:block; width:12px; border-radius:3px; background:currentColor; }
.lks-logo span:nth-child(1){height:18px}.lks-logo span:nth-child(2){height:30px}.lks-logo span:nth-child(3){height:42px}.lks-logo.compact { color:var(--green); }
.login-industry-zone { position:relative; display:grid; align-items:start; min-height:0; }
.login-industry-zone::before { content:""; position:absolute; z-index:0; width:500px; height:500px; right:-235px; bottom:-285px; border:1px solid rgba(170,244,226,.09); border-radius:50%; box-shadow:0 0 0 42px rgba(170,244,226,.04); }
.login-industry-zone::after { content:""; position:absolute; z-index:0; width:96px; height:70px; left:-124px; bottom:12px; opacity:.28; background-image:radial-gradient(circle,rgba(130,244,215,.9) 1px,transparent 1.4px); background-size:14px 14px; }
.login-industry-signature { position:relative; z-index:1; display:grid; gap:28px; width:100%; margin-top:clamp(18px,3vh,34px); }
.login-capability-bars { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:24px; width:min(88%,670px); height:78px; align-items:end; border-bottom:1px solid rgba(197,241,231,.34); }
.login-capability-bars i { display:block; justify-self:center; width:54px; height:27px; border:1px solid rgba(197,241,231,.42); border-bottom:0; border-radius:2px 2px 0 0; background:linear-gradient(180deg,rgba(161,241,221,.24),rgba(161,241,221,.05)); box-shadow:inset 0 1px 0 rgba(255,255,255,.13); }
.login-capability-bars i:nth-child(2) { width:54px; height:55px; }
.login-capability-bars i:nth-child(3) { width:54px; height:38px; }
.login-capability-bars i:nth-child(4) { width:54px; height:64px; }
.login-benefits { position:relative; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); grid-auto-rows:1fr; gap:0; width:100%; margin:0; padding:0; list-style:none; }
.login-benefits::before { content:""; position:absolute; top:15px; left:8%; right:8%; height:1px; background:rgba(197,241,231,.24); }
.login-benefits li { position:relative; z-index:1; display:grid; grid-template-rows:28px 20px 1fr; gap:8px; justify-items:center; align-content:start; min-width:0; padding:0 16px; text-align:center; }
.login-benefits li + li::before { content:""; position:absolute; top:0; bottom:6px; left:0; width:1px; background:rgba(197,241,231,.22); }
.login-benefit-icon { display:grid; width:28px; height:28px; place-items:center; border:0; border-radius:0; background:transparent; box-shadow:none; transition:transform 150ms ease; }
.login-benefit-icon svg { width:22px; height:22px; stroke:#a2f0da; stroke-width:1.45; stroke-linecap:round; stroke-linejoin:round; }
.login-benefits li:hover .login-benefit-icon { transform:translateY(-2px); }
.login-benefits strong,.login-benefits span:not(.login-benefit-icon){text-shadow:0 1px 10px rgba(2,53,48,.42)}.login-benefits strong{font-size:15px}.login-benefits span:not(.login-benefit-icon){color:#d8eeea;font-size:13px;line-height:1.55}.login-intro-footer{width:100%;margin:18px 0 0;padding-top:24px;border-top:1px solid rgba(255,255,255,.22);color:#bde2dc;font-size:14px;line-height:1.45}.login-intro-footer strong{color:#fff;font-size:16px}

.login-panel {
  width: min(480px, calc(100% - 48px));
  min-height: 54vh;
  justify-self:center; align-self:center;
  padding: 48px 48px 42px;
  border: 1px solid rgba(20,66,58,.16);
  border-radius: 16px;
  background: var(--panel);
  box-shadow: 0 24px 52px rgba(16,45,40,.11),0 2px 6px rgba(16,45,40,.04);
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.looksky-symbol{display:block;width:auto;object-fit:contain}.looksky-symbol--white{width:clamp(48px,2.8vw,56px);height:auto;margin-bottom:16px}.login-panel .eyebrow,.login-panel h2,.login-panel .login-subtitle{text-align:center}.login-panel .primary-button{width:100%;min-height:52px;font-size:16px;box-shadow:0 4px 10px rgba(15,118,110,.14)}.login-panel .login-subtitle{max-width:320px;margin:10px auto 0}.login-panel .eyebrow{margin-bottom:14px}.login-panel h2{line-height:1.15}
.login-panel .form-stack { margin-top:28px; padding:0; }.password-field{position:relative}.password-field input{padding-right:78px}.password-toggle{position:absolute;right:8px;bottom:8px;border:0;background:transparent;color:var(--green-dark);font-size:12px;font-weight:800}.login-footer{margin-top:28px;color:var(--muted);font-size:11px;line-height:1.55}

.brand-mark {
  display: grid;
  width: 48px;
  height: 48px;
  place-items: center;
  border-radius: 8px;
  background: var(--green);
  color: #ffffff;
  font-weight: 800;
}

.brand-mark.small {
  width: 38px;
  height: 38px;
  font-size: 12px;
}

h1,
h2 {
  margin: 0;
  letter-spacing: 0;
}

.login-panel h1 {
  margin: 18px 0;
  font-size: 26px;
}

.app-shell {
  display: grid;
  grid-template-columns: 236px minmax(0, 1fr);
  min-height: 100vh;
}

.sidebar {
  position: sticky;
  top: 0;
  display: flex;
  height: 100vh;
  flex-direction: column;
  gap: 18px;
  border-right: 1px solid rgba(255,255,255,.14);
  background: linear-gradient(180deg, #103b36, #0d534d);
  color: #ffffff;
  padding: 18px;
}

.sidebar-head {
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 44px;
  width: 100%;
  margin: 0;
  padding: 8px;
  border: 0;
  border-radius: 8px;
  color: inherit;
  background: transparent;
  cursor: pointer;
  text-align: left;
  transition: background .15s ease;
}
.sidebar-head:hover { background: rgba(255, 255, 255, .08); }
.sidebar-logo,.lks-logo.compact.sidebar-logo { color:#ffffff; }

.sidebar-account-details {
  display: grid;
  min-width: 0;
  gap: 2px;
}
.sidebar-account-details > span {
  display: block;
  color: #c4e3dd;
  font-size: 12px;
}
.sidebar-account-details strong,
#sidebar-email { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
#sidebar-email { color: #c4e3dd; }
.form-success { color: var(--success, #137c4b); min-height: 1.2em; }

.nav-list {
  display: grid;
  gap: 14px;
  overflow-y: auto;
  padding-right: 2px;
}
.nav-list::-webkit-scrollbar{width:8px}.nav-list::-webkit-scrollbar-thumb{background:rgba(255,255,255,.24);border-radius:8px}

.nav-group {
  display: grid;
  gap: 6px;
}

.nav-group-title {
  padding: 0 2px;
  color: #a9d3ca;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0;
  text-transform: uppercase;
}

.nav-button,
.ghost-button,
.secondary-button,
.primary-button,
.icon-button {
  min-height: 38px;
  border: 1px solid transparent;
  border-radius: 8px;
  padding: 9px 12px;
  font-weight: 700;
}

.nav-button {
  width: 100%;
  background: transparent;
  color: #e3f1ee;
  text-align: left;
}

.nav-button:hover,
.nav-button.active {
  background: rgba(255,255,255,.13);
  color: #ffffff;
  box-shadow: inset 3px 0 0 #bde2dc;
}

.primary-button {
  background: var(--green);
  color: #ffffff;
}

.primary-button:hover {
  background: var(--green-dark);
}

.secondary-button {
  border-color: #bdd3cf;
  background: #e9f5f2;
  color: var(--green-dark);
}

.ghost-button {
  border-color: var(--line);
  background: #ffffff;
  color: var(--ink);
}

.icon-button {
  display: grid;
  width: 38px;
  height: 38px;
  place-items: center;
  padding: 0;
  background: var(--blue);
  color: #ffffff;
  font-size: 20px;
  line-height: 1;
}

#logout-button {
  margin-top: auto;
  border-color: rgba(255,255,255,.28);
  background: transparent;
  color: #ffffff;
}

.workspace {
  min-width: 0;
  padding: 22px;
}

.topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 18px;
}
.topbar-actions .secondary-button{box-shadow:none}.topbar h1{letter-spacing:-.02em}

.topbar-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: flex-end;
}

.topbar h1 {
  font-size: 24px;
}

.topbar p {
  margin: 4px 0 0;
  color: var(--muted);
}

.panel {
  display: none;
  gap: 16px;
}

.panel-root {
  display: grid;
  gap: 16px;
  min-width: 0;
}

/* Shared workspace surface: every module consumes the Dashboard spacing scale. */
.panel,
.module-section,
.admin-section {
  min-width: 0;
}

.panel > .work-panel,
.module-section > .work-panel,
.admin-section > .work-panel {
  box-shadow: 0 10px 28px rgba(23, 33, 27, 0.05);
}

.panel.active {
  display: grid;
}

.panel > .subtab-row {
  margin-bottom: 0;
}

.metrics-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}

.metric,
.work-panel,
.terminal-panel {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--panel);
  box-shadow: 0 10px 28px rgba(23, 33, 27, 0.05);
}
.work-panel:hover,.metric:hover{border-color:#c7d9d4}

.metric {
  padding: 16px;
}

.metric span {
  display: block;
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
}

.metric strong {
  display: block;
  margin-top: 8px;
  font-size: 26px;
}

.executive-dashboard {
  gap: 18px;
}

.executive-metrics .metric {
  display: grid;
  gap: 8px;
  min-height: 150px;
}

.metric small {
  color: var(--muted);
}

.metric .row-action {
  justify-self: start;
  margin-top: auto;
}

.dashboard-summary {
  grid-template-columns: 1fr;
  padding: 14px;
}

.dashboard-summary span {
  display: flex;
  justify-content: space-between;
  border-bottom: 1px solid var(--line);
  padding: 10px 0;
  color: var(--muted);
}

.dashboard-summary span:last-child {
  border-bottom: 0;
}

.executive-card { position:relative; transition:transform 160ms ease, box-shadow 160ms ease; }.executive-card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.metric-icon{position:absolute;right:16px;top:16px;color:var(--green);opacity:.75}.metric-icon svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.executive-card strong{font-size:28px}.dashboard-timeline li{position:relative;padding-left:28px}.dashboard-timeline li::before{content:"";position:absolute;left:14px;top:18px;width:7px;height:7px;border:2px solid var(--green);border-radius:50%;background:#fff}.timeline-quantity.in{color:var(--green-dark)}.timeline-quantity.out{color:var(--red)}.dashboard-production-indicators{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:14px}.dashboard-production-indicators article{display:grid;gap:5px;padding:10px;border:1px solid var(--line);border-radius:8px}.dashboard-production-indicators strong{font-size:25px}.dashboard-production-indicators small{color:var(--muted)}.production-indicator-icon{width:18px;height:5px;border-radius:5px;background:var(--green)}.dashboard-empty{display:grid;gap:5px;padding:22px;color:var(--muted);text-align:center}.dashboard-empty.positive{color:var(--green-dark);background:#f6faf8}.dashboard-empty strong{color:var(--ink)}

.split-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(320px, 0.9fr);
  gap: 16px;
}

.work-panel,
.terminal-panel {
  min-width: 0;
  overflow: hidden;
}

.panel-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 58px;
  border-bottom: 1px solid var(--line);
  padding: 12px 14px;
}

.panel-head h2 {
  letter-spacing: -0.01em;
}

.panel-head + .form-grid,
.panel-head + .form-stack,
.panel-head + .table-wrap {
  margin-top: 0;
}

.panel-head > div:first-child {
  min-width: 0;
}

.panel-head h2 + span,
.panel-head > span {
  color: var(--muted);
  font-size: 12px;
  line-height: 1.4;
}

.panel-head h2 {
  font-size: 16px;
}

.button-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: flex-end;
}

.subtab-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  border-bottom: 1px solid var(--line);
  padding-bottom: 10px;
  overflow-x: auto;
  scrollbar-width: thin;
}

.subtab-button {
  min-height: 36px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  color: var(--muted);
  padding: 8px 12px;
  font-weight: 800;
}

.subtab-button.active,
.subtab-button:hover {
  border-color: #bdd3cf;
  background: var(--soft);
  color: var(--ink);
}

.admin-section {
  display: none;
}

.admin-section.active {
  display: grid;
  gap: 16px;
}

.module-section {
  display: none;
}

.module-section.active {
  display: grid;
  gap: 16px;
}

.form-stack,
.form-grid,
.terminal-form {
  padding: 14px;
}

.scan-form { display:flex; align-items:end; gap:8px; }
.scan-form label { min-width:220px; }
.barcode-body { justify-items:center; text-align:center; }
.barcode-body p { margin:0; color:var(--muted); }
.barcode-image { display:block; width:min(100%,360px); height:112px; object-fit:fill; background:#fff; }
.barcode-body strong { font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; letter-spacing:.08em; }
@media (max-width:680px) { .scan-form { width:100%; align-items:stretch; flex-direction:column; }.scan-form label { min-width:0; }.scan-form .secondary-button { width:100%; } }

.form-stack > .primary-button,
.form-grid > .primary-button,
.form-grid > .secondary-button {
  justify-self: start;
}

.form-stack {
  display: grid;
  gap: 12px;
}

.form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.form-grid.two,
.form-grid.three {
  padding: 0;
}

.form-grid.three {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.report-filter {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.full-row {
  grid-column: 1 / -1;
}

.form-section {
  display: grid;
  gap: 12px;
  min-width: 0;
  margin: 0;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 12px;
  background: #fcfdfc;
}

.form-section legend {
  padding: 0 6px;
  color: var(--ink);
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
}

label {
  display: grid;
  gap: 6px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
}

label.with-help {
  position: relative;
  padding-right: 24px;
}

.field-help-button {
  position: absolute;
  top: 0;
  right: 0;
  display: grid;
  width: 18px;
  min-width: 18px;
  height: 18px;
  min-height: 18px;
  place-items: center;
  border: 1px solid #bdd3cf;
  border-radius: 50%;
  background: #f6faf8;
  color: var(--green-dark);
  padding: 0;
  font-size: 11px;
  font-weight: 900;
  line-height: 1;
}

.field-help-button:hover {
  border-color: var(--green);
  background: #e9f5f2;
}

input,
select,
textarea {
  width: 100%;
  min-height: 38px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  color: var(--ink);
  padding: 9px 10px;
}

input:hover,
select:hover,
textarea:hover {
  border-color: #bdd3cf;
}

textarea {
  min-height: 130px;
  resize: vertical;
}

select[multiple] {
  min-height: 96px;
}

.permission-note {
  display: grid;
  gap: 8px;
  border-radius: 8px;
  background: var(--soft);
  padding: 10px;
}

.permission-note strong {
  font-size: 12px;
  text-transform: uppercase;
}

.permission-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.permission-tags span {
  border: 1px solid #bdd3cf;
  border-radius: 999px;
  background: #ffffff;
  color: var(--green-dark);
  padding: 4px 8px;
  font-size: 12px;
  font-weight: 800;
}

.permission-list {
  display: grid;
  gap: 14px;
}

.admin-users-layout { display: grid; grid-template-columns: minmax(320px, .85fr) minmax(0, 1.5fr); gap: 18px; align-items: start; }
.compact-user-form .form-section { margin: 0; padding: 12px; }
.role-permissions-summary { padding: 0 2px; }
.permissions-customization { border-top: 1px solid var(--line, #d9e0dc); padding-top: 10px; }
.permissions-customization summary { cursor: pointer; font-weight: 700; }
.permissions-customization > p { margin: 8px 0; color: var(--muted, #64748b); font-size: .9rem; }
.user-edit-modal { width: min(920px, calc(100vw - 32px)); max-height: calc(100vh - 32px); overflow: auto; }
.user-edit-modal .form-hint { margin: 0; }
.user-permissions-modal { width: min(680px, calc(100vw - 32px)); max-height: calc(100vh - 32px); overflow: auto; }
.user-permissions-content { display: grid; gap: 14px; }
.user-permission-group { border: 1px solid var(--line); border-radius: 8px; padding: 12px; }
.user-permission-group ul { display: grid; gap: 9px; margin: 0; padding: 0; list-style: none; }
.user-permission-group li { display: grid; grid-template-columns: 20px 1fr; gap: 8px; align-items: start; }
.user-permission-group li > span { color: var(--green-dark); font-weight: 800; }
.user-permission-group li div { display: grid; gap: 2px; }
.user-permission-group code { color: var(--muted); font-size: 11px; }
@media (max-width: 980px) { .admin-users-layout { grid-template-columns: 1fr; } }

.permission-group {
  display: grid;
  gap: 8px;
}

.permission-group h3 {
  margin: 0;
  color: var(--muted);
  font-size: 12px;
  text-transform: uppercase;
}

.permission-card-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.permission-card {
  display: grid;
  grid-template-columns: 18px minmax(0, 1fr);
  align-items: start;
  gap: 9px;
  min-height: 88px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  padding: 10px;
  color: var(--ink);
  text-transform: none;
}

.permission-card.included {
  background: #f6faf8;
}

.permission-card input {
  width: 18px;
  min-height: 18px;
  margin-top: 2px;
}

.permission-card span {
  display: grid;
  gap: 4px;
}

.permission-card strong {
  color: var(--ink);
  font-size: 13px;
}

.permission-card small {
  color: var(--muted);
  font-size: 12px;
  font-weight: 600;
  line-height: 1.35;
}

.permission-card code {
  color: var(--muted);
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 11px;
}

.permission-reference {
  display: grid;
  gap: 14px;
  padding: 14px;
}

.reference-card {
  grid-template-columns: minmax(0, 1fr);
  min-height: 76px;
}

input:focus,
select:focus,
textarea:focus,
button:focus-visible {
  outline: 3px solid rgba(15, 118, 110, 0.18);
  outline-offset: 1px;
}

.form-error {
  min-height: 20px;
  margin: 0;
  color: var(--red);
}

.lines {
  display: grid;
  gap: 10px;
}

.lines:empty::before,
tbody:empty::before {
  display: block;
  color: var(--muted);
  content: "Sin registros para mostrar";
  font-size: 12px;
}

tbody:empty::before {
  display: table-cell;
}

#warehouse-form,
#area-form,
#supplier-form {
  border-bottom: 1px solid var(--line);
}

.line-row {
  display: grid;
  grid-template-columns: minmax(180px, 1fr) 120px 120px 38px;
  gap: 10px;
  align-items: end;
}

.line-row.compact {
  grid-template-columns: minmax(180px, 1fr) 120px 38px;
}

.line-row.route-line {
  grid-template-columns: 76px minmax(96px, 0.55fr) minmax(150px, 1fr) minmax(150px, 0.9fr) 96px 38px;
}

.line-remove {
  width: 38px;
  height: 38px;
  border: 1px solid #f1c6bf;
  border-radius: 8px;
  background: #fff1ef;
  color: var(--red);
  font-weight: 900;
}

.table-wrap {
  width: 100%;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
}

.table-wrap + .empty-state {
  border-top: 1px solid var(--line);
}

.compact-table {
  border-top: 1px solid var(--line);
}

table {
  width: 100%;
  min-width: 680px;
  border-collapse: collapse;
}

th,
td {
  border-bottom: 1px solid var(--line);
  padding: 11px 14px;
  text-align: left;
  vertical-align: middle;
}
tbody tr:hover{background:#f8fbfa}

th {
  position: sticky;
  top: 0;
  background: var(--panel);
  color: var(--muted);
  font-size: 12px;
  text-transform: uppercase;
}

td {
  color: #26312a;
}

.number {
  text-align: right;
}

.status {
  display: inline-flex;
  align-items: center;
  min-height: 26px;
  border-radius: 8px;
  padding: 3px 8px;
  background: var(--soft);
  color: var(--ink);
  font-size: 12px;
  font-weight: 800;
}

.status-badge,
.status {
  white-space: nowrap;
}

.status.received,
.status.completed,
.status.dispatched,
.status.approved,
.status.acknowledged,
.status.resolved,
.status.reserved,
.status.consumed,
.status.packed,
.status.shipped {
  background: #e8f6ed;
  color: #17633a;
}

.status.draft,
.status.requested,
.status.active,
.status.planned,
.status.materials_ready,
.status.cutting,
.status.partial_received,
.status.none,
.status.packing {
  background: #fff6df;
  color: var(--amber);
}

.status.cancelled,
.status.rejected,
.status.shortage,
.status.deshabilitado,
.status.urgent,
.status.blocked,
.status.paused {
  background: #fff1ef;
  color: var(--red);
}

.status.in_progress,
.status.high,
.status.pending,
.status.quality,
.status.export,
.status.replenishment,
.status.sample,
.status.normal {
  background: #fff6df;
  color: var(--amber);
}

.status.handled {
  background: #e8f6ed;
  color: #17633a;
}

.row-action {
  min-height: 32px;
  border: 1px solid #bdd3cf;
  border-radius: 8px;
  background: #ffffff;
  color: var(--green-dark);
  padding: 6px 10px;
  font-weight: 800;
}

.row-action.danger {
  border-color: #f1c6bf;
  color: var(--red);
}

.summary-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(96px, auto);
  gap: 8px 14px;
}

.mini-stack {
  display: grid;
  gap: 3px;
  min-width: 180px;
  margin-top: 6px;
}

.mini-stack strong {
  font-size: 12px;
}

.mini-stack span,
.empty-inline {
  color: var(--muted);
  font-size: 12px;
  line-height: 1.35;
}

.activity-list {
  display: grid;
  gap: 0;
  margin: 0;
  padding: 0;
  list-style: none;
}

.activity-list li {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 10px;
  border-bottom: 1px solid var(--line);
  padding: 12px 14px;
}

.activity-list strong {
  display: block;
}

.activity-list span {
  color: var(--muted);
  font-size: 12px;
}

.terminal-form {
  display: grid;
  grid-template-columns: 110px minmax(180px, 1fr) 130px;
  gap: 10px;
}

.terminal-form textarea {
  grid-column: 1 / -1;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}

.terminal-form button {
  grid-column: 3;
}

.terminal-panel pre {
  min-height: 360px;
  margin: 0;
  overflow: auto;
  background: #101916;
  color: #dff7ed;
  padding: 16px;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 13px;
  white-space: pre-wrap;
}

.document-modal {
  width: min(1100px, calc(100vw - 32px));
  height: min(780px, calc(100vh - 32px));
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  padding: 0;
}

.document-modal::backdrop {
  background: rgba(23, 33, 27, 0.42);
}

.attention-modal {
  width: min(860px, calc(100vw - 32px));
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  padding: 0;
}

.attention-modal::backdrop {
  background: rgba(23, 33, 27, 0.42);
}

.attention-modal form {
  padding: 0;
}

.attention-body {
  display: grid;
  gap: 12px;
  padding: 14px;
}

.document-modal-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 58px;
  border-bottom: 1px solid var(--line);
  padding: 12px 14px;
}

.document-preview {
  height: calc(100% - 58px);
  overflow: auto;
}

.document-preview iframe {
  width: 100%;
  height: 100%;
  border: 0;
}

.result-box {
  display: grid;
  gap: 10px;
  min-height: 130px;
  padding: 14px;
  color: var(--muted);
}

.result-box.compact {
  min-height: 0;
  border-top: 1px solid var(--line);
  padding: 10px 14px;
}

.result-box strong {
  color: var(--ink);
}

.result-box ul {
  display: grid;
  gap: 6px;
  margin: 0;
  padding-left: 18px;
}

.assistant-grid {
  align-items: start;
}

.assistant-answer {
  display: grid;
  gap: 10px;
  min-height: 186px;
  padding: 14px;
  line-height: 1.55;
}

.assistant-answer p {
  margin: 0;
}

.assistant-list {
  display: grid;
  gap: 0;
  margin: 0;
  padding: 0;
  list-style: none;
}

.assistant-list li {
  display: grid;
  gap: 8px;
  border-bottom: 1px solid var(--line);
  padding: 12px 14px;
}

.assistant-list strong {
  display: block;
  margin-top: 6px;
}

.assistant-list span,
.assistant-list p {
  margin: 0;
  color: var(--muted);
  line-height: 1.45;
}

.status.alta {
  background: #fff1ef;
  color: var(--red);
}

.status.media {
  background: #fff6df;
  color: var(--amber);
}

.status.baja {
  background: #e8f6ed;
  color: #17633a;
}

.empty-state {
  display:grid;
  place-items:center;
  min-height:88px;
  padding: 18px 14px;
  color: var(--muted);
  text-align:center;
}

.completion-summary {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px 14px;
  border-bottom: 1px solid var(--line);
  padding: 12px 14px;
}

.completion-summary .inline-field {
  grid-column: span 1;
}

.completion-summary span {
  display: grid;
  gap: 3px;
  color: var(--muted);
  font-size: 12px;
}

.completion-summary strong {
  color: var(--ink);
  font-size: 14px;
}

.form-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
  border-top: 1px solid var(--line);
  padding-top: 12px;
}

.form-actions .primary-button {
  min-width: min(100%, 190px);
}

.toast {
  position: fixed;
  right: 18px;
  bottom: 18px;
  z-index: 10;
  max-width: min(420px, calc(100vw - 36px));
  transform: translateY(20px);
  border-radius: 8px;
  background: var(--ink);
  color: #ffffff;
  opacity: 0;
  padding: 12px 14px;
  box-shadow: var(--shadow);
  transition: opacity 160ms ease, transform 160ms ease;
}

.toast.visible {
  transform: translateY(0);
  opacity: 1;
}

@media (max-width: 980px) {
  .login-layout { grid-template-columns:1fr; }.login-intro{grid-template-rows:auto auto;gap:48px;min-height:620px;padding:64px 12vw}.login-brand-zone,.login-product-zone{padding-top:0}.login-industry-zone{min-height:400px}.login-industry-signature{width:100%}.login-capability-bars,.login-benefits{grid-template-columns:repeat(2,minmax(0,1fr))}.login-capability-bars{width:min(64%,490px);height:120px}.login-intro-footer{margin-top:8px}
  .app-shell {
    grid-template-columns: 1fr;
  }

  .sidebar {
    position: static;
    height: auto;
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }

  .nav-list {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .nav-group {
    align-content: start;
  }

  #logout-button {
    margin-top: 0;
  }

  .split-grid,
  .metrics-grid {
    grid-template-columns: 1fr;
  }

  .executive-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (max-width: 680px) {
  .login-intro { display:none; }.login-layout{place-items:center;padding:20px}.login-panel{width:100%;padding:30px}.looksky-symbol--green{height:56px}
  .workspace {
    padding: 14px;
  }

  .executive-metrics,.dashboard-production-indicators { grid-template-columns:1fr; }

  .topbar {
    align-items: stretch;
    flex-direction: column;
  }

  .nav-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .form-grid,
  .form-grid.three,
  .report-filter,
  .terminal-form,
  .line-row,
  .line-row.route-line,
  .line-row.compact,
  .permission-card-grid {
    grid-template-columns: 1fr;
  }

  .terminal-form button {
    grid-column: auto;
  }

  .button-row {
    justify-content: stretch;
  }

  .button-row button {
    flex: 1 1 auto;
  }

  .panel-head {
    align-items: flex-start;
    flex-wrap: wrap;
  }

  .panel-head .button-row,
  .panel-head > select {
    width: 100%;
  }

  .completion-summary {
    grid-template-columns: 1fr;
  }

  .completion-summary .inline-field {
    grid-column: auto;
  }

  .form-actions .primary-button {
    width: 100%;
  }
}

@media (min-width: 981px) and (max-height: 960px) {
  .login-intro { padding-top:48px; padding-bottom:40px; }
  .login-brand-zone { padding-top:64px; }
}
