:root{
  --bg:#f5f7fb;
  --surface:#ffffff;
  --surface-2:#f8fafc;
  --line:#e5e7eb;
  --line-strong:#dbe2ea;
  --text:#0f172a;
  --muted:#64748b;
  --primary:#2563eb;
  --primary-2:#1d4ed8;
  --primary-soft:#eff6ff;
  --success:#16a34a;
  --success-soft:#dcfce7;
  --warning:#d97706;
  --warning-soft:#fff7ed;
  --danger:#dc2626;
  --danger-soft:#fef2f2;
  --shadow-sm:0 8px 20px rgba(15, 23, 42, .05);
  --shadow-md:0 18px 40px rgba(15, 23, 42, .08);
  --radius:18px;
  --radius-sm:12px;
  --sidebar-width:310px;
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  background:
    radial-gradient(circle at top left, rgba(37,99,235,.07), transparent 28%),
    linear-gradient(180deg, #f7f9fc 0%, var(--bg) 100%);
  color:var(--text);
  font:14px/1.5 Inter,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,sans-serif;
}
a{color:var(--primary);text-decoration:none}
a:hover{color:var(--primary-2)}
h1,h2,h3,h4{margin:0 0 .5rem 0;line-height:1.2}
h1{font-size:clamp(1.5rem,2vw,2rem)}
h2{font-size:1.3rem}h3{font-size:1.05rem}
p{margin:.25rem 0 0 0}
small{color:var(--muted)}

.app-layout{display:flex;min-height:100vh}
.sidebar{
  width:var(--sidebar-width);
  background:rgba(15,23,42,.96);
  color:#fff;
  padding:18px 16px;
  position:fixed;
  inset:0 auto 0 0;
  overflow-y:auto;
  border-right:1px solid rgba(255,255,255,.06);
  z-index:40;
}
.sidebar-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:16px}
.sidebar-eyebrow{font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:#93c5fd;margin-bottom:3px}
.sidebar-brand{font-size:1.2rem;font-weight:800;color:#fff}
.sidebar-search-wrap{margin-bottom:14px}
.sidebar-search{
  width:100%;padding:12px 14px;border-radius:14px;border:1px solid rgba(255,255,255,.08);
  background:rgba(255,255,255,.08);color:#fff;outline:none
}
.sidebar-search::placeholder{color:#cbd5e1}
.sidebar-nav{display:flex;flex-direction:column;gap:10px}
.nav-group{border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.03);border-radius:16px;overflow:hidden}
.nav-group summary{
  list-style:none;cursor:pointer;padding:12px 14px;font-weight:700;color:#e2e8f0;
  display:flex;align-items:center;justify-content:space-between
}
.nav-group summary::-webkit-details-marker{display:none}
.nav-group summary::after{content:'▾';font-size:.9rem;color:#94a3b8;transition:transform .2s ease}
.nav-group:not([open]) summary::after{transform:rotate(-90deg)}
.nav-link{
  display:flex;align-items:center;gap:10px;padding:10px 14px;margin:0 8px 8px;border-radius:12px;
  color:#e5e7eb;transition:.18s ease all;border:1px solid transparent
}
.nav-link:hover{background:rgba(255,255,255,.08);color:#fff;border-color:rgba(255,255,255,.06)}
.nav-link.active{background:linear-gradient(135deg, rgba(37,99,235,.25), rgba(59,130,246,.12));color:#fff;border-color:rgba(96,165,250,.4);box-shadow:inset 0 0 0 1px rgba(255,255,255,.03)}
.nav-link.warning{color:#fde68a}
.logout-form{margin:0;padding:0}
.logout-button{width:calc(100% - 16px);background:transparent;font:inherit;text-align:left;cursor:pointer}
.sidebar-overlay{display:none}

.app-main-wrap{margin-left:var(--sidebar-width);flex:1;min-width:0;display:flex;flex-direction:column}
.topbar{
  position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:18px 24px;background:rgba(245,247,251,.85);backdrop-filter:blur(14px);border-bottom:1px solid rgba(15,23,42,.06)
}
.topbar-left{display:flex;align-items:center;gap:14px}
.page-eyebrow{font-size:.78rem;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}
.page-title{font-size:1.25rem;font-weight:800;color:var(--text)}
.icon-btn{
  border:none;background:var(--surface);border:1px solid var(--line);width:42px;height:42px;border-radius:12px;
  cursor:pointer;box-shadow:var(--shadow-sm);font-size:1rem;color:var(--text)
}
.icon-btn:hover{transform:translateY(-1px);box-shadow:var(--shadow-md)}
.only-mobile{display:none}
.user-pill{
  display:flex;flex-direction:column;align-items:flex-end;padding:10px 14px;border-radius:14px;
  background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-sm)
}
.user-pill-name{font-weight:700}
.user-pill-role{font-size:.82rem;color:var(--muted)}

.content-area{padding:24px;max-width:1600px;width:100%;margin:0 auto}
.app-footer{padding:16px 24px;color:var(--muted);text-align:center}
.public-layout{max-width:1200px;margin:0 auto;padding:24px}

.flash-stack{display:grid;gap:10px;margin-bottom:16px}
.alert{
  padding:14px 16px;border-radius:14px;border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow-sm)
}
.alert.success,.alert.ok{background:var(--success-soft);border-color:#bbf7d0;color:#166534}
.alert.error,.alert.danger{background:var(--danger-soft);border-color:#fecaca;color:#991b1b}
.alert.warning{background:#fff7ed;border-color:#fed7aa;color:#9a3412}
.alert.info{background:#eff6ff;border-color:#bfdbfe;color:#1d4ed8}

.panel,.card,table,.login-card,.hero{
  background:rgba(255,255,255,.92);border:1px solid rgba(226,232,240,.9);box-shadow:var(--shadow-sm);backdrop-filter:blur(10px)
}
.panel,.card,.login-card,.hero{border-radius:var(--radius);padding:20px;margin-bottom:16px}
.hero{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:18px;background:linear-gradient(135deg, #ffffff 0%, #eff6ff 100%)}
.hero-title{font-size:1.6rem;font-weight:800;margin-bottom:6px}
.hero-subtitle{color:var(--muted);max-width:70ch}
.hero-actions{display:flex;gap:10px;flex-wrap:wrap}
.cards,.grid3,.cards-grid{display:grid;gap:16px}
.cards{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.grid3{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.card-mini,.stat-card,.stat{
  background:linear-gradient(180deg,#fff,#f8fbff);border:1px solid var(--line);border-radius:16px;padding:16px;box-shadow:var(--shadow-sm)
}
.stat{font-size:1rem}
.stat b,.stat-card .stat-value,.card-mini span{display:block;margin-top:8px;font-size:1.8rem;line-height:1;font-weight:800}
.muted{color:var(--muted)}
.nowrap{white-space:nowrap}.list{margin:0;padding-left:18px}.list.compact li{margin:2px 0}
.inline{display:inline}
.badge,.badge-warn{
  display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:999px;font-size:.78rem;font-weight:700;border:1px solid transparent
}
.badge{background:#e2e8f0;color:#334155}
.badge.ok{background:var(--success-soft);color:#166534}
.badge.warn,.badge-warn{background:#fef3c7;color:#92400e;border-color:#fde68a}
.badge.danger{background:#fee2e2;color:#991b1b}

.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:10px 16px;
  border:none;border-radius:12px;cursor:pointer;text-decoration:none;font-weight:700;
  color:#fff;background:linear-gradient(135deg,var(--primary),var(--primary-2));box-shadow:0 10px 20px rgba(37,99,235,.18);
  transition:transform .16s ease,box-shadow .16s ease,filter .16s ease
}
.btn:hover{transform:translateY(-1px);filter:brightness(1.02);box-shadow:0 14px 24px rgba(37,99,235,.24)}
.btn.secondary{background:#fff;color:var(--text);border:1px solid var(--line);box-shadow:var(--shadow-sm)}
.btn.secondary:hover{box-shadow:var(--shadow-md)}
.btn.danger{background:linear-gradient(135deg,#dc2626,#b91c1c)}
.btn.icon{width:38px;height:38px;padding:0;border-radius:10px;min-height:auto}

form{display:block}
label{display:block;font-weight:600;color:#334155;margin-bottom:12px}
input,select,textarea{
  width:100%;margin-top:6px;padding:11px 13px;border-radius:12px;border:1px solid var(--line-strong);
  background:#fff;color:var(--text);outline:none;transition:border-color .14s ease, box-shadow .14s ease, transform .14s ease
}
input:focus,select:focus,textarea:focus{border-color:#93c5fd;box-shadow:0 0 0 4px rgba(59,130,246,.12)}
textarea{min-height:110px;resize:vertical}
.form-grid-two{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:18px;align-items:start}
.grid-4{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin-bottom:10px}
.inline-fields{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.inline-fields > *{flex:1 1 140px}

.table-responsive{overflow:auto}
table{width:100%;border-collapse:separate;border-spacing:0;overflow:hidden;border-radius:16px}
th,td{padding:12px 14px;border-bottom:1px solid var(--line)}
th{position:sticky;top:0;background:#f8fafc;font-size:.8rem;text-transform:uppercase;letter-spacing:.03em;color:#64748b}
tbody tr:nth-child(even){background:#fbfdff}tbody tr:hover{background:#eef4ff}

.login{
  min-height:100vh;display:grid;place-items:center;padding:24px;
  background:radial-gradient(circle at top right, rgba(37,99,235,.12), transparent 28%), linear-gradient(180deg,#eff6ff 0%,#f8fafc 100%)
}
.login-shell{display:grid;grid-template-columns:minmax(280px, 460px) minmax(320px, 500px);gap:24px;align-items:stretch;width:min(1040px,100%)}
.login-brand{
  padding:28px;border-radius:28px;background:linear-gradient(160deg,#0f172a 0%,#1e293b 100%);color:#fff;box-shadow:var(--shadow-md)
}
.login-brand h1{font-size:2rem;color:#fff;margin-bottom:10px}
.login-company{display:inline-flex;margin:0 0 14px 0;padding:6px 10px;border-radius:999px;background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.08);color:#e2e8f0;font-weight:700}
.login-brand p{color:#cbd5e1;line-height:1.6}
.login-points{display:grid;gap:12px;margin-top:20px}.login-point{padding:12px 14px;border-radius:14px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.06)}
.login-card{padding:28px}
.login-card h2{margin-bottom:8px}.login-card p{color:var(--muted);margin-bottom:18px}
.login-card .btn{width:100%}

.turnos-toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:end;justify-content:space-between;margin-bottom:14px}
.turno-actions{display:flex;gap:8px;flex-wrap:wrap}
.counter-badge{display:inline-flex;align-items:center;padding:3px 8px;border-radius:999px;background:#fee2e2;color:#991b1b;font-weight:700;font-size:12px;margin-left:4px}
.small-link{font-size:12px;color:var(--primary);text-decoration:none}

.criticidad-box{margin-top:16px;padding:12px;border:1px solid var(--line);border-radius:14px;background:#fafcff}
.badge-criticidad{display:inline-block;padding:4px 10px;border-radius:999px;font-weight:600;font-size:.92rem}
.badge-critica{background:#ffd7d7}.badge-alta{background:#ffe8bf}.badge-media{background:#fff6bf}.badge-baja{background:#dff4df}.badge-sin-valorar{background:#ececec}
.row-warn{background:#fff7ed}

@media (max-width: 1080px){
  .sidebar{transform:translateX(-105%);transition:transform .2s ease}
  .sidebar.is-open{transform:translateX(0)}
  .sidebar-overlay{display:block;position:fixed;inset:0;background:rgba(15,23,42,.42);opacity:0;pointer-events:none;transition:opacity .2s ease;z-index:35}
  .sidebar-overlay.is-open{opacity:1;pointer-events:auto}
  .app-main-wrap{margin-left:0}
  .only-mobile{display:inline-flex;align-items:center;justify-content:center}
}
@media (max-width: 860px){
  .content-area{padding:16px}
  .topbar{padding:14px 16px}
  .login-shell{grid-template-columns:1fr}
}
@media (max-width: 640px){
  .hero{padding:18px}
  .page-title{font-size:1rem}
  .user-pill{display:none}
  th,td{padding:10px 10px}
  .btn{width:100%}
  .turno-actions .btn, .hero-actions .btn{width:auto}
}

/* ===== Módulos visuales: órdenes, repuestos y formularios ===== */
.module-toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:18px}
.module-toolbar .meta{max-width:80ch}
.module-title{font-size:1.7rem;font-weight:800;margin-bottom:6px}
.module-subtitle{color:var(--muted);margin:0}
.module-actions{display:flex;gap:10px;flex-wrap:wrap}
.metric-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;margin-bottom:16px}
.metric-card{background:linear-gradient(180deg,#fff,#f8fbff);border:1px solid var(--line);border-radius:16px;padding:16px;box-shadow:var(--shadow-sm)}
.metric-label{color:var(--muted);font-size:.88rem;margin-bottom:8px}
.metric-value{font-size:1.7rem;font-weight:800;line-height:1}
.metric-sub{font-size:.85rem;color:var(--muted);margin-top:6px}
.filters-panel,.table-card,.form-card{background:rgba(255,255,255,.95);border:1px solid var(--line);border-radius:20px;padding:18px;box-shadow:var(--shadow-sm);margin-bottom:18px}
.filters-header,.section-header{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:14px}
.section-title{font-size:1.05rem;font-weight:800}
.section-subtitle{font-size:.9rem;color:var(--muted)}
.filter-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px}
.filter-grid .span-2{grid-column:span 2}
.filter-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}
.table-card{padding:0;overflow:hidden}
.table-card .table-card-head{padding:18px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;background:linear-gradient(180deg,#fff,#f8fbff)}
.table-card .table-card-body{padding:0}
.data-table{width:100%;min-width:900px}
.data-table th{white-space:nowrap}
.table-note{font-size:.85rem;color:var(--muted)}
.chip{display:inline-flex;align-items:center;justify-content:center;padding:6px 10px;border-radius:999px;font-size:.78rem;font-weight:800;letter-spacing:.01em;border:1px solid transparent;white-space:nowrap}
.chip.type{background:#eef2ff;color:#4338ca;border-color:#c7d2fe}
.chip.prio-high{background:#fee2e2;color:#b91c1c;border-color:#fecaca}
.chip.prio-med{background:#fef3c7;color:#92400e;border-color:#fde68a}
.chip.prio-low{background:#dcfce7;color:#166534;border-color:#bbf7d0}
.chip.estado-abierta{background:#dbeafe;color:#1d4ed8;border-color:#bfdbfe}
.chip.estado-en-curso{background:#e0f2fe;color:#0369a1;border-color:#bae6fd}
.chip.estado-pendiente{background:#fef3c7;color:#92400e;border-color:#fde68a}
.chip.estado-resuelta{background:#dcfce7;color:#166534;border-color:#bbf7d0}
.chip.estado-cerrada{background:#e2e8f0;color:#334155;border-color:#cbd5e1}
.chip.stock-ok{background:#dcfce7;color:#166534;border-color:#bbf7d0}
.chip.stock-low{background:#fee2e2;color:#991b1b;border-color:#fecaca}
.chip.stock-zero{background:#f1f5f9;color:#475569;border-color:#cbd5e1}
.data-title{font-weight:700;color:var(--text)}
.data-sub{font-size:.82rem;color:var(--muted);margin-top:2px}
.text-clamp{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;white-space:normal;max-width:340px}
.actions-wrap{display:flex;gap:8px;flex-wrap:wrap}
.btn.small{min-height:34px;padding:7px 12px;font-size:.82rem;border-radius:10px}
.row-soft-danger{background:#fff7f7!important}
.row-soft-warning{background:#fffdf3!important}
.row-soft-info{background:#f4f9ff!important}
.inline-kbd{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;background:#f8fafc;border:1px solid var(--line);padding:2px 6px;border-radius:6px}
.form-layout{display:grid;gap:18px}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}
.grid3{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}
.form-section{border:1px solid var(--line);border-radius:18px;padding:16px;background:linear-gradient(180deg,#fff,#fbfdff)}
.form-section h3{margin-bottom:4px}
.form-section p{margin-bottom:12px;color:var(--muted)}
.sticky-actions{position:sticky;bottom:10px;z-index:5;background:rgba(255,255,255,.92);backdrop-filter:blur(10px);border:1px solid var(--line);border-radius:16px;padding:12px;display:flex;gap:10px;flex-wrap:wrap;box-shadow:var(--shadow-md)}
.modal-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.45);display:none;align-items:center;justify-content:center;padding:18px;z-index:1000}
.modal-card{background:#fff;border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow-md);width:min(920px,100%);max-height:90vh;overflow:auto;padding:20px}
.movement-inline{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.movement-inline input[type='number']{width:110px}
.compact-input{padding:8px 10px;border-radius:10px}
.inventory-low{box-shadow:inset 4px 0 0 #ef4444}
.inventory-medium{box-shadow:inset 4px 0 0 #f59e0b}
.inventory-ok{box-shadow:inset 4px 0 0 #22c55e}
.empty-state{padding:34px 18px;text-align:center;color:var(--muted)}
.empty-state h3{margin-bottom:6px}
.stat-inline{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.upload-inline{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
@media (max-width: 760px){
  .filter-grid .span-2{grid-column:span 1}
  .data-table{min-width:760px}
  .module-title{font-size:1.45rem}
}

/* Roles y permisos */
.permission-group{border:1px solid var(--line,#e5e7eb);border-radius:18px;background:rgba(255,255,255,.72);margin:12px 0;overflow:hidden}
.permission-group summary{cursor:pointer;padding:14px 16px;font-weight:800;background:linear-gradient(180deg,#fff,#f8fbff)}
.permission-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px;padding:14px}
.permission-card{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--line,#e5e7eb);border-radius:14px;padding:12px;background:#fff;margin:0;font-weight:500}
.permission-card input{width:auto;margin:3px 0 0 0}
.permission-card small{display:block;color:var(--muted,#64748b);font-weight:500;margin-top:2px}

/* Órdenes: listado claro y legible incluso con muchas columnas.
   La tabla ya no se comprime hasta partir textos; mantiene anchuras mínimas y usa scroll horizontal. */
.ordenes-table-card{
  overflow:hidden;
}
.ordenes-table-card .table-card-head{
  align-items:flex-start;
}
.ordenes-table-wrap{
  overflow-x:auto;
  overflow-y:visible;
  scrollbar-width:thin;
  scrollbar-color:#94a3b8 #e2e8f0;
}
.ordenes-table-wrap::-webkit-scrollbar{height:12px}
.ordenes-table-wrap::-webkit-scrollbar-track{background:#e2e8f0;border-radius:999px}
.ordenes-table-wrap::-webkit-scrollbar-thumb{background:#94a3b8;border-radius:999px;border:3px solid #e2e8f0}
.ordenes-responsive-table{
  width:max-content;
  min-width:2360px;
  table-layout:fixed;
  border-radius:0;
}
.ordenes-responsive-table col.col-id{width:68px}
.ordenes-responsive-table col.col-fechas{width:135px}
.ordenes-responsive-table col.col-ubicacion{width:190px}
.ordenes-responsive-table col.col-titulo{width:210px}
.ordenes-responsive-table col.col-descripcion{width:370px}
.ordenes-responsive-table col.col-horas{width:80px}
.ordenes-responsive-table col.col-creador{width:135px}
.ordenes-responsive-table col.col-supervisor{width:135px}
.ordenes-responsive-table col.col-tecnicos{width:165px}
.ordenes-responsive-table col.col-prl{width:120px}
.ordenes-responsive-table col.col-tipo{width:128px}
.ordenes-responsive-table col.col-seguridad{width:135px}
.ordenes-responsive-table col.col-prioridad{width:120px}
.ordenes-responsive-table col.col-estado{width:125px}
.ordenes-responsive-table col.col-acciones{width:485px}
.ordenes-responsive-table th,
.ordenes-responsive-table td{
  vertical-align:top;
  word-break:normal;
  overflow-wrap:normal;
}
.ordenes-responsive-table th{
  white-space:nowrap;
  line-height:1.15;
  padding-top:14px;
  padding-bottom:14px;
}
.ordenes-responsive-table td{
  line-height:1.45;
}
.ordenes-responsive-table td:not(.orden-descripcion-cell):not(.orden-actions-cell){
  white-space:normal;
}
.ordenes-responsive-table .data-title,
.ordenes-responsive-table .data-sub,
.ordenes-responsive-table td[data-label='Creada por'],
.ordenes-responsive-table td[data-label='Supervisor'],
.ordenes-responsive-table td[data-label='Técnicos'],
.ordenes-responsive-table td[data-label='PRL']{
  overflow-wrap:break-word;
}
.ordenes-responsive-table .chip{
  white-space:nowrap;
  overflow-wrap:normal;
  word-break:normal;
  min-width:max-content;
}
.ordenes-responsive-table .btn{
  white-space:nowrap;
}
.orden-descripcion-cell{
  vertical-align:top;
}
.orden-descripcion-completa{
  white-space:pre-wrap;
  overflow-wrap:break-word;
  word-break:normal;
  line-height:1.45;
}
.orden-actions-cell,
.orden-actions-cell *{
  overflow-wrap:normal!important;
  word-break:normal!important;
}
.orden-actions-wrap{
  display:grid;
  grid-template-columns:1fr;
  gap:8px;
  min-width:445px;
  max-width:455px;
}
.orden-action-row{
  display:flex;
  align-items:center;
  gap:7px;
  flex-wrap:wrap;
  min-width:0;
}
.orden-action-row-main{
  padding-bottom:2px;
}
.orden-action-row-work{
  padding-top:2px;
  padding-bottom:2px;
}
.orden-action-row-danger{
  border-top:1px dashed var(--line-strong);
  padding-top:8px;
}
.orden-actions-cell .btn,
.orden-actions-cell form.inline button{
  width:auto;
  max-width:100%;
  min-height:31px;
  padding:6px 10px;
  border-radius:9px;
  font-size:.76rem;
  line-height:1.1;
  white-space:nowrap!important;
}
.orden-actions-cell form.inline{
  display:inline-flex;
  align-items:center;
  gap:6px;
  margin:0;
}
.orden-delete-inline{
  flex-wrap:nowrap;
}
.orden-delete-inline .small-password{
  width:118px;
  margin-top:0;
  min-height:31px;
}
.ordenes-list-table th:nth-child(1),
.ordenes-list-table td:nth-child(1){text-align:left}
.ordenes-list-table th:nth-child(6),
.ordenes-list-table td:nth-child(6){text-align:right}
.ordenes-peligrosas-table{
  min-width:1500px;
  width:max-content;
  table-layout:fixed;
}
.ordenes-peligrosas-table th:nth-child(4),
.ordenes-peligrosas-table td:nth-child(4){width:360px}
.ordenes-peligrosas-table th:nth-child(8),
.ordenes-peligrosas-table td:nth-child(8){width:280px}

@media (max-width: 980px){
  .ordenes-responsive-table{
    min-width:0;
    width:100%;
  }
  .ordenes-responsive-table colgroup{display:none}
  .ordenes-responsive-table,
  .ordenes-responsive-table thead,
  .ordenes-responsive-table tbody,
  .ordenes-responsive-table tr,
  .ordenes-responsive-table td{
    display:block;
    width:100%!important;
  }
  .ordenes-responsive-table thead{
    position:absolute;
    width:1px!important;
    height:1px;
    padding:0;
    margin:-1px;
    overflow:hidden;
    clip:rect(0, 0, 0, 0);
    white-space:nowrap;
    border:0;
  }
  .ordenes-responsive-table tbody{
    padding:12px;
  }
  .ordenes-responsive-table tbody tr{
    margin:12px;
    padding:12px;
    border:1px solid var(--line);
    border-radius:18px;
    background:var(--surface);
    box-shadow:var(--shadow-sm);
  }
  .ordenes-responsive-table tbody tr:nth-child(even){
    background:var(--surface);
  }
  .ordenes-responsive-table tbody tr:hover{
    background:#f8fbff;
  }
  .ordenes-responsive-table td{
    display:grid!important;
    grid-template-columns:140px minmax(0,1fr);
    gap:10px;
    align-items:start;
    padding:9px 4px;
    border-bottom:1px solid var(--line);
    text-align:left!important;
  }
  .ordenes-responsive-table td::before{
    content:attr(data-label);
    color:var(--muted);
    font-size:.78rem;
    font-weight:900;
    letter-spacing:.03em;
    text-transform:uppercase;
  }
  .ordenes-responsive-table .orden-descripcion-cell{
    min-width:0;
    max-width:none;
  }
  .ordenes-responsive-table .orden-actions-cell{
    display:block!important;
    border-bottom:0;
    padding-top:12px;
  }
  .ordenes-responsive-table .orden-actions-cell::before{
    content:attr(data-label);
    display:block;
    margin-bottom:8px;
    color:var(--muted);
    font-size:.78rem;
    font-weight:900;
    letter-spacing:.03em;
    text-transform:uppercase;
  }
  .ordenes-responsive-table .orden-actions-wrap{
    min-width:0;
    max-width:none;
  }
  .ordenes-responsive-table .orden-action-row{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
    gap:8px;
  }
  .ordenes-responsive-table .orden-action-row .btn,
  .ordenes-responsive-table .orden-action-row form,
  .ordenes-responsive-table .orden-action-row form .btn{
    width:100%;
  }
  .ordenes-responsive-table .orden-action-row form{
    min-width:0!important;
  }
  .orden-delete-inline{
    grid-column:1 / -1;
    display:grid!important;
    grid-template-columns:minmax(140px, 1fr) auto;
  }
  .orden-delete-inline .small-password{
    width:100%;
  }
}

@media (max-width: 640px){
  .ordenes-responsive-table tbody{
    padding:8px;
  }
  .ordenes-responsive-table tbody tr{
    margin:10px 0;
    padding:10px;
  }
  .ordenes-responsive-table td{
    grid-template-columns:1fr;
    gap:4px;
  }
  .ordenes-responsive-table .orden-action-row{
    grid-template-columns:1fr;
  }
  .orden-delete-inline{
    grid-template-columns:1fr;
  }
}

body.dark-mode .ordenes-responsive-table tbody tr,
body.dark-mode .ordenes-responsive-table tbody tr:nth-child(even){
  background:rgba(15,23,42,.88);
  border-color:#263449;
}
body.dark-mode .ordenes-responsive-table tbody tr:hover{
  background:rgba(37,99,235,.16);
}
/* ===== Preventivas: vista cómoda y periodicidades ===== */
.prev-hero{margin-bottom:18px;display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap}
.prev-kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px;margin:0 0 16px 0}
.prev-kpi-card{position:relative;overflow:hidden;border:1px solid var(--line);border-radius:18px;background:var(--surface);box-shadow:var(--shadow-sm);padding:16px 16px 16px 18px}
.prev-kpi-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:var(--primary)}
.prev-kpi-card.danger:before{background:var(--danger)}
.prev-kpi-card.warn:before{background:var(--warning)}
.prev-kpi-card.ok:before{background:var(--success)}
.prev-kpi-card.muted-card:before{background:#94a3b8}
.prev-kpi-card span{display:block;color:var(--muted);font-weight:700;font-size:.86rem}
.prev-kpi-card strong{display:block;margin-top:8px;font-size:2rem;line-height:1;font-weight:900;color:var(--text)}
.prev-kpi-card small{display:block;margin-top:8px;color:var(--muted)}
a.prev-kpi-card.prev-kpi-link{display:block;color:inherit;text-decoration:none;cursor:pointer;transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease}
a.prev-kpi-card.prev-kpi-link:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:rgba(37,99,235,.35)}
a.prev-kpi-card.prev-kpi-link.is-active{border-color:rgba(37,99,235,.45);box-shadow:0 12px 24px rgba(37,99,235,.14)}
a.prev-kpi-card.prev-kpi-link:focus-visible{outline:3px solid rgba(37,99,235,.28);outline-offset:3px}

.prev-filter-card .section-head{margin-bottom:12px}
.prev-filter-search{min-width:min(360px,100%);flex:0 1 360px}
.prev-filter-search input{margin:0}
.prev-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:6px 0 16px 0}
.prev-tab{border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:999px;padding:10px 14px;font-weight:800;cursor:pointer;box-shadow:var(--shadow-sm)}
.prev-tab span{display:inline-flex;margin-left:6px;min-width:24px;height:24px;border-radius:999px;align-items:center;justify-content:center;background:var(--surface-2);color:var(--muted);font-size:.78rem}
.prev-tab.is-active{background:linear-gradient(135deg,var(--primary),var(--primary-2));color:#fff;border-color:transparent;box-shadow:0 12px 24px rgba(37,99,235,.18)}
.prev-tab.is-active span{background:rgba(255,255,255,.18);color:#fff}
.prev-section .table{margin:0}
.prev-period-chip{display:inline-flex;align-items:center;padding:5px 10px;border-radius:999px;background:var(--primary-soft);color:var(--primary-2);font-weight:800;font-size:.82rem;margin-right:6px}
.prev-actions-cell{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.small-text{font-size:.86rem;margin-top:3px}
.prev-form-card{max-width:1100px}
.form-section-title{font-weight:900;color:var(--text);margin:8px 0 12px 0;padding-top:8px;border-top:1px solid var(--line)}
.form-section-title:first-of-type{border-top:0;padding-top:0}
.prev-period-box{display:grid;grid-template-columns:minmax(220px,1.2fr) minmax(190px,.8fr);gap:16px;align-items:start;border:1px solid var(--line);border-radius:18px;background:linear-gradient(180deg,#fff,#f8fbff);padding:16px;margin-bottom:14px}
.prev-period-box input[readonly]{background:var(--surface-2);color:var(--muted);cursor:not-allowed}
.form-actions-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}
.prev-detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px;margin-bottom:16px}
.prev-info-card{margin:0;min-height:112px;display:flex;flex-direction:column;justify-content:center}
.prev-info-card span{color:var(--muted);font-weight:800;font-size:.82rem;text-transform:uppercase;letter-spacing:.05em}
.prev-info-card strong{font-size:1.15rem;margin-top:6px}
.prev-info-card small{margin-top:4px;color:var(--muted)}
@media (max-width: 760px){
  .prev-period-box{grid-template-columns:1fr}
  .prev-actions-cell{display:grid}
  .prev-actions-cell .btn{width:100%}
}
body.dark-mode .prev-kpi-card,
body.dark-mode .prev-tab,
body.dark-mode .prev-period-box{background:rgba(15,23,42,.88);border-color:#263449}
body.dark-mode .prev-period-chip{background:#10233f;color:#93c5fd}
body.dark-mode .prev-period-box input[readonly]{background:#111827;color:#94a3b8}

/* Preventivas: notas/alcance punto por punto */
.preventiva-points-field{
  display:block;
  border:1px solid var(--line);
  border-radius:18px;
  background:linear-gradient(180deg,#fff,#f8fbff);
  padding:16px;
  margin-top:14px;
}
.preventiva-points-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:10px}
.preventiva-points-head label{margin:0;font-weight:900;color:var(--text)}
.preventiva-points-list{display:grid;gap:8px;margin:0 0 10px 0}
.preventiva-point-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px;align-items:center}
.preventiva-point-marker{font-size:1.25rem;font-weight:900;color:var(--primary);line-height:1}
.preventiva-point-input{margin:0}
.preventiva-point-remove:disabled{opacity:.45;cursor:not-allowed}
.preventiva-points-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:8px}
.preventiva-notas-raw{margin-top:10px;min-height:150px;white-space:pre-wrap}
.js-enabled .preventiva-notas-raw{display:none}
.preventiva-notas-card{margin-bottom:1.5rem}
.preventiva-notas-list{margin:10px 0 0 0;padding-left:1.35rem;display:grid;gap:8px;line-height:1.5}
.preventiva-notas-list li{padding-left:4px;overflow-wrap:anywhere}
.preventiva-notas-inline,.preventiva-observacion-cell{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.45}
.preventiva-versiones-card{margin-bottom:1.5rem}
.preventiva-versiones-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:12px}
.preventiva-versiones-list{display:grid;gap:10px}
.preventiva-version-item{border:1px solid var(--line);border-radius:14px;background:#fff;overflow:hidden}
.preventiva-version-item summary{cursor:pointer;list-style:none;padding:12px 14px;display:flex;gap:10px;align-items:center;flex-wrap:wrap;font-weight:700;background:linear-gradient(180deg,#fff,#f8fbff)}
.preventiva-version-item summary::-webkit-details-marker{display:none}
.preventiva-version-item summary span{color:var(--muted);font-size:.9rem;font-weight:700}
.preventiva-version-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;padding:14px;border-top:1px solid var(--line)}
.preventiva-version-grid h3{margin:0 0 8px;font-size:.95rem}
.preventiva-notas-list.compact{margin-top:0;gap:5px;font-size:.95rem}
.preventiva-notes-preview{white-space:pre-line;overflow:hidden;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;line-height:1.35;max-width:420px}
.preventiva-estado-card .table-card-head{margin-bottom:12px}
.preventiva-estado-list{display:grid;gap:12px;margin-top:12px}
.preventiva-estado-row{display:grid;grid-template-columns:auto minmax(0,1fr);gap:14px;align-items:flex-start;border:1px solid var(--line);border-radius:16px;padding:16px;background:#fff;box-shadow:0 2px 10px rgba(15,23,42,.04)}
.preventiva-estado-row.done{border-color:#bbf7d0;background:#f0fdf4}
.preventiva-estado-row.pending{border-color:#fde68a;background:#fffbeb}
.preventiva-estado-check{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:999px;font-weight:900;font-size:18px;background:rgba(15,23,42,.08);color:var(--text)}
.preventiva-estado-row.done .preventiva-estado-check{background:var(--success-soft);color:#166534}
.preventiva-estado-row.pending .preventiva-estado-check{background:#fef3c7;color:#92400e}
.preventiva-estado-headline{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;flex-wrap:wrap}
.preventiva-estado-row strong{display:block;line-height:1.35;font-size:1.08rem}
.preventiva-estado-row small,.preventiva-estado-meta{display:block;color:var(--muted);margin-top:5px;font-size:.98rem;line-height:1.45}
.preventiva-estado-row p{margin:.55rem 0 0;color:var(--text);white-space:pre-wrap;overflow-wrap:anywhere}
.preventiva-status-pill{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;font-size:.82rem;font-weight:800;border:1px solid transparent;white-space:nowrap}
.preventiva-status-pill.al_dia{background:#dcfce7;color:#166534;border-color:#bbf7d0}
.preventiva-status-pill.proximo{background:#fef9c3;color:#854d0e;border-color:#fde68a}
.preventiva-status-pill.intermedio{background:#ffedd5;color:#9a3412;border-color:#fdba74}
.preventiva-status-pill.critico{background:#fee2e2;color:#b91c1c;border-color:#fca5a5}
.preventiva-status-pill.caducado{background:#fecaca;color:#991b1b;border-color:#f87171}
.preventiva-status-pill.sin_fecha{background:#e2e8f0;color:#475569;border-color:#cbd5e1}
.preventiva-ejecutar-card{max-width:1100px}
.preventiva-ejecucion-form{margin-top:1rem}
.preventiva-ejecucion-puntos{border:1px solid var(--line);border-radius:18px;background:linear-gradient(180deg,#fff,#f8fbff);padding:16px;margin:14px 0}
.preventiva-ejecucion-puntos h2{margin:0 0 2px}
.preventiva-ejecucion-tools{display:flex;gap:8px;flex-wrap:wrap}
.preventiva-checklist{display:grid;gap:10px;margin-top:12px}
.preventiva-check-row{border:1px solid var(--line);border-radius:16px;background:#fff;padding:14px;display:grid;gap:10px;box-shadow:0 2px 10px rgba(15,23,42,.04)}
.preventiva-check-main{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;align-items:flex-start;margin:0}
.preventiva-check-main input{margin-top:5px;transform:scale(1.35)}
.preventiva-check-main strong{display:block;line-height:1.35;font-size:1.05rem}
.preventiva-check-main small{display:block;color:var(--muted);margin-top:4px;font-size:.97rem;line-height:1.45}
.preventiva-check-row textarea{margin:0;min-height:64px}
.preventiva-open-note{border:1px solid #fde68a;background:#fffbeb;color:#92400e;border-radius:14px;padding:12px;margin-top:12px;line-height:1.45}
@media (max-width: 640px){
  .preventiva-point-row{grid-template-columns:auto minmax(0,1fr)}
  .preventiva-point-remove{grid-column:2;justify-self:start}
}
body.dark-mode .preventiva-points-field,
body.dark-mode .preventiva-ejecucion-puntos{background:rgba(15,23,42,.88);border-color:#263449}
body.dark-mode .preventiva-version-item,
body.dark-mode .preventiva-version-item summary,
body.dark-mode .preventiva-estado-row,
body.dark-mode .preventiva-check-row{background:#111827;border-color:#263449}
body.dark-mode .preventiva-estado-row.done{background:#062e1b;border-color:#14532d}
body.dark-mode .preventiva-estado-row.pending,
body.dark-mode .preventiva-open-note{background:#2f2306;border-color:#854d0e;color:#fde68a}
/* Preventivas por punto: estados calculados por próxima fecha */
.preventiva-estado-row.al_dia,.preventiva-check-row.al_dia{border-color:#bbf7d0;background:#f0fdf4}
.preventiva-estado-row.proximo,.preventiva-check-row.proximo{border-color:#fde68a;background:#fffbeb}
.preventiva-estado-row.intermedio,.preventiva-check-row.intermedio{border-color:#fdba74;background:#fff7ed}
.preventiva-estado-row.critico,.preventiva-check-row.critico{border-color:#fca5a5;background:#fff1f2}
.preventiva-estado-row.caducado,.preventiva-check-row.caducado{border-color:#f87171;background:#fef2f2}
.preventiva-estado-row.sin_fecha,.preventiva-check-row.sin_fecha{border-color:#cbd5e1;background:#f8fafc}
.preventiva-estado-row.al_dia .preventiva-estado-check{background:var(--success-soft);color:#166534}
.preventiva-estado-row.proximo .preventiva-estado-check{background:#fef3c7;color:#92400e}
.preventiva-estado-row.intermedio .preventiva-estado-check{background:#ffedd5;color:#9a3412}
.preventiva-estado-row.critico .preventiva-estado-check,.preventiva-estado-row.caducado .preventiva-estado-check{background:#fee2e2;color:#991b1b}
.preventiva-estado-row.sin_fecha .preventiva-estado-check{background:#e2e8f0;color:#475569}
.prev-point-alert{margin-top:6px;padding:8px 10px;border-radius:12px;max-width:720px;line-height:1.45;font-size:.96rem}
.prev-point-alert.warn{background:#fffbeb;color:#92400e;border:1px solid #fde68a}
.prev-point-alert.danger{background:#fef2f2;color:#991b1b;border:1px solid #fecaca}
body.dark-mode .preventiva-estado-row.al_dia,body.dark-mode .preventiva-check-row.al_dia{background:#062e1b;border-color:#14532d}
body.dark-mode .preventiva-estado-row.proximo,body.dark-mode .preventiva-check-row.proximo{background:#2f2306;border-color:#854d0e}
body.dark-mode .preventiva-estado-row.intermedio,body.dark-mode .preventiva-check-row.intermedio{background:#3b1f10;border-color:#9a3412}
body.dark-mode .preventiva-estado-row.critico,body.dark-mode .preventiva-check-row.critico,body.dark-mode .preventiva-estado-row.caducado,body.dark-mode .preventiva-check-row.caducado{background:#3b0d0d;border-color:#7f1d1d}
body.dark-mode .preventiva-estado-row.sin_fecha,body.dark-mode .preventiva-check-row.sin_fecha{background:#172033;border-color:#334155}
body.dark-mode .prev-point-alert.warn{background:#2f2306;color:#fde68a;border-color:#854d0e}
body.dark-mode .prev-point-alert.danger{background:#3b0d0d;color:#fecaca;border-color:#7f1d1d}

/* ===== Tanda 13: Órdenes en vista cómoda sin scroll horizontal =====
   Se mantiene la tabla semántica para buscador/exportación, pero visualmente cada fila se presenta como tarjeta. */
.ordenes-table-card .table-card-head{
  border-bottom:1px solid var(--line);
}
.ordenes-table-wrap{
  overflow-x:visible!important;
  overflow-y:visible!important;
  padding:0;
  scrollbar-width:none;
}
.ordenes-table-wrap::-webkit-scrollbar{display:none!important}
.ordenes-responsive-table{
  display:block!important;
  width:100%!important;
  min-width:0!important;
  table-layout:auto!important;
  border-collapse:separate!important;
  background:transparent!important;
}
.ordenes-responsive-table colgroup,
.ordenes-responsive-table thead{
  display:none!important;
}
.ordenes-responsive-table tbody{
  display:grid!important;
  grid-template-columns:1fr;
  gap:14px;
  padding:14px;
  background:linear-gradient(180deg,#f8fafc,#eef4fb);
}
.ordenes-responsive-table tbody tr{
  display:grid!important;
  grid-template-columns:80px minmax(180px,1fr) minmax(250px,1.35fr) minmax(200px,.95fr) minmax(320px,1.05fr);
  grid-template-areas:
    "oid titulo descripcion tipo acciones"
    "fechas ubicacion descripcion estado acciones"
    "horas creado supervisor prioridad acciones"
    "prl tecnicos seguridad seguridad acciones";
  gap:10px;
  width:100%!important;
  margin:0!important;
  padding:12px!important;
  border:1px solid var(--line)!important;
  border-radius:18px!important;
  background:var(--surface)!important;
  box-shadow:var(--shadow-sm)!important;
  align-items:stretch;
}
.ordenes-responsive-table tbody tr:hover{
  background:#fbfdff!important;
  border-color:#bfd4f5!important;
  box-shadow:0 14px 30px rgba(15,23,42,.08)!important;
}
.ordenes-responsive-table td{
  display:block!important;
  width:auto!important;
  min-width:0!important;
  padding:9px 10px!important;
  border:0!important;
  border-radius:13px;
  background:rgba(248,250,252,.88);
  text-align:left!important;
  line-height:1.35!important;
  white-space:normal!important;
  overflow-wrap:break-word!important;
  word-break:normal!important;
}
.ordenes-responsive-table td::before{
  content:attr(data-label);
  display:block;
  margin-bottom:4px;
  color:var(--muted);
  font-size:.68rem;
  font-weight:900;
  letter-spacing:.05em;
  line-height:1.1;
  text-transform:uppercase;
}
.ordenes-responsive-table td:nth-child(1){grid-area:oid;background:#fff;align-self:start;text-align:center!important}
.ordenes-responsive-table td:nth-child(2){grid-area:fechas}
.ordenes-responsive-table td:nth-child(3){grid-area:ubicacion}
.ordenes-responsive-table td:nth-child(4){grid-area:titulo;background:#fff}
.ordenes-responsive-table td:nth-child(5){grid-area:descripcion;background:#fff}
.ordenes-responsive-table td:nth-child(6){grid-area:horas;text-align:left!important}
.ordenes-responsive-table td:nth-child(7){grid-area:creado}
.ordenes-responsive-table td:nth-child(8){grid-area:supervisor}
.ordenes-responsive-table td:nth-child(9){grid-area:tecnicos}
.ordenes-responsive-table td:nth-child(10){grid-area:prl}
.ordenes-responsive-table td:nth-child(11){grid-area:tipo;text-align:center!important}
.ordenes-responsive-table td:nth-child(12){grid-area:seguridad}
.ordenes-responsive-table td:nth-child(13){grid-area:prioridad;text-align:center!important}
.ordenes-responsive-table td:nth-child(14){grid-area:estado;text-align:center!important}
.ordenes-responsive-table td:nth-child(15){grid-area:acciones;background:#f8fbff;border:1px solid #dbeafe!important}
.ordenes-responsive-table td:nth-child(1)::before,
.ordenes-responsive-table td:nth-child(4)::before,
.ordenes-responsive-table td:nth-child(5)::before,
.ordenes-responsive-table td:nth-child(15)::before{
  margin-bottom:6px;
}
.ordenes-responsive-table td:nth-child(4) .data-title,
.ordenes-responsive-table td:nth-child(4) a.data-title{
  font-size:1rem;
  color:var(--text);
}
.orden-descripcion-completa{
  max-height:none!important;
  white-space:pre-wrap!important;
}
.ordenes-responsive-table .chip{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  max-width:100%;
  min-width:0!important;
  white-space:normal!important;
  line-height:1.15;
  text-align:center;
}
.orden-actions-cell::before{
  content:"Acciones"!important;
}
.orden-actions-wrap{
  min-width:0!important;
  max-width:none!important;
  width:100%;
  display:grid;
  gap:9px;
}
.orden-action-row{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:7px;
  align-items:stretch;
}
.orden-action-row-main{
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
}
.orden-action-row-work{
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
}
.orden-action-row-danger{
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  border-top:1px dashed var(--line-strong);
  padding-top:9px;
}
.orden-actions-cell .btn,
.orden-actions-cell form.inline button{
  width:100%!important;
  min-width:0!important;
  min-height:34px!important;
  padding:7px 8px!important;
  white-space:normal!important;
}
.orden-actions-cell form.inline{
  display:flex!important;
  width:100%!important;
  gap:6px;
}
.orden-delete-inline{
  grid-column:1 / -1;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(95px,.55fr);
  align-items:center;
}
.orden-delete-inline .small-password{
  width:100%!important;
  max-width:none!important;
  min-height:34px!important;
}
.orden-empty-row{
  display:block!important;
}
.orden-empty-row td{
  display:block!important;
}

@media (max-width: 1280px){
  .ordenes-responsive-table tbody tr{
    grid-template-columns:72px minmax(180px,1fr) minmax(220px,1.15fr) minmax(290px,1fr);
    grid-template-areas:
      "oid titulo tipo acciones"
      "fechas ubicacion estado acciones"
      "descripcion descripcion prioridad acciones"
      "horas creado supervisor acciones"
      "prl tecnicos seguridad acciones";
  }
  .orden-action-row-main{
    grid-template-columns:1fr!important;
  }
}

@media (max-width: 920px){
  .ordenes-responsive-table tbody{
    padding:10px;
    gap:12px;
  }
  .ordenes-responsive-table tbody tr{
    grid-template-columns:1fr 1fr;
    grid-template-areas:
      "oid fechas"
      "titulo titulo"
      "descripcion descripcion"
      "ubicacion ubicacion"
      "tipo estado"
      "prioridad seguridad"
      "horas prl"
      "creado supervisor"
      "tecnicos tecnicos"
      "acciones acciones";
    padding:10px!important;
  }
  .orden-action-row,
  .orden-action-row-main,
  .orden-action-row-work,
  .orden-action-row-danger{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
}

@media (max-width: 560px){
  .ordenes-responsive-table tbody tr{
    grid-template-columns:1fr;
    grid-template-areas:
      "oid"
      "titulo"
      "descripcion"
      "fechas"
      "ubicacion"
      "tipo"
      "estado"
      "prioridad"
      "seguridad"
      "horas"
      "prl"
      "creado"
      "supervisor"
      "tecnicos"
      "acciones";
  }
  .orden-action-row,
  .orden-action-row-main,
  .orden-action-row-work,
  .orden-action-row-danger,
  .orden-delete-inline{
    grid-template-columns:1fr!important;
  }
}

body.dark-mode .ordenes-responsive-table tbody{
  background:linear-gradient(180deg,rgba(15,23,42,.72),rgba(15,23,42,.92));
}
body.dark-mode .ordenes-responsive-table td{
  background:rgba(15,23,42,.62);
}
body.dark-mode .ordenes-responsive-table td:nth-child(4),
body.dark-mode .ordenes-responsive-table td:nth-child(5),
body.dark-mode .ordenes-responsive-table td:nth-child(15){
  background:rgba(15,23,42,.88);
}

.pagination-wrap{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:14px 18px;border-top:1px solid var(--line);background:#fff}
.pagination{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.pagination-size-form{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:.85rem}
.pagination-size-form label{display:flex;align-items:center;gap:8px;margin:0}
.pagination-size-form select{min-height:34px;padding:6px 10px;border:1px solid var(--line);border-radius:10px;background:#fff}
.pagination-ellipsis{color:var(--muted);padding:0 4px}

/* ===== Pedidos: vista moderna en tarjetas, sin barra horizontal ===== */
.pedidos-toolbar{
  margin-bottom:16px;
}
.pedidos-metric-grid .metric-card{
  position:relative;
  overflow:hidden;
}
.pedidos-metric-grid .metric-card::after{
  content:"";
  position:absolute;
  right:-28px;
  top:-28px;
  width:82px;
  height:82px;
  border-radius:999px;
  background:rgba(37,99,235,.08);
}
.pedidos-filters .filter-grid{
  grid-template-columns:minmax(180px,.6fr) minmax(260px,1.4fr);
}
.pedidos-table-card{
  overflow:hidden;
}
.pedidos-card-list{
  display:grid;
  grid-template-columns:1fr;
  gap:14px;
  padding:14px;
  background:linear-gradient(180deg,#f8fafc,#eef4fb);
  overflow-x:hidden;
}
.pedido-card{
  display:grid;
  grid-template-columns:110px minmax(0,1.85fr) minmax(260px,.62fr);
  gap:14px;
  align-items:start;
  width:100%;
  min-width:0;
  border:1px solid var(--line);
  border-radius:20px;
  padding:14px;
  background:var(--surface);
  box-shadow:var(--shadow-sm);
  transition:border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}
.pedido-card:hover{
  border-color:#bfd4f5;
  box-shadow:0 16px 34px rgba(15,23,42,.09);
  transform:translateY(-1px);
}
.pedido-card-id{
  display:grid;
  gap:9px;
  justify-items:center;
  align-content:start;
  padding:10px;
  border-radius:16px;
  background:linear-gradient(180deg,#fff,#f8fbff);
  border:1px solid var(--line);
}
.pedido-card-id .inline-kbd{
  font-size:1rem;
  font-weight:900;
}
.pedido-chip{
  width:100%;
  white-space:normal;
  text-align:center;
}
.pedido-card-main{
  min-width:0;
  display:grid;
  gap:12px;
}
.pedido-card-title-row{
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:flex-start;
  padding:12px;
  border:1px solid var(--line);
  border-radius:16px;
  background:#fff;
}
.pedido-title{
  color:var(--text);
  font-weight:900;
  font-size:1.05rem;
  line-height:1.25;
  overflow-wrap:anywhere;
}
.pedido-date{
  flex:0 0 auto;
  color:var(--muted);
  font-weight:800;
  font-size:.82rem;
  white-space:nowrap;
  border:1px solid var(--line);
  border-radius:999px;
  padding:6px 9px;
  background:#f8fafc;
}
.pedido-description-box{
  padding:12px;
  border-radius:16px;
  border:1px solid #dbeafe;
  background:#fbfdff;
  min-width:0;
}
.pedido-description-text,
.pedido-note-readonly{
  margin-top:4px;
  white-space:pre-wrap;
  overflow-wrap:anywhere;
  line-height:1.45;
}
.pedido-info-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:9px;
}
.pedido-info-item{
  min-width:0;
  padding:10px;
  border:1px solid var(--line);
  border-radius:14px;
  background:rgba(248,250,252,.92);
}
.pedido-info-item span{
  display:block;
  margin-bottom:4px;
  color:var(--muted);
  font-size:.68rem;
  font-weight:900;
  letter-spacing:.05em;
  line-height:1.1;
  text-transform:uppercase;
}
.pedido-info-item strong{
  display:block;
  color:var(--text);
  font-size:.9rem;
  line-height:1.3;
  overflow-wrap:anywhere;
}
.pedido-card-actions{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:10px;
}
.pedido-action-panel{
  min-width:0;
  padding:12px;
  border:1px solid var(--line);
  border-radius:16px;
  background:#f8fbff;
}
.pedido-action-panel h3{
  margin:0 0 8px 0;
  font-size:.84rem;
  font-weight:900;
  color:var(--text);
  letter-spacing:.02em;
}
.pedido-action-panel form{
  display:grid;
  gap:8px;
  margin:0;
}
.pedido-notas-panel-main .pedido-nota-form{
  grid-template-columns:minmax(0,1fr) auto;
  align-items:end;
}
.pedido-notas-panel-main .pedido-nota-form textarea{
  min-height:70px;
}
.pedido-notas-panel-main .pedido-nota-form .btn{
  min-height:42px;
  align-self:stretch;
}
.pedido-action-panel textarea,
.pedido-action-panel select{
  width:100%;
  min-width:0;
}
.pedido-action-panel textarea{
  min-height:78px;
  resize:vertical;
}
.pedido-action-panel small{
  color:var(--muted);
  line-height:1.35;
}
.pedido-notas-panel{
  background:#fff;
  border-color:#dbeafe;
}
.pedido-notas-panel-main{
  background:linear-gradient(180deg,#ffffff,#f8fbff);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.75);
}
.pedido-panel-title-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom:8px;
}
.pedido-panel-title-row h3{
  margin:0;
}
.pedido-note-count{
  flex:0 0 auto;
  border:1px solid #bfdbfe;
  border-radius:999px;
  padding:3px 8px;
  background:#eff6ff;
  color:#1d4ed8;
  font-size:.72rem;
  font-weight:900;
}
.pedido-conversation{
  display:grid;
  gap:8px;
  max-height:220px;
  overflow:auto;
  margin-bottom:10px;
  padding:8px;
  border:1px solid #e0ecff;
  border-radius:14px;
  background:linear-gradient(180deg,#f8fbff,#fff);
}
.pedido-message{
  padding:9px 10px;
  border:1px solid var(--line);
  border-radius:14px;
  background:#fff;
  box-shadow:0 8px 18px rgba(15,23,42,.05);
}
.pedido-message.is-own{
  border-color:#bfdbfe;
  background:#eff6ff;
}
.pedido-message-meta{
  display:flex;
  justify-content:space-between;
  gap:8px;
  align-items:center;
  margin-bottom:5px;
  color:var(--muted);
  font-size:.74rem;
  line-height:1.2;
}
.pedido-message-meta strong{
  color:var(--text);
  font-size:.78rem;
  overflow-wrap:anywhere;
}
.pedido-message-meta span{
  flex:0 0 auto;
  white-space:nowrap;
}
.pedido-message-text{
  white-space:pre-wrap;
  overflow-wrap:anywhere;
  line-height:1.45;
  color:var(--text);
}
.pedido-conversation-empty{
  padding:12px;
  border:1px dashed #bfdbfe;
  border-radius:12px;
  color:var(--muted);
  background:#f8fafc;
  text-align:center;
  font-weight:700;
}
.pedido-danger-panel{
  background:#fff7f7;
  border-color:#fecaca;
}
.pedido-status-pendiente{
  box-shadow:inset 4px 0 0 #f59e0b, var(--shadow-sm);
}
.pedido-status-solicitado{
  box-shadow:inset 4px 0 0 #2563eb, var(--shadow-sm);
}
.pedido-status-recibido{
  box-shadow:inset 4px 0 0 #22c55e, var(--shadow-sm);
}
.pedido-status-cancelado{
  box-shadow:inset 4px 0 0 #94a3b8, var(--shadow-sm);
}
.chip.estado-solicitado{background:#eef2ff;color:#4338ca;border-color:#c7d2fe}
.chip.estado-recibido{background:#dcfce7;color:#166534;border-color:#bbf7d0}
.chip.estado-cancelado{background:#e2e8f0;color:#334155;border-color:#cbd5e1}

@media (max-width: 1180px){
  .pedido-card{
    grid-template-columns:92px minmax(0,1fr);
    grid-template-areas:
      "id main"
      "actions actions";
  }
  .pedido-card-id{grid-area:id}
  .pedido-card-main{grid-area:main}
  .pedido-card-actions{
    grid-area:actions;
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
  .pedido-danger-panel{grid-column:auto}
}
@media (max-width: 820px){
  .pedidos-filters .filter-grid{
    grid-template-columns:1fr;
  }
  .pedidos-filters .filter-grid .span-2{
    grid-column:span 1;
  }
  .pedido-card{
    grid-template-columns:1fr;
    grid-template-areas:
      "id"
      "main"
      "actions";
  }
  .pedido-card-id{
    justify-items:start;
    grid-template-columns:auto minmax(0,1fr);
    align-items:center;
  }
  .pedido-chip{
    width:auto;
  }
  .pedido-info-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .pedido-card-actions{
    display:grid;
    grid-template-columns:1fr;
  }
  .pedido-notas-panel-main .pedido-nota-form{
    grid-template-columns:1fr;
  }
}
@media (max-width: 560px){
  .pedidos-card-list{
    padding:10px;
  }
  .pedido-card{
    padding:10px;
    border-radius:18px;
  }
  .pedido-card-title-row{
    display:grid;
  }
  .pedido-date{
    width:max-content;
    white-space:normal;
  }
  .pedido-info-grid{
    grid-template-columns:1fr;
  }
}
body.dark-mode .pedidos-card-list{
  background:linear-gradient(180deg,rgba(15,23,42,.72),rgba(15,23,42,.92));
}
body.dark-mode .pedido-card,
body.dark-mode .pedido-card-id,
body.dark-mode .pedido-card-title-row,
body.dark-mode .pedido-notas-panel{
  background:rgba(15,23,42,.82);
}
body.dark-mode .pedido-description-box,
body.dark-mode .pedido-action-panel,
body.dark-mode .pedido-info-item,
body.dark-mode .pedido-date,
body.dark-mode .pedido-conversation,
body.dark-mode .pedido-message,
body.dark-mode .pedido-conversation-empty{
  background:rgba(15,23,42,.62);
}
body.dark-mode .pedido-message.is-own,
body.dark-mode .pedido-note-count{
  background:rgba(37,99,235,.18);
}
body.dark-mode .pedido-danger-panel{
  background:rgba(69,10,10,.35);
}
.pedidos-form-card{
  overflow:visible;
}
.pedidos-material-picker{
  align-items:stretch;
}
.pedidos-material-picker select{
  flex:1 1 260px;
  min-width:0;
}
.pedidos-material-picker .btn{
  flex:0 0 auto;
}
@media (max-width:640px){
  .pedidos-material-picker .btn{
    width:100%;
  }
}

/* ===== Proyectos industriales: visual moderno ===== */
.project-page{
  display:grid;
  gap:18px;
}
.project-page h1,
.project-page h2,
.project-page h3{
  letter-spacing:-.025em;
}
.project-hero{
  position:relative;
  overflow:hidden;
  display:flex;
  justify-content:space-between;
  align-items:stretch;
  gap:22px;
  padding:26px;
  border:1px solid rgba(191,219,254,.72);
  border-radius:28px;
  background:
    radial-gradient(circle at 82% 18%, rgba(14,165,233,.18), transparent 28%),
    radial-gradient(circle at 8% 12%, rgba(99,102,241,.14), transparent 27%),
    linear-gradient(135deg, rgba(255,255,255,.96), rgba(239,246,255,.94));
  box-shadow:0 18px 46px rgba(15,23,42,.08);
}
.project-hero:before{
  content:"";
  position:absolute;
  right:-70px;
  bottom:-85px;
  width:240px;
  height:240px;
  border-radius:999px;
  background:linear-gradient(135deg, rgba(37,99,235,.18), rgba(20,184,166,.08));
  pointer-events:none;
}
.project-hero > *{position:relative;z-index:1}
.project-hero-main{max-width:880px;display:grid;gap:8px;align-content:start}
.project-hero h1{font-size:clamp(1.7rem, 3vw, 2.55rem);margin:0;color:var(--text)}
.project-hero p{max-width:76ch;color:var(--muted);font-size:1rem;line-height:1.65;margin:0}
.project-eyebrow,
.project-section-kicker{
  display:inline-flex;
  width:max-content;
  align-items:center;
  gap:8px;
  font-size:.73rem;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--primary);
}
.project-eyebrow:before,
.project-section-kicker:before{
  content:"";
  width:8px;
  height:8px;
  border-radius:999px;
  background:linear-gradient(135deg,var(--primary),#06b6d4);
  box-shadow:0 0 0 5px rgba(37,99,235,.10);
}
.project-back-link{
  color:var(--muted);
  font-weight:800;
  width:max-content;
}
.project-back-link:hover{color:var(--primary)}
.project-hero-actions,
.project-section-actions,
.project-form-actions{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:flex-end;
  gap:10px;
}
.project-action-stack{align-content:flex-start;align-items:flex-end;min-width:180px}
.project-hero-meta{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.project-pill,
.project-badge,
.project-mini-tag{
  display:inline-flex;
  align-items:center;
  gap:6px;
  border-radius:999px;
  font-weight:850;
  line-height:1.1;
  white-space:nowrap;
}
.project-pill{padding:7px 11px;font-size:.82rem;border:1px solid var(--line)}
.project-pill-soft{background:rgba(255,255,255,.72);color:#334155}
.project-pill-info{background:#e0f2fe;color:#075985;border-color:#bae6fd}
.project-badge{padding:6px 10px;font-size:.78rem;border:1px solid transparent}
.project-mini-tag{padding:5px 9px;font-size:.75rem;background:#eef2ff;color:#3730a3;border:1px solid #c7d2fe}
.project-mini-tag-danger{background:#fee2e2;color:#991b1b;border-color:#fecaca}
.project-mini-tag-warn{background:#fef3c7;color:#92400e;border-color:#fde68a}
.project-state-grid,
.project-kpi-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(170px,1fr));
  gap:14px;
}
.project-compact-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.project-money-grid{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));margin-bottom:16px}
.project-state-card,
.project-kpi-card{
  border:1px solid var(--line);
  border-radius:22px;
  background:rgba(255,255,255,.92);
  box-shadow:var(--shadow-sm);
  padding:16px;
}
.project-state-card{
  display:flex;
  align-items:center;
  gap:13px;
  transition:transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}
.project-state-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:#bfdbfe}
.project-state-card strong{display:block;font-size:1.55rem;line-height:1;color:var(--text)}
.project-state-card span{display:block;margin-top:5px;color:var(--muted);font-weight:750;font-size:.84rem}
.project-state-icon{
  width:42px;
  height:42px;
  border-radius:15px;
  background:linear-gradient(135deg,#dbeafe,#eff6ff);
  box-shadow:inset 0 0 0 1px rgba(37,99,235,.14);
  flex:0 0 auto;
}
.project-state-borrador .project-state-icon,
.project-state-badge.project-state-borrador{background:#f1f5f9;color:#334155;border-color:#cbd5e1}
.project-state-pendiente-aprobacion .project-state-icon,
.project-state-badge.project-state-pendiente-aprobacion{background:#fef3c7;color:#92400e;border-color:#fde68a}
.project-state-aprobado .project-state-icon,
.project-state-badge.project-state-aprobado{background:#dcfce7;color:#166534;border-color:#bbf7d0}
.project-state-en-curso .project-state-icon,
.project-state-badge.project-state-en-curso{background:#dbeafe;color:#1d4ed8;border-color:#bfdbfe}
.project-state-bloqueado .project-state-icon,
.project-state-badge.project-state-bloqueado{background:#ffedd5;color:#9a3412;border-color:#fed7aa}
.project-state-terminado .project-state-icon,
.project-state-badge.project-state-terminado{background:#ccfbf1;color:#0f766e;border-color:#99f6e4}
.project-state-cancelado .project-state-icon,
.project-state-badge.project-state-cancelado{background:#fee2e2;color:#991b1b;border-color:#fecaca}
.project-priority-baja{background:#f1f5f9;color:#475569;border-color:#cbd5e1}
.project-priority-media,
.project-priority-normal{background:#e0f2fe;color:#075985;border-color:#bae6fd}
.project-priority-alta{background:#fef3c7;color:#92400e;border-color:#fde68a}
.project-priority-critica,
.project-priority-urgente{background:#fee2e2;color:#991b1b;border-color:#fecaca}
.project-risk-bajo{background:#dcfce7;color:#166534;border-color:#bbf7d0}
.project-risk-medio{background:#e0f2fe;color:#075985;border-color:#bae6fd}
.project-risk-alto{background:#fef3c7;color:#92400e;border-color:#fde68a}
.project-risk-critico{background:#fee2e2;color:#991b1b;border-color:#fecaca}
.project-panel{
  border:1px solid rgba(226,232,240,.9);
  border-radius:24px;
  background:rgba(255,255,255,.94);
  box-shadow:var(--shadow-sm);
  padding:20px;
  backdrop-filter:blur(10px);
}
.project-section-head{
  display:flex;
  justify-content:space-between;
  gap:16px;
  align-items:flex-start;
  margin-bottom:16px;
}
.project-section-head h2{font-size:1.22rem;margin:.15rem 0 .25rem}
.project-section-head p{color:var(--muted);margin:0;max-width:76ch}
.project-section-head-tight{align-items:center;margin-bottom:12px}
.project-filter-panel{scroll-margin-top:92px}
.project-filter-grid,
.project-form-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:14px;
  align-items:start;
}
.project-field-wide{grid-column:span 2}
.project-field-full{grid-column:1 / -1}
.project-field{font-weight:800;color:#334155;margin:0}
.project-field input,
.project-field select,
.project-field textarea{
  margin-top:7px;
  border-radius:14px;
  background:#fbfdff;
}
.project-form-spaced{display:grid;gap:16px;margin-top:16px}
.project-inline-form{
  padding:16px;
  border:1px solid var(--line);
  border-radius:20px;
  background:linear-gradient(180deg,#ffffff,#f8fbff);
  margin-bottom:16px;
}
.project-create-panel{scroll-margin-top:92px}
.project-create-panel > summary,
.project-details-panel > summary{
  list-style:none;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px;
  cursor:pointer;
  border-radius:18px;
}
.project-create-panel > summary::-webkit-details-marker,
.project-details-panel > summary::-webkit-details-marker{display:none}
.project-create-panel > summary strong,
.project-details-panel > summary strong{display:block;font-size:1.1rem;margin-top:3px;color:var(--text)}
.project-summary-hint{
  display:inline-flex;
  align-items:center;
  padding:7px 11px;
  border-radius:999px;
  background:#eff6ff;
  color:#1d4ed8;
  border:1px solid #bfdbfe;
  font-weight:850;
  font-size:.82rem;
}
.project-create-panel[open] > summary,
.project-details-panel[open] > summary{padding-bottom:14px;border-bottom:1px solid var(--line)}
.project-table-card{padding:0;overflow:hidden}
.project-table-card .project-section-head{padding:18px 20px 0}
.project-table-scroll{width:100%;overflow:auto}
.project-table{
  box-shadow:none;
  border:none;
  border-radius:0;
  background:transparent;
}
.project-table th{
  background:#f8fafc;
  color:#64748b;
  font-size:.74rem;
  letter-spacing:.06em;
  white-space:nowrap;
}
.project-table td{vertical-align:middle}
.project-table tbody tr{transition:background .14s ease}
.project-main-cell{min-width:260px}
.project-main-cell .project-code{
  display:inline-flex;
  padding:5px 9px;
  border-radius:999px;
  background:#eff6ff;
  color:#1d4ed8;
  border:1px solid #bfdbfe;
  font-size:.74rem;
  font-weight:950;
  margin-bottom:7px;
}
.project-main-cell strong{display:block;color:var(--text);font-size:.96rem}
.project-main-cell p{margin-top:4px;color:var(--muted);font-size:.86rem;max-width:56ch}
.project-row-tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.project-date-cell{min-width:190px;color:#334155;font-size:.86rem}
.project-date-cell span{display:block;margin:2px 0}
.project-money-cell{min-width:150px}
.project-money-cell strong{display:block;color:var(--text)}
.project-money-cell span{display:block;color:var(--muted);font-size:.82rem;margin-top:3px}
.project-progress-wrap{
  display:grid;
  grid-template-columns:minmax(78px,1fr) auto;
  align-items:center;
  gap:8px;
  min-width:130px;
}
.project-progress-wrap span{font-weight:900;color:#334155;font-size:.82rem}
.project-progress-wrap progress,
.project-kpi-progress progress{
  width:100%;
  height:9px;
  appearance:none;
  border:0;
  border-radius:999px;
  overflow:hidden;
  background:#e2e8f0;
}
.project-progress-wrap progress::-webkit-progress-bar,
.project-kpi-progress progress::-webkit-progress-bar{background:#e2e8f0;border-radius:999px}
.project-progress-wrap progress::-webkit-progress-value,
.project-kpi-progress progress::-webkit-progress-value{background:linear-gradient(90deg,var(--primary),#06b6d4);border-radius:999px}
.project-progress-wrap progress::-moz-progress-bar,
.project-kpi-progress progress::-moz-progress-bar{background:linear-gradient(90deg,var(--primary),#06b6d4);border-radius:999px}
.project-actions-cell{white-space:nowrap}
.project-empty-state{
  display:grid;
  place-items:center;
  gap:6px;
  text-align:center;
  padding:30px 16px;
  color:var(--muted);
}
.project-empty-state strong{color:var(--text)}
.project-empty-warning{background:#fff7ed;border:1px solid #fed7aa;border-radius:18px;color:#9a3412}
.project-detail-page{gap:20px}
.project-kpi-card{display:grid;gap:8px;min-height:112px;align-content:start}
.project-kpi-card span{color:var(--muted);font-size:.78rem;font-weight:900;text-transform:uppercase;letter-spacing:.08em}
.project-kpi-card strong{font-size:1.25rem;line-height:1.18;color:var(--text);word-break:break-word}
.project-overview-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(280px,.7fr);gap:16px}
.project-overview-card{display:grid;gap:10px;align-content:start}
.project-definition-grid{
  margin:0;
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:12px;
}
.project-definition-grid div{
  padding:13px;
  border:1px solid var(--line);
  border-radius:16px;
  background:#f8fafc;
}
.project-definition-grid dt{font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;font-weight:900;color:var(--muted)}
.project-definition-grid dd{margin:5px 0 0;font-weight:850;color:var(--text)}
.project-definition-grid dd span{color:var(--muted);font-weight:650}
.project-avatar-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}
.project-avatar-chip{padding:8px 11px;border-radius:999px;background:#f8fafc;border:1px solid var(--line);font-weight:800;color:#334155;font-size:.82rem}
.project-note{color:var(--muted);margin:14px 0 16px}
.project-user-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:10px;margin-top:16px}
.project-user-option{
  display:flex;
  align-items:flex-start;
  gap:10px;
  padding:12px;
  border:1px solid var(--line);
  border-radius:16px;
  background:#fbfdff;
  cursor:pointer;
  margin:0;
}
.project-user-option input{width:auto;margin:3px 0 0;flex:0 0 auto}
.project-user-option span{display:grid;gap:2px;min-width:0}
.project-user-option strong{color:var(--text)}
.project-user-option small{color:var(--muted)}
.project-user-option em{font-style:normal;width:max-content;padding:3px 7px;border-radius:999px;background:#eff6ff;color:#1d4ed8;font-weight:900;font-size:.72rem}
.project-warning-panel{border-color:#fed7aa;background:linear-gradient(180deg,#fff,#fff7ed)}
.project-section-divider{height:1px;background:linear-gradient(90deg,transparent,var(--line),transparent);margin:2px 0}
.project-section-card{display:grid;gap:0;scroll-margin-top:92px}
.project-row-form{
  display:flex;
  align-items:center;
  gap:7px;
  flex-wrap:wrap;
  margin:0;
}
.project-row-form select,
.project-row-form input{
  width:auto;
  min-width:110px;
  margin:0;
  padding:8px 10px;
  border-radius:10px;
}
.project-row-form button,
.project-link-button{
  border:1px solid var(--line);
  background:#fff;
  color:var(--text);
  border-radius:10px;
  padding:8px 10px;
  font-weight:850;
  cursor:pointer;
}
.project-row-form button:hover,
.project-link-button:hover{border-color:#bfdbfe;color:var(--primary);box-shadow:var(--shadow-sm)}
.project-link-button{margin-left:4px}
.project-small-input{max-width:100px!important}
.project-table-link{font-weight:900;color:var(--primary)}
.project-number-cell{text-align:right;font-variant-numeric:tabular-nums;font-weight:800}
.project-upload-form{
  display:flex;
  align-items:end;
  gap:12px;
  flex-wrap:wrap;
  padding:16px;
  border:1px solid var(--line);
  border-radius:20px;
  background:#f8fafc;
  margin-bottom:16px;
}
.project-upload-form .project-field{flex:1 1 300px}
.project-material-form-grid{grid-template-columns:2fr 1fr}
.project-check-cell input{width:auto;margin:0}
.project-sticky-actions{
  position:sticky;
  bottom:0;
  padding:14px 20px;
  background:linear-gradient(180deg,rgba(255,255,255,.82),#fff);
  border-top:1px solid var(--line);
}
.project-materials-page .project-overview-card p{color:var(--muted);line-height:1.65}

body.dark-mode .project-hero{
  border-color:rgba(96,165,250,.22);
  background:
    radial-gradient(circle at 82% 18%, rgba(14,165,233,.15), transparent 28%),
    radial-gradient(circle at 8% 12%, rgba(99,102,241,.17), transparent 27%),
    linear-gradient(135deg, rgba(15,23,42,.96), rgba(17,24,39,.92));
  box-shadow:0 18px 46px rgba(0,0,0,.18);
}
body.dark-mode .project-panel,
body.dark-mode .project-state-card,
body.dark-mode .project-kpi-card{
  background:rgba(15,23,42,.90);
  border-color:#263449;
  color:var(--text);
}
body.dark-mode .project-pill-soft,
body.dark-mode .project-definition-grid div,
body.dark-mode .project-avatar-chip,
body.dark-mode .project-user-option,
body.dark-mode .project-inline-form,
body.dark-mode .project-upload-form{
  background:rgba(15,23,42,.72);
  border-color:#263449;
  color:var(--text);
}
body.dark-mode .project-field{color:#cbd5e1}
body.dark-mode .project-table th{background:#111827;color:#94a3b8}
body.dark-mode .project-table tbody tr:nth-child(even){background:rgba(15,23,42,.42)}
body.dark-mode .project-table tbody tr:hover{background:rgba(37,99,235,.16)}
body.dark-mode .project-main-cell .project-code,
body.dark-mode .project-summary-hint,
body.dark-mode .project-user-option em{background:#10233f;border-color:#1d4ed8;color:#93c5fd}
body.dark-mode .project-date-cell,
body.dark-mode .project-progress-wrap span,
body.dark-mode .project-avatar-chip{color:#cbd5e1}
body.dark-mode .project-row-form button,
body.dark-mode .project-link-button{background:#111827;border-color:#263449;color:var(--text)}
body.dark-mode .project-sticky-actions{background:linear-gradient(180deg,rgba(15,23,42,.72),#0f172a);border-color:#263449}
body.dark-mode .project-warning-panel{background:rgba(69,26,3,.28);border-color:#7c2d12}

@media (max-width:1100px){
  .project-filter-grid,
  .project-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .project-overview-grid{grid-template-columns:1fr}
}
@media (max-width:760px){
  .project-page{gap:14px}
  .project-hero{padding:20px;border-radius:22px;display:grid}
  .project-hero-actions,.project-section-actions,.project-form-actions{justify-content:flex-start}
  .project-filter-grid,
  .project-form-grid,
  .project-material-form-grid{grid-template-columns:1fr}
  .project-field-wide,
  .project-field-full{grid-column:auto}
  .project-section-head{display:grid}
  .project-state-grid,
  .project-kpi-grid{grid-template-columns:1fr}
  .project-panel{padding:16px;border-radius:20px}
  .project-table-card{padding:0}
  .project-create-panel > summary,
  .project-details-panel > summary{align-items:flex-start}
  .project-row-form{display:grid;grid-template-columns:1fr;align-items:stretch}
  .project-row-form select,
  .project-row-form input,
  .project-row-form button{width:100%;min-width:0}
  .project-upload-form{display:grid}
  .project-sticky-actions{position:static}
}


/* ===== Reajuste visual global: páginas y subpáginas homogéneas ===== */
.content-area{--visual-accent:var(--primary)}
.auto-page-hero{
  position:relative;
  overflow:hidden;
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:18px;
  margin-bottom:18px;
  padding:24px;
  border:1px solid rgba(191,219,254,.9);
  border-radius:24px;
  background:
    radial-gradient(circle at 85% 15%, rgba(6,182,212,.15), transparent 28%),
    radial-gradient(circle at 8% 10%, rgba(37,99,235,.12), transparent 26%),
    linear-gradient(135deg,#ffffff 0%,#eff6ff 100%);
  box-shadow:var(--shadow-sm);
}
.auto-page-hero:after{
  content:"";
  position:absolute;
  right:-58px;
  top:-72px;
  width:185px;
  height:185px;
  border-radius:999px;
  background:linear-gradient(135deg,rgba(37,99,235,.18),rgba(14,165,233,.10));
}
.auto-page-hero > *{position:relative;z-index:1}
.auto-page-hero-main{display:grid;gap:7px;max-width:880px}
.auto-page-kicker{
  display:inline-flex;
  width:max-content;
  align-items:center;
  gap:7px;
  padding:6px 10px;
  border-radius:999px;
  background:rgba(255,255,255,.72);
  border:1px solid rgba(191,219,254,.85);
  color:#1d4ed8;
  font-size:.76rem;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.08em;
}
.auto-page-hero h1{font-size:clamp(1.65rem,3vw,2.45rem);line-height:1.08;margin:0;color:var(--text)}
.auto-page-hero p{max-width:78ch;margin:0;color:var(--muted);line-height:1.62}
.auto-page-hero-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end;align-items:center;max-width:520px}
.auto-page-hero .btn{white-space:nowrap}
.auto-back-link{font-weight:850;color:var(--primary);width:max-content}
.auto-page-hero + .cards-grid,
.auto-page-hero + .cards,
.auto-page-hero + .grid3,
.auto-page-hero + .metric-grid{margin-top:0}

.visual-action-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:14px;
  width:100%;
}
.visual-action-card{text-decoration:none;color:inherit}
.visual-action-card{
  position:relative;
  overflow:hidden;
  display:grid;
  grid-template-columns:auto 1fr;
  gap:12px;
  align-items:flex-start;
  padding:16px;
  border:1px solid var(--line);
  border-radius:20px;
  background:linear-gradient(180deg,#ffffff,#f8fbff);
  box-shadow:var(--shadow-sm);
  transition:transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}
.visual-action-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:#bfdbfe}
.visual-action-icon{
  width:44px;
  height:44px;
  border-radius:16px;
  display:grid;
  place-items:center;
  background:var(--primary-soft);
  color:var(--primary-2);
  font-size:1.22rem;
  font-weight:900;
}
.visual-action-card strong{display:block;color:var(--text);font-size:1rem;margin-top:1px}
.visual-action-card small{display:block;color:var(--muted);margin-top:3px;line-height:1.45}
.visual-action-card .visual-action-control{grid-column:1 / -1;display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:4px}
.visual-action-card.action-in{border-color:#bbf7d0;background:linear-gradient(180deg,#ffffff,#f0fdf4)}
.visual-action-card.action-in .visual-action-icon{background:#dcfce7;color:#166534}
.visual-action-card.action-out{border-color:#fecaca;background:linear-gradient(180deg,#ffffff,#fff7f7)}
.visual-action-card.action-out .visual-action-icon{background:#fee2e2;color:#991b1b}
.visual-action-card.action-move{border-color:#bae6fd;background:linear-gradient(180deg,#ffffff,#f0f9ff)}
.visual-action-card.action-move .visual-action-icon{background:#e0f2fe;color:#075985}
.visual-action-card.action-warning{border-color:#fed7aa;background:linear-gradient(180deg,#ffffff,#fff7ed)}
.visual-action-card.action-warning .visual-action-icon{background:#ffedd5;color:#9a3412}
.visual-action-card.action-danger{border-color:#fecaca;background:linear-gradient(180deg,#ffffff,#fef2f2)}
.visual-action-card.action-danger .visual-action-icon{background:#fee2e2;color:#991b1b}

.btn.intent-in,
.btn.stock-in,
.btn.btn-stock-in,
button[name="tipo"][value="entrada"]{
  background:linear-gradient(135deg,#16a34a,#15803d);
  color:#fff;
  border-color:transparent;
  box-shadow:0 10px 20px rgba(22,163,74,.18);
}
.btn.intent-out,
.btn.stock-out,
.btn.btn-stock-out,
button[name="tipo"][value="salida"]{
  background:linear-gradient(135deg,#dc2626,#b91c1c);
  color:#fff;
  border-color:transparent;
  box-shadow:0 10px 20px rgba(220,38,38,.18);
}
.btn.intent-move,
.btn.btn-movements,
.btn[href*="movimientos"]{
  background:linear-gradient(135deg,#0891b2,#0369a1);
  color:#fff;
  border-color:transparent;
  box-shadow:0 10px 20px rgba(8,145,178,.18);
}
.btn.intent-export,
.btn.btn-export,
.btn[href*="excel"],
.btn[href*="pdf"],
.btn[href*="export"]{
  background:linear-gradient(135deg,#4f46e5,#2563eb);
  color:#fff;
  border-color:transparent;
}
.btn.intent-filter,
button[type="submit"].auto-filter-btn{background:linear-gradient(135deg,#2563eb,#1d4ed8);color:#fff}
.btn.intent-clean,
.btn-outline-secondary,
.btn-secondary,
.btn-light{
  background:#fff!important;
  color:var(--text)!important;
  border:1px solid var(--line)!important;
  box-shadow:var(--shadow-sm)!important;
}
.btn.intent-edit{background:linear-gradient(135deg,#7c3aed,#4f46e5);color:#fff;border-color:transparent}
.btn.intent-view{background:linear-gradient(135deg,#0ea5e9,#2563eb);color:#fff;border-color:transparent}
.btn.intent-save{background:linear-gradient(135deg,#16a34a,#15803d);color:#fff;border-color:transparent}
.btn.intent-delete,
.btn.intent-danger,
button[type="submit"].auto-danger-btn{background:linear-gradient(135deg,#dc2626,#991b1b);color:#fff;border-color:transparent}
.btn.intent-task{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff;border-color:transparent}

.legacy-visual-form{
  background:rgba(255,255,255,.95);
  border:1px solid var(--line);
  border-radius:20px;
  padding:18px;
  box-shadow:var(--shadow-sm);
  margin-bottom:18px;
}
.legacy-visual-form > h3:first-child,
.legacy-visual-form > h4:first-child{margin-bottom:12px}
.legacy-visual-form button:not(.btn),
.legacy-visual-form input[type="submit"]:not(.btn){
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-height:40px;
  padding:9px 14px;
  border:none;
  border-radius:12px;
  cursor:pointer;
  text-decoration:none;
  font-weight:800;
  color:#fff;
  background:linear-gradient(135deg,var(--primary),var(--primary-2));
  box-shadow:0 10px 20px rgba(37,99,235,.18);
}
.legacy-table-card{
  padding:0;
  overflow:hidden;
  background:rgba(255,255,255,.95);
  border:1px solid var(--line);
  border-radius:20px;
  box-shadow:var(--shadow-sm);
  margin-bottom:18px;
}
.legacy-table-card-head{
  padding:16px 18px;
  border-bottom:1px solid var(--line);
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  background:linear-gradient(180deg,#fff,#f8fbff);
}
.legacy-table-card-title{font-weight:900;color:var(--text)}
.legacy-table-card-count{font-size:.86rem;color:var(--muted);font-weight:800}
.legacy-table-card-body{overflow:auto}
.legacy-table-card table{box-shadow:none;border:none;border-radius:0;margin:0}
.legacy-table-card table:not(.data-table){min-width:760px}

.movement-hero-stats{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.movement-pill{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:6px 10px;
  border-radius:999px;
  font-weight:850;
  font-size:.82rem;
  border:1px solid var(--line);
  background:#fff;
  color:#334155;
}
.movement-pill.in{background:#dcfce7;color:#166534;border-color:#bbf7d0}
.movement-pill.out{background:#fee2e2;color:#991b1b;border-color:#fecaca}
.movement-pill.reg{background:#fef3c7;color:#92400e;border-color:#fde68a}
.movement-type-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:86px;
  padding:6px 10px;
  border-radius:999px;
  font-weight:900;
  font-size:.78rem;
  border:1px solid transparent;
}
.movement-type-badge.entrada{background:#dcfce7;color:#166534;border-color:#bbf7d0}
.movement-type-badge.salida{background:#fee2e2;color:#991b1b;border-color:#fecaca}
.movement-type-badge.regulacion{background:#fef3c7;color:#92400e;border-color:#fde68a}
.movement-row-in{box-shadow:inset 5px 0 0 #22c55e}
.movement-row-out{box-shadow:inset 5px 0 0 #ef4444}
.movement-row-reg{box-shadow:inset 5px 0 0 #f59e0b}
.movement-ref-chip{display:inline-flex;align-items:center;padding:5px 9px;border-radius:999px;background:#f1f5f9;color:#475569;border:1px solid #cbd5e1;font-weight:800;font-size:.76rem}

.repuestos-action-panel .upload-inline{margin:0}
.repuestos-action-panel input[type="file"],
.repuestos-action-panel input[type="text"],
.repuestos-action-panel input[type="password"]{margin:0;min-width:180px}
.stock-inline-card{
  border:1px solid var(--line);
  border-radius:14px;
  padding:8px;
  background:#f8fafc;
}
.movement-inline{padding:8px;border:1px solid var(--line);border-radius:14px;background:#f8fafc}
.movement-inline input,
.movement-inline select{margin:0}

body.dark-mode .auto-page-hero{
  border-color:rgba(96,165,250,.22);
  background:
    radial-gradient(circle at 82% 18%, rgba(14,165,233,.15), transparent 28%),
    radial-gradient(circle at 8% 12%, rgba(99,102,241,.17), transparent 27%),
    linear-gradient(135deg, rgba(15,23,42,.96), rgba(17,24,39,.92));
}
body.dark-mode .auto-page-kicker,
body.dark-mode .movement-pill,
body.dark-mode .legacy-visual-form,
body.dark-mode .legacy-table-card,
body.dark-mode .visual-action-card,
body.dark-mode .stock-inline-card,
body.dark-mode .movement-inline{
  background:rgba(15,23,42,.88);
  border-color:#263449;
  color:var(--text);
}
body.dark-mode .legacy-table-card-head{background:linear-gradient(180deg,#0f172a,#111827);border-color:#263449}
body.dark-mode .btn.intent-clean,
body.dark-mode .btn-outline-secondary,
body.dark-mode .btn-secondary,
body.dark-mode .btn-light{background:#111827!important;color:var(--text)!important;border-color:#263449!important}
body.dark-mode .movement-ref-chip{background:#111827;color:#cbd5e1;border-color:#263449}

@media (max-width:760px){
  .auto-page-hero{display:grid;padding:20px;border-radius:22px}
  .auto-page-hero-actions{justify-content:flex-start;max-width:none}
  .auto-page-hero-actions .btn{width:auto}
  .visual-action-card{grid-template-columns:1fr}
  .visual-action-icon{width:42px;height:42px}
}

.page-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center;justify-content:flex-end;margin-bottom:16px}
.section-head,.section-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap}

/* Compatibilidad visual para plantillas antiguas con clases tipo Bootstrap */
.container,.container-fluid{width:100%;margin:0 auto}
.py-3{padding-top:1rem;padding-bottom:1rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:1rem}.mb-0{margin-bottom:0}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:1rem}.me-2{margin-right:.5rem}
.d-flex{display:flex}.align-items-center{align-items:center}.align-items-end{align-items:flex-end}.justify-content-between{justify-content:space-between}.justify-content-end{justify-content:flex-end}.flex-wrap{flex-wrap:wrap}
.row{display:flex;flex-wrap:wrap;gap:12px}.g-2{gap:12px}.row>[class*="col-"]{flex:1 1 220px;min-width:0}.col-sm-12{flex-basis:100%}.col-md-6{flex-basis:min(100%,calc(50% - 12px))}.col-md-3{flex-basis:min(100%,calc(25% - 12px))}.col-sm-6{flex-basis:min(100%,calc(50% - 12px))}
.form-label{font-weight:800;color:#334155}.form-control,.form-select{margin-top:6px}.text-muted{color:var(--muted)}.text-center{text-align:center}.text-end{text-align:right}.align-middle td{vertical-align:middle}.table-sm th,.table-sm td{padding:9px 10px}.table-light th{background:#f8fafc}.table-striped tbody tr:nth-child(even){background:#fbfdff}
.card-body{padding:18px}.card.card-body{border-radius:20px}
body.dark-mode .form-label{color:#cbd5e1}
@media (max-width:760px){.d-flex{flex-wrap:wrap}.justify-content-end{justify-content:flex-start}.col-md-6,.col-md-3,.col-sm-6{flex-basis:100%}}

/* Tarjetas superiores clicables: órdenes y pedidos */
a.metric-card.metric-card-link{
  display:block;
  color:inherit;
  text-decoration:none;
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
a.metric-card.metric-card-link:hover{
  transform:translateY(-2px);
  box-shadow:var(--shadow-md);
  border-color:rgba(37,99,235,.35);
}
a.metric-card.metric-card-link.is-active{
  border-color:rgba(37,99,235,.45);
  box-shadow:0 12px 24px rgba(37,99,235,.14);
}
a.prev-tab{
  display:inline-flex;
  align-items:center;
  text-decoration:none;
}


/* Accesos rápidos en tarjetas superiores */
a.stat-card.stat-card-link,
a.project-state-card.project-state-link{
  display:block;
  color:inherit;
  text-decoration:none;
  cursor:pointer;
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
a.stat-card.stat-card-link:hover,
a.project-state-card.project-state-link:hover{
  transform:translateY(-2px);
  box-shadow:var(--shadow-md);
  border-color:rgba(37,99,235,.35);
}
a.stat-card.stat-card-link.is-active,
a.project-state-card.project-state-link.is-active{
  border-color:rgba(37,99,235,.5);
  box-shadow:0 12px 24px rgba(37,99,235,.14);
}
a.stat-card.stat-card-link:focus-visible,
a.project-state-card.project-state-link:focus-visible{
  outline:3px solid rgba(37,99,235,.28);
  outline-offset:3px;
}
