:root{
  --bg:#f6f8fb;
  --surface:#ffffff;
  --surface-soft:#f9fafc;
  --surface-blue:#f1f6ff;
  --border:#e5e9f0;
  --border-strong:#d3dae6;
  --text:#172033;
  --muted:#667085;
  --primary:#2563eb;
  --primary-dark:#1d4ed8;
  --primary-soft:#eaf1ff;
  --success:#12b76a;
  --success-soft:#ecfdf3;
  --warning:#f79009;
  --warning-soft:#fff7e8;
  --danger:#ef4444;
  --danger-soft:#fff1f1;
  --sidebar:#111827;
  --sidebar-soft:#1f2937;
  --shadow:0 14px 40px rgba(16,24,40,.08);
  --shadow-soft:0 8px 22px rgba(16,24,40,.05);
  --radius:18px;
  --radius-sm:12px;
}
*{box-sizing:border-box}
html,body{min-height:100%}
body{background:linear-gradient(180deg,#f8fafc 0%,var(--bg) 45%,#f3f6fb 100%);color:var(--text);font-family:Inter,Segoe UI,Arial,sans-serif;-webkit-font-smoothing:antialiased}
a{color:var(--primary);text-decoration:none}a:hover{color:var(--primary-dark);text-decoration:underline}
.app-shell{min-height:100vh;display:flex}.app-sidebar{position:fixed;left:0;top:0;bottom:0;width:270px;background:linear-gradient(180deg,#111827 0%,#0f172a 100%);color:#e5e7eb;padding:22px 16px;overflow:auto;z-index:1000;border-right:1px solid rgba(255,255,255,.06)}
.sidebar-brand{display:flex;align-items:center;gap:.75rem;font-weight:900;font-size:1.05rem;color:#fff;margin-bottom:24px;padding:0 8px}.sidebar-logo{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:#2563eb;color:white;box-shadow:0 10px 25px rgba(37,99,235,.35)}
.sidebar-section{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:#94a3b8;margin:20px 10px 8px}.side-link{display:flex;align-items:center;gap:.75rem;color:#dbe4f0;text-decoration:none;padding:10px 12px;border-radius:12px;font-weight:650;margin-bottom:5px;transition:.15s ease}.side-link:hover{background:rgba(255,255,255,.08);color:#fff;text-decoration:none;transform:translateX(2px)}.side-icon{width:22px;text-align:center;opacity:.9}.sidebar-user{position:absolute;left:16px;right:16px;bottom:18px;border-top:1px solid rgba(255,255,255,.12);padding-top:14px;font-size:.9rem}.sidebar-user a{color:#bfdbfe}.sidebar-user-name{font-weight:700;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.app-main{margin-left:270px;padding:28px 34px 48px;min-height:100vh;width:calc(100% - 270px)}.topbar{display:none}.mobile-top{display:none}.page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.4rem}.page-title{font-size:1.85rem;font-weight:850;letter-spacing:-.035em;color:#101828}.page-subtitle{color:var(--muted);margin-top:.25rem}.muted,.small-muted{color:var(--muted)}.small-muted{font-size:.86rem}
.card,.soft-card{background:rgba(255,255,255,.94);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-soft)}.soft-card{padding:1.25rem}.card:hover,.soft-card:hover{box-shadow:var(--shadow)}.section-title{font-size:1rem;font-weight:850;margin-bottom:1rem;color:#182230}.divider{height:1px;background:var(--border);margin:1rem 0}
.kpi-card{padding:1.15rem 1.25rem;height:100%;position:relative;overflow:hidden}.kpi-card:after{content:"";position:absolute;right:-22px;top:-28px;width:90px;height:90px;border-radius:999px;background:var(--primary-soft)}.kpi-label{font-size:.78rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-weight:750}.kpi-value{font-size:2rem;font-weight:900;line-height:1.05;position:relative;z-index:1}
.btn{border-radius:12px;font-weight:750;padding:.58rem .9rem}.btn-sm{padding:.35rem .65rem;border-radius:10px}.btn-primary{background:var(--primary);border-color:var(--primary);box-shadow:0 8px 18px rgba(37,99,235,.18)}.btn-primary:hover{background:var(--primary-dark);border-color:var(--primary-dark)}.btn-dark{background:#111827;border-color:#111827}.btn-soft{background:var(--primary-soft);color:var(--primary);border:1px solid #d8e6ff}.btn-soft:hover{background:#dbeafe;color:var(--primary-dark);text-decoration:none}.btn-outline-secondary{border-color:var(--border-strong);color:#344054}.btn-outline-secondary:hover{background:#f2f4f7;color:#111827;border-color:#cbd5e1}
.form-control,.form-select{border-radius:12px;border-color:var(--border-strong);padding:.68rem .78rem}.form-control:focus,.form-select:focus{border-color:#93c5fd;box-shadow:0 0 0 .25rem rgba(37,99,235,.12)}.form-label{font-size:.86rem;font-weight:750;color:#344054;margin-bottom:.42rem}.input-help{font-size:.82rem;color:var(--muted);margin-top:.25rem}.validation-summary-errors,.text-danger{font-size:.9rem}
.table-card{padding:0;overflow:hidden}.table-card .table{margin-bottom:0}.table{color:#243047}.table th{font-size:.74rem;text-transform:uppercase;color:var(--muted);letter-spacing:.05em;background:#fbfcfe;border-bottom:1px solid var(--border);font-weight:850}.table td{border-color:#eef1f6}.table-hover tbody tr:hover{background:#f8fbff}.badge,.status-pill,.badge-pill{border-radius:999px;font-weight:800}.status-pill,.badge-pill{display:inline-flex;align-items:center;gap:.35rem;padding:.35rem .75rem;font-size:.8rem;border:1px solid transparent}.status-open{background:var(--warning-soft);color:#b54708;border-color:#fedf89}.status-closed{background:var(--success-soft);color:#027a48;border-color:#abefc6}.status-dev{background:var(--primary-soft);color:#1d4ed8;border-color:#bfdbfe}
.quick-actions{display:flex;gap:.75rem;flex-wrap:wrap}.alert{border-radius:14px;border:0;box-shadow:var(--shadow-soft);font-weight:650}.alert-success{background:#ecfdf3;color:#05603a}.alert-danger{background:#fff1f3;color:#b42318}.empty-note{padding:1rem;border-radius:14px;background:#fbfcfe;border:1px dashed var(--border-strong);color:var(--muted)}
.ticket-header{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;margin-bottom:1.25rem}.ticket-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:1.25rem}.ticket-chip{display:inline-flex;align-items:center;padding:.28rem .7rem;border-radius:999px;background:#f2f4f7;color:#475467;font-size:.78rem;font-weight:800}.meta-list{display:grid;grid-template-columns:145px 1fr;gap:.75rem .65rem;font-size:.95rem}.meta-list .label{color:var(--muted);font-weight:750}.sidebar-panel{position:sticky;top:1rem}.comment{border:1px solid var(--border);background:#fcfdff;border-radius:16px;padding:1rem;margin-bottom:.85rem}.comment-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:.45rem}.attach-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem}.attach-card{border:1px solid var(--border);border-radius:16px;padding:1rem;background:#fff;display:flex;flex-direction:column;gap:.35rem;min-height:150px;transition:.15s}.attach-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-soft)}.attach-icon{font-size:1.9rem}.dropzone{border:2px dashed #cbd5e1;border-radius:16px;background:#fbfdff;padding:1.1rem;text-align:center;color:var(--muted)}.dropzone input[type=file]{margin-top:.75rem}.kanban-column{min-height:520px;background:#eef3fb;border-radius:18px;padding:14px;border:1px solid var(--border)}.ticket-card{position:relative;border-left:4px solid var(--primary)}
.progress{height:8px;border-radius:999px;background:#edf2f7}.progress-bar{background:linear-gradient(90deg,var(--primary),#60a5fa)}.bar-row{display:grid;grid-template-columns:minmax(120px,1.4fr) 70px minmax(120px,2fr) 60px;gap:.75rem;align-items:center;padding:.5rem 0;border-bottom:1px solid #eef1f6}.bar-row:last-child{border-bottom:0}.bar-label{font-weight:700;color:#253858}.report-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.report-grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.filter-strip{display:flex;gap:.75rem;flex-wrap:wrap;align-items:end}.table-responsive{overflow:auto}
.login-page{min-height:100vh;display:grid;grid-template-columns:1.1fr .9fr;background:linear-gradient(135deg,#eef4ff 0%,#f8fafc 48%,#ffffff 100%)}.login-hero{padding:4rem;display:flex;flex-direction:column;justify-content:center}.login-card-wrap{display:flex;align-items:center;justify-content:center;padding:2rem}.login-card{width:100%;max-width:430px;background:rgba(255,255,255,.92);border:1px solid rgba(255,255,255,.7);border-radius:26px;box-shadow:0 22px 70px rgba(16,24,40,.14);padding:2rem}.login-mark{width:54px;height:54px;border-radius:18px;background:#2563eb;color:white;display:grid;place-items:center;font-weight:900;font-size:1.2rem;box-shadow:0 16px 32px rgba(37,99,235,.25)}.hero-title{font-size:2.45rem;font-weight:900;letter-spacing:-.05em;color:#101828}.hero-text{font-size:1.05rem;color:#475467;max-width:640px}.hero-points{display:grid;gap:.85rem;margin-top:2rem}.hero-point{display:flex;gap:.75rem;align-items:center;color:#344054;font-weight:700}.hero-point span{width:32px;height:32px;border-radius:999px;background:#dbeafe;display:grid;place-items:center;color:#1d4ed8}
@media(max-width:991px){.app-sidebar{position:relative;width:auto;height:auto;border-right:0}.sidebar-user{position:static;margin-top:20px}.app-main{margin-left:0;width:100%;padding:20px}.ticket-layout{grid-template-columns:1fr}.report-grid,.report-grid-2{grid-template-columns:1fr}.bar-row{grid-template-columns:1fr 60px 1fr 50px}.login-page{grid-template-columns:1fr}.login-hero{display:none}.page-head,.ticket-header{flex-direction:column}}

.login-page{
  grid-template-columns:minmax(360px,1fr) minmax(420px,.72fr);
  background:#fff;
}
.login-hero{
  padding:3rem;
  background:#fff;
  align-items:center;
  border-right:1px solid #e5e7eb;
}
.login-corporate-image{
  display:block;
  width:min(100%,720px);
  height:auto;
  object-fit:contain;
}
.login-card-wrap{background:#fff}
.login-card{
  border:1px solid #e5e7eb;
  border-radius:8px;
  box-shadow:0 18px 48px rgba(15,23,42,.1);
}
.login-company-name{
  color:#111827;
  font-size:.82rem;
  font-weight:850;
  letter-spacing:.08em;
  margin-bottom:1.4rem;
}
.sidebar-brand-corporate{gap:.65rem;min-width:0}
.sidebar-corporate-logo{
  width:58px;
  height:38px;
  object-fit:contain;
  background:#fff;
  padding:2px;
  border-radius:4px;
  flex:0 0 auto;
}
.sidebar-corporate-name{
  min-width:0;
  color:#fff;
  font-size:.73rem;
  line-height:1.2;
  font-weight:850;
  letter-spacing:.02em;
}
.sidebar-corporate-name span{
  display:block;
  margin-top:.18rem;
  color:#94a3b8;
  font-size:.66rem;
  font-weight:600;
}
@media(max-width:991px){
  .login-page{grid-template-columns:1fr}
}
@media(max-width:576px){.app-main{padding:16px}.soft-card{padding:1rem}.page-title{font-size:1.5rem}.attach-grid{grid-template-columns:1fr}.meta-list{grid-template-columns:1fr}.bar-row{grid-template-columns:1fr}.login-card-wrap{padding:1rem}.login-card{padding:1.25rem;border-radius:20px}}
/* V10 ajustes de compactación y usabilidad */
.compact-header{margin-bottom:1rem}
.collapsible-title{cursor:pointer;list-style:none;margin:0;display:flex;align-items:center;gap:.5rem;user-select:none}
.collapsible-title::-webkit-details-marker{display:none}
details > .collapsible-title::before{content:'▸';font-size:.8rem;color:var(--muted);transition:transform .15s ease}
details[open] > .collapsible-title::before{transform:rotate(90deg)}
.compact-filter-card{padding:.9rem 1rem}
.compact-filters .form-label{font-size:.76rem;margin-bottom:.25rem;color:var(--muted);font-weight:700}
.compact-table{font-size:.9rem}
.compact-table td,.compact-table th{padding:.55rem .7rem}
.side-card{padding:.9rem 1rem}
.compact-side .section-title{font-size:.92rem}
.compact-meta{grid-template-columns:105px 1fr;font-size:.86rem;gap:.45rem .5rem}
.compact-attach-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}
.compact-attach-card{min-height:120px;padding:.8rem}
.compact-attach-card .attach-icon{font-size:1.3rem}
.sidebar-panel{top:.75rem}
@media (min-width: 992px){.ticket-layout{grid-template-columns:minmax(0,1fr) 285px;gap:1rem}}

.mention-box{
  position:absolute;
  z-index:30;
  left:0;
  right:0;
  top:100%;
  background:#fff;
  border:1px solid var(--border);
  border-radius:12px;
  box-shadow:var(--shadow);
  max-height:220px;
  overflow:auto;
  padding:.35rem;
}
.mention-item{
  width:100%;
  border:0;
  background:#fff;
  text-align:left;
  padding:.55rem .7rem;
  border-radius:10px;
  display:flex;
  justify-content:space-between;
  gap:.75rem;
  align-items:center;
}
.mention-item:hover{background:#f4f5f7}
.mention-item small{color:var(--muted)}

.description-mention-anchor{min-width:0}
.rich-editor-shell:has(.description-mention-box:not(.d-none)){overflow:visible}
.description-mention-box{
  left:.5rem;
  right:.5rem;
  width:auto;
  max-width:620px;
  max-height:240px;
  border-radius:8px;
  box-shadow:0 8px 24px rgba(9,30,66,.18);
}
@media(max-width:700px){
  .description-mention-box{left:.25rem;right:.25rem;max-width:none}
}


/* V13 - Comentarios profesionales */
.comments-module{overflow:visible}
.comments-summary{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:1rem;
  cursor:pointer;
  list-style:none;
}
.comments-summary::-webkit-details-marker{display:none}
.comments-summary-hint{
  font-size:.82rem;
  color:var(--muted);
  font-weight:500;
}
.comments-count-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:34px;
  height:24px;
  padding:0 .6rem;
  margin-left:.45rem;
  border-radius:999px;
  background:#deebff;
  color:#0747a6;
  font-size:.82rem;
  font-weight:800;
}
.comments-panel{display:flex;flex-direction:column;gap:1rem}
.comments-toolbar{
  display:grid;
  grid-template-columns:minmax(220px,1fr) 150px 150px;
  gap:.65rem;
  align-items:center;
  padding:.75rem;
  background:#f8fafc;
  border:1px solid var(--border);
  border-radius:14px;
}
.comments-search{position:relative}
.comments-search-icon{
  position:absolute;
  left:.7rem;
  top:50%;
  transform:translateY(-50%);
  font-size:.9rem;
  opacity:.65;
}
.comments-search input{padding-left:2rem}
.comments-list{display:flex;flex-direction:column;gap:.85rem}
.comment-card{
  position:relative;
  display:grid;
  grid-template-columns:5px minmax(0,1fr);
  border:1px solid var(--border);
  border-radius:16px;
  background:#fff;
  box-shadow:0 8px 20px rgba(9,30,66,.05);
  overflow:hidden;
  transition:box-shadow .15s ease, transform .15s ease;
}
.comment-card:hover{
  box-shadow:0 12px 28px rgba(9,30,66,.09);
  transform:translateY(-1px);
}
.comment-card-accent{background:#0052cc}
.comment-card.comment-internal .comment-card-accent{background:#6554c0}
.comment-card.comment-public .comment-card-accent{background:#36b37e}
.comment-card-content{padding:1rem}
.comment-card-header{
  display:flex;
  justify-content:space-between;
  gap:1rem;
  align-items:flex-start;
  margin-bottom:.75rem;
}
.comment-author-block{
  display:flex;
  gap:.75rem;
  align-items:center;
  min-width:0;
}
.comment-avatar{
  width:36px;
  height:36px;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#deebff;
  color:#0747a6;
  font-weight:800;
  flex:0 0 auto;
}
.comment-internal .comment-avatar{
  background:#eae6ff;
  color:#403294;
}
.comment-author{
  font-weight:800;
  color:var(--text);
  line-height:1.15;
}
.comment-date{
  color:var(--muted);
  font-size:.82rem;
  margin-top:.1rem;
}
.comment-header-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  flex-wrap:wrap;
  gap:.35rem;
}
.comment-visibility-pill{
  display:inline-flex;
  align-items:center;
  padding:.28rem .65rem;
  border-radius:999px;
  font-size:.74rem;
  font-weight:850;
  letter-spacing:.035em;
  text-transform:uppercase;
}
.comment-visibility-pill.comment-public{
  background:#e3fcef;
  color:#006644;
  border:1px solid #abf5d1;
}
.comment-visibility-pill.comment-internal{
  background:#eae6ff;
  color:#403294;
  border:1px solid #c0b6f2;
}
.comment-icon-btn{
  width:30px;
  height:30px;
  border:1px solid var(--border);
  background:#fff;
  border-radius:9px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:#42526e;
  font-size:.9rem;
}
.comment-icon-btn:hover{
  background:#f4f5f7;
  color:#172b4d;
}
.comment-body{
  white-space:pre-wrap;
  line-height:1.58;
  font-size:.96rem;
  color:#253858;
  background:#fafbfc;
  border:1px solid #edf0f4;
  border-radius:13px;
  padding:.9rem 1rem;
}
.comment-internal .comment-body{
  background:#fbfaff;
  border-color:#eae6ff;
}
.comment-composer{
  border:1px solid var(--border);
  border-radius:16px;
  background:#fff;
  padding:1rem;
  box-shadow:0 8px 20px rgba(9,30,66,.04);
}
.comment-composer-header{
  display:flex;
  justify-content:space-between;
  gap:1rem;
  margin-bottom:.85rem;
}
.comment-composer-title{
  font-weight:850;
  color:var(--text);
}
.comment-textarea{
  border-radius:14px;
  resize:vertical;
  min-height:108px;
}
.comment-composer-footer{
  display:flex;
  justify-content:space-between;
  gap:1rem;
  align-items:center;
  margin-top:.75rem;
}
@media (max-width: 768px){
  .comments-summary{
    align-items:flex-start;
    flex-direction:column;
  }
  .comments-toolbar{
    grid-template-columns:1fr;
  }
  .comment-card-header{
    flex-direction:column;
  }
  .comment-header-actions{
    justify-content:flex-start;
  }
  .comment-composer-footer{
    flex-direction:column;
    align-items:stretch;
  }
}


/* V14 - Ajustes comentarios: alineación, edición, pegado de imágenes */
.comment-card-content{
  padding:1rem 1.05rem;
}
.comment-body{
  margin-top:.35rem;
  text-align:left;
  display:block;
  width:100%;
}
.comment-body::first-line{
  text-indent:0;
}
.comment-edit-form{
  border-top:1px solid var(--border);
  padding-top:.85rem;
}
.paste-preview{
  display:flex;
  flex-wrap:wrap;
  gap:.5rem;
  padding:.6rem;
  margin-bottom:.65rem;
  border:1px dashed var(--border);
  border-radius:12px;
  background:#fafbfc;
}
.paste-preview-item{
  display:inline-flex;
  align-items:center;
  gap:.45rem;
  padding:.35rem .55rem;
  border-radius:999px;
  background:#deebff;
  color:#0747a6;
  font-size:.82rem;
  font-weight:700;
}
.paste-remove-btn{
  border:0;
  background:transparent;
  color:#0747a6;
  font-weight:800;
  padding:0 .15rem;
}
.paste-remove-btn:hover{
  text-decoration:underline;
}
.comment-card-header{
  align-items:flex-start;
}
.comment-header-actions form{
  margin:0;
}
@media (max-width:768px){
  .comment-icon-btn{
    width:34px;
    height:34px;
  }
}


/* V15 - Comentarios estilo Jira: compacto, profesional y con microinteracciones */
.jira-comments-module{
  border-radius:16px;
  overflow:visible;
}
.jira-comments-summary{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:1rem;
  cursor:pointer;
  list-style:none;
}
.jira-comments-summary::-webkit-details-marker{display:none}
.jira-comments-title-row{
  display:flex;
  align-items:center;
  gap:.45rem;
}
.jira-comments-count{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:28px;
  height:22px;
  padding:0 .55rem;
  border-radius:999px;
  background:#f1f5f9;
  color:#334155;
  font-size:.78rem;
  font-weight:800;
}
.jira-comments-hint{
  font-size:.8rem;
  color:#64748b;
  font-weight:500;
}
.jira-comments-panel{
  display:flex;
  flex-direction:column;
  gap:.85rem;
  padding-top:.75rem;
}
.jira-comment-toolbar{
  display:grid;
  grid-template-columns:minmax(180px,1fr) 120px 135px;
  gap:.5rem;
  align-items:center;
  padding:.45rem;
  border:1px solid #e5e7eb;
  border-radius:12px;
  background:#f8fafc;
}
.jira-comment-search{
  display:flex;
  align-items:center;
  gap:.4rem;
  background:#fff;
  border:1px solid #e5e7eb;
  border-radius:10px;
  padding:0 .55rem;
  height:34px;
}
.jira-comment-search input,
.jira-comment-toolbar select,
.jira-comment-toolbar input[type=date]{
  height:32px;
  border:1px solid #e5e7eb;
  border-radius:9px;
  background:#fff;
  color:#334155;
  font-size:.84rem;
}
.jira-comment-search input{
  border:0;
  outline:0;
  flex:1;
  min-width:0;
}
.jira-comment-composer{
  display:grid;
  grid-template-columns:34px minmax(0,1fr);
  gap:.7rem;
  align-items:flex-start;
  padding:.2rem 0 .4rem;
}
.jira-composer-avatar,
.jira-comment-avatar{
  width:34px;
  height:34px;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight:800;
  font-size:.84rem;
  background:#dbeafe;
  color:#1e3a8a;
  flex:0 0 auto;
}
.jira-composer-form{
  min-width:0;
}
.jira-composer-collapsed{
  min-height:38px;
  display:flex;
  align-items:center;
  padding:0 .8rem;
  border:1px solid #cbd5e1;
  border-radius:8px;
  background:#fff;
  color:#64748b;
  font-size:.93rem;
  cursor:text;
}
.jira-composer-collapsed:hover,
.jira-composer-collapsed:focus{
  border-color:#94a3b8;
  box-shadow:0 0 0 3px rgba(59,130,246,.08);
}
.jira-composer-expanded{
  border:1px solid #cbd5e1;
  border-radius:10px;
  background:#fff;
  box-shadow:0 8px 20px rgba(15,23,42,.06);
  overflow:visible;
}
.jira-composer-toolbar{
  display:flex;
  gap:.45rem;
  align-items:center;
  flex-wrap:wrap;
  padding:.45rem .55rem;
  border-bottom:1px solid #e5e7eb;
  background:#f8fafc;
}
.jira-composer-select{
  height:30px;
  border:1px solid #d1d5db;
  border-radius:8px;
  font-size:.82rem;
  padding:0 .45rem;
  background:#fff;
}
.jira-file-pill{
  height:30px;
  display:inline-flex;
  align-items:center;
  padding:0 .65rem;
  border:1px solid #d1d5db;
  border-radius:8px;
  font-size:.82rem;
  color:#334155;
  background:#fff;
  cursor:pointer;
}
.jira-file-pill:hover{
  background:#f1f5f9;
}
.jira-composer-tip{
  margin-left:auto;
  color:#64748b;
  font-size:.78rem;
}
.jira-composer-tip kbd{
  padding:.05rem .3rem;
  border:1px solid #cbd5e1;
  border-radius:4px;
  background:#fff;
  color:#334155;
  font-size:.72rem;
}
.jira-comment-editor{
  width:100%;
  border:0;
  outline:0;
  resize:vertical;
  min-height:92px;
  padding:.75rem .85rem;
  font-size:.94rem;
  line-height:1.48;
  color:#0f172a;
}
.jira-composer-actions{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:.75rem;
  padding:.55rem .65rem;
  border-top:1px solid #e5e7eb;
  background:#fff;
}
.jira-composer-feedback{
  color:#64748b;
  font-size:.8rem;
}
.jira-composer-buttons{
  display:flex;
  gap:.45rem;
}
.jira-comments-list{
  display:flex;
  flex-direction:column;
  gap:.35rem;
}
.jira-comment{
  display:grid;
  grid-template-columns:34px minmax(0,1fr);
  gap:.7rem;
  padding:.45rem 0;
  position:relative;
}
.jira-comment + .jira-comment{
  border-top:1px solid #f1f5f9;
}
.jira-comment-main{
  min-width:0;
  padding:.1rem 0 .35rem;
}
.jira-comment-meta{
  display:flex;
  align-items:center;
  gap:.45rem;
  flex-wrap:wrap;
  line-height:1.2;
  margin-bottom:.2rem;
}
.jira-comment-meta strong{
  font-size:.92rem;
  color:#0f172a;
}
.jira-comment-time{
  color:#64748b;
  font-size:.78rem;
}
.jira-visibility-pill{
  display:inline-flex;
  align-items:center;
  height:20px;
  padding:0 .45rem;
  border-radius:999px;
  font-size:.68rem;
  font-weight:800;
  letter-spacing:.03em;
  text-transform:uppercase;
}
.jira-visibility-pill.comment-public{
  background:#ecfdf5;
  color:#047857;
  border:1px solid #a7f3d0;
}
.jira-visibility-pill.comment-internal{
  background:#f5f3ff;
  color:#5b21b6;
  border:1px solid #ddd6fe;
}
.jira-comment-body{
  color:#172033;
  font-size:.94rem;
  line-height:1.52;
  max-width:100%;
}
.jira-comment-text{
  white-space:pre-wrap;
  overflow-wrap:anywhere;
}
.mention-pill{
  display:inline-flex;
  align-items:center;
  padding:.08rem .35rem;
  border-radius:999px;
  background:#deebff;
  color:#0747a6;
  font-weight:700;
}
.jira-comment-actions{
  display:flex;
  align-items:center;
  gap:.35rem;
  margin-top:.25rem;
  opacity:.45;
  transition:opacity .15s ease;
}
.jira-comment:hover .jira-comment-actions{
  opacity:1;
}
.jira-action-btn{
  border:0;
  background:transparent;
  color:#64748b;
  font-size:.78rem;
  padding:.15rem .25rem;
  border-radius:6px;
}
.jira-action-btn:hover{
  background:#f1f5f9;
  color:#0f172a;
}
.jira-comment-edit-form{
  margin-top:.45rem;
  padding:.55rem;
  border:1px solid #e5e7eb;
  border-radius:10px;
  background:#f8fafc;
}
@media (max-width:768px){
  .jira-comments-summary{
    align-items:flex-start;
    flex-direction:column;
  }
  .jira-comment-toolbar{
    grid-template-columns:1fr;
  }
  .jira-comment-composer,
  .jira-comment{
    grid-template-columns:30px minmax(0,1fr);
    gap:.55rem;
  }
  .jira-composer-avatar,
  .jira-comment-avatar{
    width:30px;
    height:30px;
  }
  .jira-composer-actions{
    align-items:stretch;
    flex-direction:column;
  }
  .jira-composer-buttons{
    justify-content:flex-end;
  }
  .jira-composer-tip{
    width:100%;
    margin-left:0;
  }
}


/* V16 - Adjuntos y multimedia dentro de comentarios */
.jira-composer-expanded.drag-active{
  border-color:#2684ff;
  box-shadow:0 0 0 3px rgba(38,132,255,.14);
}
.jira-composer-expanded.drag-active .jira-comment-editor{
  background:#f0f7ff;
}
.comment-attachments-inline{
  display:flex;
  flex-wrap:wrap;
  gap:.55rem;
  margin:.25rem 0 .55rem;
}
.comment-image-thumb{
  width:112px;
  height:82px;
  border:1px solid #dfe1e6;
  border-radius:10px;
  padding:0;
  overflow:hidden;
  background:#f8fafc;
  cursor:pointer;
  box-shadow:0 2px 8px rgba(15,23,42,.06);
}
.comment-image-thumb:hover{
  border-color:#2684ff;
  box-shadow:0 4px 14px rgba(38,132,255,.18);
}
.comment-image-thumb img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.comment-file-chip{
  display:grid;
  grid-template-columns:34px minmax(130px,1fr) auto;
  align-items:center;
  gap:.55rem;
  min-width:260px;
  max-width:380px;
  padding:.55rem .65rem;
  border:1px solid #dfe1e6;
  border-radius:10px;
  background:#f8fafc;
}
.comment-file-icon{
  width:34px;
  height:34px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:8px;
  background:#eef2ff;
  font-size:1.05rem;
}
.comment-file-info{
  min-width:0;
}
.comment-file-name{
  font-weight:700;
  color:#172b4d;
  font-size:.86rem;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.comment-file-meta{
  color:#6b778c;
  font-size:.76rem;
}
.comment-file-download{
  font-size:.78rem;
  font-weight:700;
  text-decoration:none;
  color:#0052cc;
}
.comment-file-download:hover{
  text-decoration:underline;
}
.comment-lightbox{
  position:fixed;
  inset:0;
  background:rgba(15,23,42,.86);
  z-index:3000;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:2rem;
}
.comment-lightbox img{
  max-width:94vw;
  max-height:86vh;
  object-fit:contain;
  border-radius:12px;
  box-shadow:0 20px 70px rgba(0,0,0,.45);
}
.comment-lightbox-close{
  position:fixed;
  top:1rem;
  right:1rem;
  width:42px;
  height:42px;
  border:0;
  border-radius:50%;
  background:#fff;
  color:#111827;
  font-size:1.6rem;
  line-height:1;
}
.comment-lightbox-caption{
  position:fixed;
  bottom:1rem;
  left:50%;
  transform:translateX(-50%);
  max-width:80vw;
  color:#fff;
  background:rgba(0,0,0,.35);
  padding:.45rem .8rem;
  border-radius:999px;
  font-size:.86rem;
}
.drop-preview-thumb{
  display:inline-flex;
  align-items:center;
  justify-content:center;
}
@media (max-width:768px){
  .comment-file-chip{
    min-width:100%;
    grid-template-columns:34px minmax(0,1fr);
  }
  .comment-file-download{
    grid-column:1 / -1;
    padding-left:2.6rem;
  }
  .comment-image-thumb{
    width:96px;
    height:72px;
  }
}

.alerts-badge{
  margin-left:auto;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:20px;
  height:20px;
  padding:0 .4rem;
  border-radius:999px;
  background:#de350b;
  color:#fff;
  font-size:.72rem;
  font-weight:800;
}


/* V20 - Incidencias relacionadas */
.related-ticket-form{
  padding-bottom:.85rem;
  border-bottom:1px solid #eef2f7;
}
.related-ticket-list{
  display:flex;
  flex-direction:column;
  gap:.55rem;
}
.related-ticket-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto auto;
  gap:.85rem;
  align-items:center;
  padding:.65rem .75rem;
  border:1px solid #e5e7eb;
  border-radius:12px;
  background:#fff;
}
.related-ticket-row:hover{
  background:#f8fafc;
  border-color:#cbd5e1;
}
.related-ticket-code{
  font-weight:850;
  color:#0052cc;
  text-decoration:none;
}
.related-ticket-code:hover{
  text-decoration:underline;
}
.related-ticket-title{
  color:#172b4d;
  font-weight:650;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.related-ticket-meta{
  color:#6b778c;
  font-size:.78rem;
}
.related-status{
  display:inline-flex;
  align-items:center;
  padding:.25rem .55rem;
  border-radius:999px;
  font-size:.72rem;
  font-weight:800;
  white-space:nowrap;
}
.related-status-open{
  background:#fffae6;
  color:#974f0c;
  border:1px solid #ffe380;
}
.related-status-progress{
  background:#deebff;
  color:#0747a6;
  border:1px solid #b3d4ff;
}
.related-status-closed{
  background:#e3fcef;
  color:#006644;
  border:1px solid #abf5d1;
}
.related-remove-btn{
  width:28px;
  height:28px;
  border:0;
  border-radius:50%;
  background:#f1f5f9;
  color:#64748b;
  font-size:1.1rem;
  line-height:1;
}
.related-remove-btn:hover{
  background:#fee2e2;
  color:#b91c1c;
}
@media (max-width:768px){
  .related-ticket-row{
    grid-template-columns:1fr;
    gap:.45rem;
  }
  .related-ticket-title{
    white-space:normal;
  }
}


/* V21 - Listado compacto de tickets */
.tickets-page-head{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:1rem;
  flex-wrap:wrap;
  margin-bottom:1rem;
}
.tickets-focus-bar{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:1rem;
  padding:.75rem 1rem;
  margin-bottom:1rem;
}
.tickets-focus-form{
  display:flex;
  align-items:center;
  gap:.85rem;
  flex-wrap:wrap;
}
.focus-switch{
  display:inline-flex;
  align-items:center;
  gap:.55rem;
  cursor:pointer;
  margin:0;
  user-select:none;
}
.focus-switch input{
  position:absolute;
  opacity:0;
  pointer-events:none;
}
.focus-slider{
  width:42px;
  height:24px;
  border-radius:999px;
  background:#cbd5e1;
  position:relative;
  transition:.18s ease;
}
.focus-slider::after{
  content:"";
  width:18px;
  height:18px;
  border-radius:50%;
  background:#fff;
  position:absolute;
  top:3px;
  left:3px;
  box-shadow:0 1px 4px rgba(15,23,42,.25);
  transition:.18s ease;
}
.focus-switch input:checked + .focus-slider{
  background:#0052cc;
}
.focus-switch input:checked + .focus-slider::after{
  transform:translateX(18px);
}
.focus-label{
  font-weight:750;
  color:#172b4d;
}
.tickets-count{
  color:#6b778c;
  font-size:.85rem;
  font-weight:700;
}
.tickets-filter-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(160px,1fr));
  gap:.75rem;
}
.tickets-filter-search{
  grid-column:span 2;
}
.tickets-filter-actions{
  display:flex;
  align-items:end;
  gap:.5rem;
}
.multi-select{
  min-height:78px;
  font-size:.82rem;
}
.multi-select option{
  padding:.2rem .35rem;
}
.tickets-dense-list{
  overflow:hidden;
}
.tickets-dense-header,
.ticket-dense-row{
  display:grid;
  grid-template-columns:110px minmax(220px,1fr) 120px 170px 120px 130px 70px;
  gap:.75rem;
  align-items:center;
}
.tickets-dense-header{
  padding:.65rem .9rem;
  background:#f8fafc;
  border-bottom:1px solid #e5e7eb;
  color:#64748b;
  font-size:.72rem;
  font-weight:850;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.ticket-dense-row{
  min-height:48px;
  padding:.5rem .9rem;
  border-bottom:1px solid #edf2f7;
  text-decoration:none;
  color:#172b4d;
  transition:background .12s ease;
}
.ticket-dense-row:hover{
  background:#f8fafc;
  color:#172b4d;
}
.ticket-code{
  font-weight:850;
  color:#0052cc;
  white-space:nowrap;
}
.ticket-title-cell{
  min-width:0;
}
.ticket-title-line{
  font-weight:750;
  overflow:hidden;
  white-space:nowrap;
  text-overflow:ellipsis;
}
.ticket-subline{
  color:#6b778c;
  font-size:.74rem;
  overflow:hidden;
  white-space:nowrap;
  text-overflow:ellipsis;
}
.ticket-priority,
.ticket-status{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  max-width:100%;
  padding:.24rem .55rem;
  border-radius:999px;
  font-size:.72rem;
  font-weight:850;
  white-space:nowrap;
}
.priority-critical{
  background:#ffebe6;
  color:#bf2600;
  border:1px solid #ffbdad;
}
.priority-high{
  background:#fff0b3;
  color:#974f0c;
  border:1px solid #ffe380;
}
.priority-medium{
  background:#deebff;
  color:#0747a6;
  border:1px solid #b3d4ff;
}
.priority-low{
  background:#e3fcef;
  color:#006644;
  border:1px solid #abf5d1;
}
.ticket-assignee{
  display:flex;
  align-items:center;
  gap:.45rem;
  min-width:0;
}
.assignee-avatar{
  width:26px;
  height:26px;
  flex:0 0 26px;
  border-radius:50%;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:#e0f2fe;
  color:#075985;
  font-size:.72rem;
  font-weight:850;
}
.assignee-name{
  overflow:hidden;
  white-space:nowrap;
  text-overflow:ellipsis;
  font-size:.84rem;
}
.ticket-due{
  font-size:.84rem;
  white-space:nowrap;
}
.status-open{
  background:#fffae6;
  color:#974f0c;
  border:1px solid #ffe380;
}
.status-progress{
  background:#deebff;
  color:#0747a6;
  border:1px solid #b3d4ff;
}
.status-closed{
  background:#e3fcef;
  color:#006644;
  border:1px solid #abf5d1;
}
.ticket-row-action{
  opacity:.55;
  font-size:.78rem;
  color:#0052cc;
  font-weight:750;
  text-align:right;
}
.ticket-dense-row:hover .ticket-row-action{
  opacity:1;
}
@media (max-width: 1100px){
  .tickets-dense-header,
  .ticket-dense-row{
    grid-template-columns:95px minmax(180px,1fr) 105px 145px 115px 115px 55px;
    gap:.55rem;
  }
}
@media (max-width: 850px){
  .tickets-filter-grid{
    grid-template-columns:1fr;
  }
  .tickets-filter-search{
    grid-column:auto;
  }
  .tickets-dense-header{
    display:none;
  }
  .ticket-dense-row{
    grid-template-columns:1fr;
    gap:.35rem;
    min-height:auto;
    padding:.75rem;
  }
  .ticket-row-action{
    text-align:left;
  }
}


/* V22 - Jira-like filters and real compact table */
.jira-list-page{
  display:flex;
  flex-direction:column;
  gap:.75rem;
}
.jira-list-header{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:1rem;
  flex-wrap:wrap;
}
.jira-list-actions{
  display:flex;
  gap:.5rem;
  align-items:center;
}
.jira-filter-bar{
  display:flex;
  align-items:center;
  gap:.45rem;
  flex-wrap:wrap;
  padding:.45rem 0;
  position:relative;
}
.jira-basic-pill,
.jira-filter-chip{
  height:34px;
  display:inline-flex;
  align-items:center;
  gap:.35rem;
  padding:0 .75rem;
  border:1px solid #c7d2fe;
  border-radius:4px;
  background:#f8fbff;
  color:#0c66e4;
  font-weight:750;
  font-size:.83rem;
}
.jira-basic-pill.active{
  background:#e9f2ff;
  border-color:#85b8ff;
}
.jira-filter-chip::after{
  content:"⌄";
  font-size:.75rem;
}
.jira-search-box{
  height:34px;
  min-width:220px;
  display:flex;
  align-items:center;
  gap:.4rem;
  padding:0 .6rem;
  border:1px solid #c1c7d0;
  border-radius:4px;
  background:#fff;
}
.jira-search-box input{
  border:0;
  outline:0;
  min-width:0;
  width:100%;
  font-size:.86rem;
}
.jira-filter-dropdown{
  position:relative;
}
.jira-filter-menu{
  display:none;
  position:absolute;
  top:38px;
  left:0;
  width:285px;
  max-height:410px;
  overflow:auto;
  z-index:70;
  padding:.55rem;
  border:1px solid #dfe1e6;
  border-radius:6px;
  background:#fff;
  box-shadow:0 12px 28px rgba(9,30,66,.18);
}
.jira-filter-dropdown.open .jira-filter-menu{
  display:block;
}
.jira-filter-menu-title{
  color:#6b778c;
  font-size:.78rem;
  font-weight:800;
  padding:.35rem .45rem;
}
.jira-check-row{
  display:flex;
  align-items:center;
  gap:.45rem;
  min-height:32px;
  padding:.25rem .45rem;
  border-radius:4px;
  cursor:pointer;
  color:#172b4d;
  font-size:.86rem;
}
.jira-check-row:hover{
  background:#f4f5f7;
}
.jira-check-row input{
  width:14px;
  height:14px;
}
.mini-avatar{
  width:22px;
  height:22px;
  border-radius:50%;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:#deebff;
  color:#0747a6;
  font-size:.68rem;
  font-weight:850;
  flex:0 0 22px;
}
.jira-filter-text,
.jira-filter-dates input{
  height:34px;
  border:1px solid #c1c7d0;
  border-radius:4px;
  padding:0 .55rem;
  font-size:.84rem;
}
.jira-filter-dates{
  display:flex;
  gap:.35rem;
}
.jira-active-toggle{
  height:34px;
  display:flex;
  align-items:center;
  gap:.35rem;
  padding:0 .55rem;
  color:#172b4d;
  font-size:.84rem;
  border:1px solid #dfe1e6;
  border-radius:4px;
  background:#fff;
}
.jira-clear-link{
  color:#44546f;
  font-size:.84rem;
  text-decoration:none;
  padding:0 .35rem;
}
.jira-clear-link:hover{
  text-decoration:underline;
}
.jira-save-filter{
  position:relative;
}
.jira-save-filter summary{
  list-style:none;
  cursor:pointer;
  color:#0c66e4;
  font-size:.84rem;
  font-weight:750;
  padding:.35rem .45rem;
}
.jira-save-filter summary::-webkit-details-marker{
  display:none;
}
.jira-save-filter-box{
  position:absolute;
  top:34px;
  right:0;
  z-index:70;
  min-width:300px;
  max-width:380px;
  padding:.85rem;
  border:1px solid #dfe1e6;
  border-radius:8px;
  background:#fff;
  box-shadow:0 12px 28px rgba(9,30,66,.18);
}
.jira-saved-filter-chip{
  display:inline-block;
  padding:3px 10px;
  margin:2px 3px 2px 0;
  border-radius:12px;
  border:1px solid #c7d2fe;
  background:#f0f4ff;
  color:#1e40af;
  font-size:.76rem;
  font-weight:650;
  text-decoration:none;
  transition:all .15s;
}
.jira-saved-filter-chip:hover{
  background:#dbeafe;
  color:#1e3a8a;
  border-color:#93c5fd;
  text-decoration:none;
}
.jira-table-shell{
  border:1px solid #dfe1e6;
  border-radius:7px;
  background:#fff;
  overflow:hidden;
}
.jira-table-scroll{
  overflow:auto;
  max-width:100%;
}
.jira-issue-table{
  width:100%;
  min-width:1260px;
  border-collapse:separate;
  border-spacing:0;
  font-size:.84rem;
}
.jira-issue-table th{
  height:38px;
  padding:.45rem .55rem;
  border-bottom:1px solid #dfe1e6;
  border-right:1px solid #edf0f4;
  background:#fafbfc;
  color:#44546f;
  font-size:.72rem;
  font-weight:850;
  text-align:left;
  white-space:nowrap;
}
.jira-issue-table td{
  height:36px;
  padding:.35rem .55rem;
  border-bottom:1px solid #edf0f4;
  border-right:1px solid #edf0f4;
  vertical-align:middle;
  white-space:nowrap;
}
.jira-issue-table tbody tr:hover td{
  background:#f4f8ff;
}
.select-col{
  width:34px;
  text-align:center!important;
}
.activity-cell{
  max-width:370px;
}
.issue-code{
  color:#0c66e4;
  font-weight:800;
  text-decoration:none;
  margin-right:.5rem;
}
.issue-code:hover{
  text-decoration:underline;
}
.issue-title{
  display:inline-block;
  max-width:270px;
  overflow:hidden;
  text-overflow:ellipsis;
  vertical-align:bottom;
}
.client-tag{
  display:inline-flex;
  align-items:center;
  height:22px;
  padding:0 .35rem;
  border:1px solid #c1c7d0;
  border-radius:4px;
  background:#fff;
  font-size:.78rem;
  font-weight:650;
}
.text-truncate-cell{
  max-width:180px;
  overflow:hidden;
  text-overflow:ellipsis;
}
.jira-status,
.jira-priority{
  display:inline-flex;
  align-items:center;
  min-height:20px;
  padding:0 .4rem;
  border-radius:4px;
  font-size:.72rem;
  font-weight:850;
  text-transform:uppercase;
}
.jira-person{
  display:flex;
  align-items:center;
  gap:.45rem;
  min-width:0;
}
.person-name{
  display:inline-block;
  max-width:130px;
  overflow:hidden;
  text-overflow:ellipsis;
}
.due-cell{
  color:#6b778c;
}
.row-menu{
  text-align:center;
  color:#0c66e4;
  font-weight:900;
}
.empty-cell{
  text-align:center;
  color:#6b778c;
  padding:1.5rem!important;
}
@media(max-width:900px){
  .jira-filter-bar{
    align-items:flex-start;
  }
  .jira-search-box{
    width:100%;
  }
  .jira-filter-menu{
    position:fixed;
    left:1rem;
    right:1rem;
    top:auto;
    width:auto;
  }
}

/* V22 - Related tickets in one table line */
.related-ticket-table-wrap{
  overflow:auto;
}
.related-ticket-table{
  width:100%;
  min-width:760px;
  border-collapse:separate;
  border-spacing:0;
  font-size:.84rem;
  border:1px solid #dfe1e6;
  border-radius:6px;
  overflow:hidden;
}
.related-ticket-table th,
.related-ticket-table td{
  padding:.42rem .55rem;
  border-bottom:1px solid #edf0f4;
  text-align:left;
  white-space:nowrap;
}
.related-ticket-table th{
  background:#fafbfc;
  color:#44546f;
  font-size:.72rem;
  font-weight:850;
}
.related-ticket-table tr:last-child td{
  border-bottom:0;
}
.related-one-line{
  max-width:280px;
  overflow:hidden;
  text-overflow:ellipsis;
}


/* V23 - Multi choice filters and no open button */
.jira-filter-chip.has-selection{
  background:#e9f2ff;
  border-color:#0c66e4;
  color:#0c66e4;
}
.jira-filter-menu{
  width:310px;
}
.jira-filter-menu-title{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:.75rem;
}
.filter-help{
  color:#6b778c;
  font-size:.68rem;
  font-weight:600;
  text-transform:none;
}
.jira-check-row input[type="checkbox"]{
  accent-color:#0c66e4;
}
.jira-check-row:has(input:checked){
  background:#e9f2ff;
}
.jira-check-row:has(input:checked) span:last-child{
  color:#0c66e4;
  font-weight:750;
}
.jira-issue-table th:last-child,
.jira-issue-table td:last-child{
  border-right:0;
}
.activity-cell .issue-code{
  display:inline-flex;
  min-width:78px;
}


/* V24 - Filtros multiselección globales */
.dashboard-filter-bar{
  gap:.55rem;
}
.dashboard-filter-card .jira-filter-menu{
  width:320px;
}
.multi-select[multiple]{
  min-height:92px;
  font-size:.82rem;
}
.multi-select[multiple] option{
  padding:.22rem .35rem;
}
.table-card .issue-code{
  font-weight:850;
}


/* V25 - Dropdown multiselección compacto global */
.jira-filter-dropdown{
  position:relative;
}
.jira-filter-menu{
  position:absolute;
  top:calc(100% + 6px);
  left:0;
  z-index:2000;
  min-width:320px;
  max-width:390px;
  max-height:420px;
  overflow:auto;
  padding:.65rem;
  border:1px solid #d7dde8;
  border-radius:10px;
  background:#fff;
  box-shadow:0 18px 46px rgba(9,30,66,.22);
}
.jira-filter-search{
  position:sticky;
  top:-.65rem;
  z-index:2;
  margin:-.15rem -.15rem .55rem;
  padding:.45rem .35rem .6rem;
  background:#fff;
  border-bottom:1px solid #edf0f4;
}
.jira-filter-search-input{
  width:100%;
  height:38px;
  border:1.5px solid #c8d1df;
  border-radius:8px;
  padding:0 .8rem 0 2.25rem;
  background:#fbfcfe;
  color:#172b4d;
  font-size:.88rem;
  font-weight:500;
  outline:none;
  transition:border-color .15s ease, box-shadow .15s ease, background .15s ease;
}
.jira-filter-search-input:focus{
  border-color:#0c66e4;
  background:#fff;
  box-shadow:0 0 0 3px rgba(12,102,228,.15);
}
.jira-filter-search-input::placeholder{
  color:#6b778c;
  font-weight:500;
}
.jira-filter-search::before{
  content:"";
  position:absolute;
  left:1.05rem;
  top:50%;
  width:13px;
  height:13px;
  transform:translateY(-45%);
  border:2px solid #7a869a;
  border-radius:50%;
  pointer-events:none;
}
.jira-filter-search::after{
  content:"";
  position:absolute;
  left:1.82rem;
  top:calc(50% + 6px);
  width:7px;
  height:2px;
  transform:rotate(45deg);
  transform-origin:left center;
  background:#7a869a;
  pointer-events:none;
}
.jira-filter-no-results{
  display:none;
  padding:1rem .55rem;
  color:#6b7280;
  font-size:.82rem;
  text-align:center;
}
.jira-filter-menu.has-no-results .jira-filter-no-results{
  display:block;
}
.jira-check-row.is-filter-hidden{
  display:none !important;
}
.jira-filter-menu .jira-check-row[hidden]{
  display:none !important;
}
.jira-filter-menu .jira-check-row{
  min-height:34px;
  margin:1px 0;
  padding:.42rem .45rem;
  border-radius:7px;
}
.jira-filter-menu .jira-check-row:hover{
  background:#f4f7fb;
}
.jira-filter-menu .jira-check-row input[type="checkbox"]{
  width:16px;
  height:16px;
}
.jira-filter-menu .jira-check-row span{
  line-height:1.25;
}
.jira-filter-dropdown:not(.open) .jira-filter-menu{
  display:none;
}
.jira-filter-chip{
  max-width:220px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.jira-filter-menu-footer{
  position:sticky;
  bottom:-.65rem;
  display:flex;
  justify-content:center;
  padding:.55rem .35rem .25rem;
  margin:.45rem -.15rem -.35rem;
  border-top:1px solid #edf0f4;
  background:#fff;
}
.jira-filter-clear{
  border:1px solid transparent;
  background:#fff;
  color:#44546f;
  font-size:.82rem;
  font-weight:750;
  padding:.35rem .65rem;
  border-radius:7px;
}
.jira-filter-clear:hover{
  background:#f4f7fb;
  border-color:#d7dde8;
  color:#0c66e4;
}
.report-filter-bar{
  gap:.55rem;
}
.report-search-box{
  min-width:260px;
}
@media(max-width:900px){
  .jira-filter-menu{
    position:fixed;
    top:auto;
    left:1rem;
    right:1rem;
    width:auto;
    min-width:0;
    max-width:none;
  }
}


/* V26 - Tablas uniformes, sorting y enlaces KPI */
.sortable-th{
  cursor:pointer;
  user-select:none;
  position:relative;
}
.sortable-th::after{
  content:"↕";
  margin-left:.35rem;
  color:#94a3b8;
  font-size:.72rem;
}
.sortable-th[data-sort-dir="asc"]::after{content:"↑"; color:#0c66e4;}
.sortable-th[data-sort-dir="desc"]::after{content:"↓"; color:#0c66e4;}
.kpi-link{
  text-decoration:none;
  color:inherit;
  display:block;
}
.kpi-link:hover{
  transform:translateY(-1px);
  box-shadow:0 12px 30px rgba(9,30,66,.10);
}
.bar-link{
  text-decoration:none;
  color:inherit;
}
.bar-link:hover{
  background:#f4f8ff;
}
.jira-issue-table .issue-code,
.table-card .issue-code{
  color:#0c66e4;
  font-weight:850;
  text-decoration:none;
}
.jira-issue-table .issue-code:hover,
.table-card .issue-code:hover{
  text-decoration:underline;
}


/* V27 - Corrección detalle, selector de columnas y tablas uniformes */
.column-chooser{
  display:flex;
  flex-wrap:wrap;
  gap:.55rem .9rem;
}
.column-chooser label{
  display:inline-flex;
  align-items:center;
  gap:.35rem;
  padding:.28rem .55rem;
  border:1px solid #dfe1e6;
  border-radius:999px;
  background:#fff;
  color:#172b4d;
  font-size:.82rem;
  font-weight:700;
  cursor:pointer;
}
.column-chooser label:hover{
  background:#f4f8ff;
  border-color:#85b8ff;
}
.column-chooser input{
  accent-color:#0c66e4;
}
.jira-issue-table{
  table-layout:auto;
}
.jira-issue-table th,
.jira-issue-table td{
  white-space:nowrap;
}
.jira-issue-table .activity-cell{
  min-width:360px;
}


/* V29 - Unified DataTable */
.datatable-toolbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.75rem;
  margin:.75rem 0;
  flex-wrap:wrap;
}
.datatable-search{
  height:34px;
  min-width:260px;
  display:flex;
  align-items:center;
  gap:.45rem;
  border:1px solid #c1c7d0;
  border-radius:6px;
  padding:0 .65rem;
  background:#fff;
}
.datatable-search input{
  border:0;
  outline:0;
  width:100%;
  min-width:0;
  font-size:.86rem;
}
.dt-column-dropdown{
  position:relative;
}
.dt-column-dropdown-toggle{
  height:34px;
  border:1px solid #c1c7d0;
  border-radius:6px;
  padding:0 .75rem;
  background:#fff;
  color:#172b4d;
  font-weight:750;
  font-size:.84rem;
}
.dt-column-dropdown-toggle::after{
  content:"⌄";
  margin-left:.45rem;
}
.dt-column-dropdown-menu{
  display:none;
  position:absolute;
  right:0;
  top:calc(100% + 6px);
  z-index:2500;
  width:285px;
  max-height:430px;
  overflow:auto;
  padding:.65rem;
  border:1px solid #dfe1e6;
  border-radius:8px;
  background:#fff;
  box-shadow:0 12px 30px rgba(9,30,66,.18);
}
.dt-column-dropdown.open .dt-column-dropdown-menu{
  display:block;
}
.dt-column-dropdown-title{
  color:#44546f;
  font-size:.78rem;
  font-weight:850;
  margin-bottom:.35rem;
}
.dt-column-option{
  display:flex;
  align-items:center;
  gap:.45rem;
  min-height:30px;
  padding:.25rem .35rem;
  border-radius:5px;
  cursor:pointer;
  color:#172b4d;
  font-size:.84rem;
}
.dt-column-option:hover{
  background:#f4f5f7;
}
.dt-column-option input{
  accent-color:#0c66e4;
}
.dt-column-actions{
  display:flex;
  justify-content:space-between;
  gap:.45rem;
  margin-top:.5rem;
  padding-top:.45rem;
  border-top:1px solid #edf0f4;
}
.dt-column-actions button{
  border:0;
  background:#f4f5f7;
  color:#0c66e4;
  border-radius:5px;
  padding:.25rem .45rem;
  font-size:.78rem;
  font-weight:750;
}
.datamon-data-table .col-titulo{
  min-width:260px;
}
.datamon-data-table .col-codigo{
  min-width:95px;
}
@media(max-width:900px){
  .datatable-search{
    width:100%;
  }
  .dt-column-dropdown-menu{
    position:fixed;
    left:1rem;
    right:1rem;
    width:auto;
  }
}


/* V30 - Column drag/drop order and report-table visual standard */
.draggable-th{
  cursor:grab;
}
.draggable-th:active{
  cursor:grabbing;
}
.dragging-th{
  opacity:.55;
}
.drag-over-th{
  outline:2px solid #0c66e4;
  outline-offset:-2px;
  background:#e9f2ff!important;
}
.dt-column-actions{
  flex-wrap:wrap;
}
.dt-column-actions button[data-reset-order]{
  width:100%;
  margin-top:.25rem;
  background:#e9f2ff;
}
.datamon-data-table{
  border-collapse:separate;
  border-spacing:0;
}
.datamon-data-table th{
  background:#fafbfc;
}
.datamon-data-table tbody tr:hover td{
  background:#f4f8ff;
}

/* V33 - Time entry and configurable colors */
.time-entry-layout{
  display:grid;
  grid-template-columns:1.2fr .9fr;
  gap:1rem;
}
.time-week-grid{
  display:grid;
  grid-template-columns:repeat(7,minmax(90px,1fr));
  gap:.6rem;
}
.time-day-card{
  display:flex;
  flex-direction:column;
  gap:.25rem;
  padding:.85rem;
  border:1px solid #dfe1e6;
  border-radius:12px;
  background:#fff;
  color:#172b4d;
  text-decoration:none;
  min-height:95px;
}
.time-day-card:hover,
.time-day-card.active{
  border-color:#0c66e4;
  background:#e9f2ff;
}
.time-day-name{
  color:#44546f;
  font-size:.78rem;
  font-weight:850;
  text-transform:uppercase;
}
.time-day-date{
  font-size:1rem;
  font-weight:850;
}
.time-day-hours{
  margin-top:auto;
  color:#0c66e4;
  font-size:1.05rem;
  font-weight:900;
}
.time-entry-form .form-label{
  font-weight:750;
  color:#172b4d;
}
.time-quick-row{
  display:grid;
  grid-template-columns:1fr repeat(4,auto);
  gap:.4rem;
  align-items:center;
}
.form-control-color{
  min-width:44px;
  padding:.2rem;
}
@media(max-width:900px){
  .time-entry-layout{grid-template-columns:1fr;}
  .time-week-grid{grid-template-columns:repeat(2,1fr);}
  .time-quick-row{grid-template-columns:1fr 1fr;}
}


/* V34 - Ingreso de tiempo: autocomplete y navegación */
.time-period-toolbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  flex-wrap:wrap;
}
.time-period-left,
.time-period-right{
  display:flex;
  align-items:center;
  gap:.55rem;
  flex-wrap:wrap;
}
.time-period-title{
  font-weight:850;
  color:#172b4d;
  padding:.3rem .6rem;
  border-radius:999px;
  background:#f4f8ff;
}
.ticket-autocomplete{
  position:relative;
}
.ticket-suggestions{
  position:absolute;
  z-index:2600;
  left:0;
  right:0;
  top:calc(100% + 4px);
  max-height:320px;
  overflow:auto;
  border:1px solid #dfe1e6;
  border-radius:10px;
  background:#fff;
  box-shadow:0 14px 32px rgba(9,30,66,.18);
  padding:.35rem;
}
.ticket-suggestion-item{
  width:100%;
  display:grid;
  grid-template-columns:110px minmax(0,1fr);
  gap:.35rem .65rem;
  text-align:left;
  border:0;
  border-radius:8px;
  background:#fff;
  color:#172b4d;
  padding:.55rem .65rem;
}
.ticket-suggestion-item:hover{
  background:#f4f8ff;
}
.ticket-suggestion-item strong{
  color:#0c66e4;
  font-weight:850;
}
.ticket-suggestion-item span{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.ticket-suggestion-item small{
  grid-column:2;
  color:#6b778c;
}
.ticket-suggestion-empty{
  padding:.75rem;
  color:#6b778c;
  font-size:.88rem;
}
@media(max-width:900px){
  .time-period-left,
  .time-period-right{
    width:100%;
  }
  .time-period-right input,
  .time-period-right select{
    flex:1 1 160px;
  }
}


/* V35 - Ingreso de tiempo: cabecera compacta y calendario mensual */
.time-top-card{
  padding:.85rem 1rem;
}
.time-period-toolbar.compact{
  display:grid;
  grid-template-columns:auto minmax(220px,1fr) auto;
  align-items:center;
  gap:.75rem;
}
.time-period-left.compact,
.time-period-right.compact{
  display:flex;
  align-items:center;
  gap:.5rem;
  flex-wrap:wrap;
}
.time-period-title{
  font-size:.95rem;
  line-height:1.1;
}
.time-total-strip{
  display:flex;
  justify-content:center;
  gap:.5rem;
  flex-wrap:wrap;
}
.time-total-pill{
  min-width:115px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.6rem;
  padding:.42rem .65rem;
  border:1px solid #dfe1e6;
  border-radius:999px;
  background:#fff;
}
.time-total-pill span{
  color:#6b778c;
  font-size:.76rem;
  font-weight:800;
  text-transform:uppercase;
}
.time-total-pill strong{
  color:#172b4d;
  font-size:.98rem;
}
.time-total-pill.month{
  background:#f4fdf7;
  border-color:#baf3cf;
}
.time-calendar-panel{
  overflow:hidden;
}
.month-calendar-head{
  display:grid;
  grid-template-columns:repeat(7,1fr);
  gap:.35rem;
  margin-top:.75rem;
  color:#6b778c;
  font-size:.72rem;
  font-weight:850;
  text-transform:uppercase;
}
.month-calendar-head span{
  text-align:center;
  padding:.25rem;
}
.month-calendar-grid{
  display:grid;
  grid-template-columns:repeat(7,minmax(74px,1fr));
  gap:.35rem;
  margin-top:.35rem;
}
.month-day-card{
  min-height:74px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  text-decoration:none;
  padding:.45rem;
  border:1px solid #dfe1e6;
  border-radius:10px;
  background:#fff;
  color:#172b4d;
  transition:all .15s ease;
}
.month-day-card:hover{
  background:#f4f8ff;
  border-color:#85b8ff;
}
.month-day-card.empty{
  background:#f8fafc;
  border-style:dashed;
  opacity:.45;
}
.month-day-card.active{
  border-color:#0c66e4;
  box-shadow:0 0 0 2px rgba(12,102,228,.16);
}
.month-day-card.weekend-green,
.time-day-card.weekend-green{
  background:#e3fcef;
  border-color:#abf5d1;
}
.month-day-card.weekend-green:hover,
.time-day-card.weekend-green:hover{
  background:#d4f7e2;
}
.month-day-number{
  font-size:1rem;
  font-weight:900;
}
.month-day-name{
  color:#6b778c;
  font-size:.72rem;
  font-weight:800;
}
.month-day-hours{
  align-self:flex-end;
  color:#006644;
  font-size:.78rem;
  font-weight:850;
}
@media(max-width:1100px){
  .time-period-toolbar.compact{
    grid-template-columns:1fr;
  }
  .time-total-strip{
    justify-content:flex-start;
  }
}
@media(max-width:760px){
  .month-calendar-grid{
    grid-template-columns:repeat(2,minmax(120px,1fr));
  }
  .month-calendar-head{
    display:none;
  }
}


/* V36 - Ingreso de tiempo compacto y tabla completa */
.time-top-card.compact-single-row{
  padding:.65rem .75rem;
}
.time-period-toolbar.one-line{
  display:flex;
  align-items:center;
  gap:.45rem;
  flex-wrap:nowrap;
  overflow-x:auto;
  white-space:nowrap;
}
.compact-title{
  min-width:max-content;
  font-size:.9rem;
  padding:.32rem .6rem;
}
.time-date-input{
  width:145px;
  flex:0 0 145px;
}
.time-view-select{
  width:105px;
  flex:0 0 105px;
}
.time-period-toolbar.one-line .time-total-pill{
  min-width:108px;
  padding:.32rem .55rem;
  flex:0 0 auto;
}
.time-period-toolbar.one-line .time-total-pill span{
  font-size:.68rem;
}
.time-period-toolbar.one-line .time-total-pill strong{
  font-size:.9rem;
}
.ticket-pill{
  display:inline-flex;
  align-items:center;
  min-height:20px;
  padding:0 .45rem;
  border-radius:999px;
  font-size:.72rem;
  font-weight:850;
  white-space:nowrap;
}
#tiempoEntriesTable .col-titulo{
  min-width:260px;
}
#tiempoEntriesTable .col-comentario{
  min-width:240px;
}
#tiempoEntriesTable .col-rango{
  min-width:150px;
}
@media(max-width:900px){
  .time-period-toolbar.one-line{
    flex-wrap:wrap;
    overflow-x:visible;
  }
}


/* V37 - Kanban drag and drop */
.kanban-board{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:1rem;
  align-items:start;
}
.kanban-column{
  min-height:420px;
  border:1px solid #dfe1e6;
  border-radius:14px;
  background:#f8fafc;
  padding:.75rem;
  transition:background .15s ease,border-color .15s ease,box-shadow .15s ease;
}
.kanban-column.drag-over{
  background:#e9f2ff;
  border-color:#0c66e4;
  box-shadow:0 0 0 3px rgba(12,102,228,.14);
}
.kanban-column-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.75rem;
  margin-bottom:.75rem;
}
.kanban-column-title{
  color:#172b4d;
  font-weight:900;
  font-size:.95rem;
}
.kanban-count{
  min-width:26px;
  height:24px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  background:#e9f2ff;
  color:#0c66e4;
  font-size:.78rem;
  font-weight:900;
}
.kanban-drop-zone{
  min-height:340px;
  display:flex;
  flex-direction:column;
  gap:.65rem;
}
.kanban-ticket-card{
  cursor:grab;
  border:1px solid #dfe1e6;
  border-radius:12px;
  background:#fff;
  padding:.72rem;
  box-shadow:0 2px 8px rgba(9,30,66,.05);
  transition:transform .12s ease, box-shadow .12s ease, opacity .12s ease;
}
.kanban-ticket-card:active{
  cursor:grabbing;
}
.kanban-ticket-card:hover{
  transform:translateY(-1px);
  box-shadow:0 8px 18px rgba(9,30,66,.10);
}
.kanban-ticket-card.dragging{
  opacity:.55;
  transform:rotate(1deg);
}
.kanban-ticket-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.5rem;
  margin-bottom:.45rem;
}
.kanban-ticket-code{
  color:#0c66e4;
  font-weight:900;
  text-decoration:none;
}
.kanban-ticket-code:hover{
  text-decoration:underline;
}
.kanban-ticket-title{
  color:#172b4d;
  font-weight:750;
  line-height:1.25;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.kanban-ticket-meta{
  margin-top:.55rem;
  display:flex;
  flex-direction:column;
  gap:.2rem;
  color:#6b778c;
  font-size:.78rem;
}
.kanban-message{
  margin-bottom:1rem;
  padding:.65rem .85rem;
  border-radius:10px;
  font-weight:750;
}
.kanban-message.ok{
  background:#e3fcef;
  color:#006644;
  border:1px solid #abf5d1;
}
.kanban-message.error{
  background:#ffebe6;
  color:#bf2600;
  border:1px solid #ffbdad;
}


/* V38 - Exportación Excel global */
.datatable-export-btn{
  margin-left:auto;
  white-space:nowrap;
}
@media(max-width:900px){
  .datatable-export-btn{
    margin-left:0;
    width:100%;
  }
}


/* V46 - Ingreso de tiempo por rango Desde/Hasta */
.time-inline-label{
  color:#6b778c;
  font-size:.72rem;
  font-weight:850;
  text-transform:uppercase;
  margin-left:.15rem;
}
.range-calendar-grid{
  grid-template-columns:repeat(7,minmax(82px,1fr));
}
.filter-day-badge{
  display:inline-flex;
  align-items:center;
  margin-left:.5rem;
  padding:.18rem .5rem;
  border-radius:999px;
  background:#e9f2ff;
  color:#0c66e4;
  font-size:.72rem;
  font-weight:850;
}
@media(max-width:900px){
  .time-inline-label{
    width:auto;
  }
}


/* V51 - Menciones con nombre y correo */
.mention-item{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.75rem;
}
.mention-main{
  display:flex;
  flex-direction:column;
  min-width:0;
}
.mention-main strong{
  color:#172b4d;
  font-size:.88rem;
  line-height:1.1;
}
.mention-main small{
  color:#44546f;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.mention-meta{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  flex:0 0 auto;
  color:#6b778c;
}


/* V55 - Configuración del sistema */
.config-page{max-width:1400px}
.config-hero{
  display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;flex-wrap:wrap;
}
.config-hero-badges{
  display:flex;gap:.65rem;flex-wrap:wrap;
}
.config-counter{
  display:inline-flex;align-items:center;gap:.45rem;
  background:#fff;border:1px solid #dfe1e6;border-radius:999px;
  padding:.5rem .85rem;color:#44546f;font-size:.9rem;
  box-shadow:0 8px 22px rgba(9,30,66,.06);
}
.config-counter strong{color:#172b4d}

.config-accordion{
  display:flex;flex-direction:column;gap:1rem;
}
.config-accordion-item{
  border:1px solid #dfe1e6;border-radius:20px !important;overflow:hidden;
  box-shadow:0 12px 30px rgba(9,30,66,.06);background:#fff;
}
.config-accordion-item.priority{border-top:4px solid #36b37e}
.config-accordion-item.support{border-top:4px solid #0c66e4}
.config-accordion-item.state{border-top:4px solid #de350b}

.config-accordion .accordion-button{
  background:#fff !important;padding:1.15rem 1.25rem;border:0;box-shadow:none !important;
  display:flex;align-items:center;gap:1rem;
}
.config-accordion .accordion-button:not(.collapsed){
  color:#172b4d;background:linear-gradient(180deg,#fff 0%,#f7f9fc 100%) !important;
}
.config-accordion .accordion-button::after{
  margin-left:1rem;
}
.config-accordion-icon{
  width:44px;height:44px;border-radius:14px;display:inline-flex;align-items:center;justify-content:center;
  background:#f1f5f9;font-size:1.15rem;flex:0 0 auto;
}
.priority .config-accordion-icon{background:#e3fcef}
.support .config-accordion-icon{background:#e9f2ff}
.state .config-accordion-icon{background:#ffebe6}

.config-accordion-text{
  display:flex;flex-direction:column;gap:.1rem;min-width:0;flex:1 1 auto;text-align:left;
}
.config-accordion-title{
  font-size:1.05rem;font-weight:700;color:#172b4d;
}
.config-accordion-subtitle{
  font-size:.88rem;color:#6b778c;white-space:normal;
}
.config-accordion-count{
  flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;
  min-width:38px;height:38px;padding:0 .75rem;border-radius:999px;
  background:#f4f5f7;color:#172b4d;font-weight:700;font-size:.9rem;
  border:1px solid #dfe1e6;
}
.config-accordion .accordion-body{
  padding:1.25rem;background:#fbfcfe;
}

.config-card{
  background:#fff;border:1px solid #e6e9ef;border-radius:18px;padding:1rem 1rem 1.15rem;
  margin-bottom:1rem;box-shadow:0 8px 24px rgba(9,30,66,.04);
}
.config-card-header{
  display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.85rem;
}
.config-card-title{
  font-size:1rem;font-weight:700;color:#172b4d;
}
.config-card-subtitle{
  color:#6b778c;font-size:.88rem;margin-top:.15rem;
}
.config-list{
  display:flex;flex-direction:column;gap:.9rem;
}
.config-list-item{
  background:#fff;border:1px solid #e6e9ef;border-radius:18px;padding:1rem;
  box-shadow:0 8px 24px rgba(9,30,66,.04);
}
.config-inline-check{
  min-height:40px;display:flex;align-items:center;gap:.5rem;background:#f7f9fc;
  border:1px solid #dfe1e6;border-radius:12px;padding:.55rem .75rem;
}
.config-inline-check .form-check-input{
  float:none;margin:0;
}
.config-btn-primary{
  min-width:180px;border-radius:12px;font-weight:600;
}
.config-preview-pill{
  padding:.48rem .8rem;font-size:.85rem;min-width:110px;text-align:center;
}
.config-reference-tag{
  display:inline-flex;align-items:center;min-height:42px;padding:.55rem .85rem;
  border-radius:12px;background:#eef3ff;color:#0c66e4;border:1px solid #cfe0ff;
  font-weight:600;
}
.config-page .form-label{
  font-size:.8rem;font-weight:700;color:#42526e;margin-bottom:.35rem;
}
.config-page .form-control,
.config-page .form-select{
  min-height:42px;border-radius:12px;
}
.config-page .btn{
  min-height:42px;border-radius:12px;
}
@media (max-width: 991px){
  .config-accordion .accordion-button{
    align-items:flex-start;
  }
  .config-accordion-count{
    margin-left:auto;
  }
}
@media (max-width: 767px){
  .config-hero{
    flex-direction:column;
  }
  .config-accordion .accordion-button{
    padding:1rem;
  }
  .config-accordion-title{font-size:1rem}
  .config-accordion-subtitle{font-size:.82rem}
  .config-card,.config-list-item{
    padding:.9rem;
  }
}


/* V56 - Rediseño global de tablas y toolbars */
.modern-toolbar-card{
  overflow:visible;
}
.modern-toolbar{
  display:flex;
  justify-content:space-between;
  gap:1rem;
  align-items:flex-start;
  flex-wrap:wrap;
}
.modern-toolbar-left,
.modern-toolbar-right{
  display:flex;
  gap:.75rem;
  flex-wrap:wrap;
  align-items:center;
}
.modern-search-box{
  position:relative;
  min-width:280px;
  flex:1 1 320px;
}
.modern-search-box .form-control{
  min-height:42px;
  border-radius:12px;
  padding-left:2.4rem;
  background:#fff;
}
.modern-search-icon{
  position:absolute;
  left:.85rem;
  top:50%;
  transform:translateY(-50%);
  color:#6b778c;
  pointer-events:none;
}
.modern-toolbar-feedback{
  margin-top:.9rem;
  display:flex;
  justify-content:flex-end;
}
.toolbar-feedback-pill{
  display:inline-flex;
  align-items:center;
  gap:.45rem;
  padding:.45rem .8rem;
  border-radius:999px;
  background:#eef4ff;
  border:1px solid #d6e4ff;
  color:#0c66e4;
  font-size:.86rem;
  font-weight:700;
}

.modern-filter-dropdown{
  position:relative;
}
.modern-filter-button{
  min-height:42px;
  display:inline-flex;
  align-items:center;
  gap:.55rem;
  padding:.65rem .85rem;
  border-radius:12px;
  border:1px solid #dfe1e6;
  background:#fff;
  color:#172b4d;
  font-weight:600;
  transition:all .18s ease;
}
.modern-filter-button:hover{
  border-color:#b6c2cf;
  box-shadow:0 6px 16px rgba(9,30,66,.08);
}
.modern-filter-dropdown.is-open .modern-filter-button{
  border-color:#0c66e4;
  box-shadow:0 0 0 3px rgba(12,102,228,.12);
}
.filter-icon{opacity:.85}
.filter-arrow{font-size:.75rem;color:#6b778c}
.modern-filter-menu{
  position:absolute;
  top:calc(100% + .45rem);
  left:0;
  min-width:280px;
  max-width:320px;
  background:#fff;
  border:1px solid #dfe1e6;
  border-radius:16px;
  box-shadow:0 18px 40px rgba(9,30,66,.18);
  padding:.85rem;
  z-index:40;
  display:none;
}
.modern-filter-dropdown.is-open .modern-filter-menu{
  display:block;
  animation:fadeSlideDown .18s ease;
}
@keyframes fadeSlideDown{
  from{opacity:0;transform:translateY(-4px)}
  to{opacity:1;transform:translateY(0)}
}
.modern-filter-menu-head{
  font-size:.82rem;
  text-transform:uppercase;
  letter-spacing:.03em;
  color:#6b778c;
  font-weight:800;
  margin-bottom:.6rem;
}
.modern-filter-search{margin-bottom:.55rem}
.modern-filter-search .form-control{
  min-height:36px;
  border-radius:10px;
}
.modern-filter-options{
  display:flex;
  flex-direction:column;
  gap:.2rem;
  max-height:240px;
  overflow:auto;
}
.modern-filter-option{
  display:flex;
  align-items:center;
  gap:.55rem;
  padding:.45rem .5rem;
  border-radius:10px;
  cursor:pointer;
  transition:background .16s ease;
}
.modern-filter-option:hover{
  background:#f7f9fc;
}
.modern-filter-option input{
  accent-color:#0c66e4;
}
.modern-filter-footer{
  display:flex;
  justify-content:flex-end;
  padding-top:.55rem;
  margin-top:.55rem;
  border-top:1px solid #eef2f6;
}

.admin-enhanced-table{
  width:100%;
}
.admin-enhanced-table thead th,
.jira-issue-table.datamon-data-table thead th{
  background:#f7f9fc;
  color:#344563;
  font-size:.82rem;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.02em;
  border-bottom:1px solid #dfe1e6;
  white-space:nowrap;
}
.admin-enhanced-table tbody td,
.jira-issue-table.datamon-data-table tbody td{
  vertical-align:middle;
  border-bottom:1px solid #edf1f5;
}
.admin-enhanced-table tbody tr:nth-child(odd),
.jira-issue-table.datamon-data-table tbody tr:nth-child(odd){
  background:#fff;
}
.admin-enhanced-table tbody tr:nth-child(even),
.jira-issue-table.datamon-data-table tbody tr:nth-child(even){
  background:#fafbfd;
}
.admin-enhanced-table tbody tr:hover,
.jira-issue-table.datamon-data-table tbody tr:hover{
  background:#eef4ff !important;
}
.admin-enhanced-table.is-refreshing,
.jira-issue-table.datamon-data-table.is-refreshing{
  opacity:.72;
  transition:opacity .18s ease;
}
.admin-enhanced-table th.is-sortable,
.jira-issue-table.datamon-data-table th[data-sort]{
  cursor:pointer;
  user-select:none;
  position:relative;
  padding-right:1.3rem;
}
.admin-enhanced-table th.is-sortable::after,
.jira-issue-table.datamon-data-table th[data-sort]::after{
  content:"↕";
  position:absolute;
  right:.35rem;
  top:50%;
  transform:translateY(-50%);
  color:#97a0af;
  font-size:.75rem;
}
.admin-enhanced-table th.sort-asc::after,
.jira-issue-table.datamon-data-table th.sort-asc::after{
  content:"↑";
  color:#0c66e4;
}
.admin-enhanced-table th.sort-desc::after,
.jira-issue-table.datamon-data-table th.sort-desc::after{
  content:"↓";
  color:#0c66e4;
}
.muted-small{
  font-size:.78rem;
  color:#6b778c;
  margin-top:.12rem;
}
.table-actions-inline{
  display:inline-flex;
  gap:.35rem;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.mini-chip{
  display:inline-flex;
  align-items:center;
  min-height:28px;
  padding:.15rem .55rem;
  border-radius:999px;
  font-size:.78rem;
  font-weight:700;
  border:1px solid transparent;
}
.mini-chip-info{
  background:#e9f2ff;
  color:#0c66e4;
  border-color:#cfe0ff;
}
.mini-chip-soft{
  background:#f4f5f7;
  color:#44546f;
  border-color:#dfe1e6;
}
.status-open{
  background:#dcfff1 !important;
  color:#216e4e !important;
  border-color:#a6f4cf !important;
}
.status-closed{
  background:#ffebe6 !important;
  color:#ae2e24 !important;
  border-color:#ffbdad !important;
}
.listing-page .table-responsive{
  overflow:auto;
}
.listing-page .btn,
.listing-page .form-control{
  transition:all .18s ease;
}
.listing-page .btn:hover{
  transform:translateY(-1px);
}
.jira-issue-table.datamon-data-table{
  border-collapse:separate;
  border-spacing:0;
}
.jira-issue-table.datamon-data-table thead th:first-child{
  border-top-left-radius:12px;
}
.jira-issue-table.datamon-data-table thead th:last-child{
  border-top-right-radius:12px;
}
.table-card{
  border:1px solid #e9edf3;
}
.table-card .table-responsive{
  padding:0;
}

@media (max-width: 991px){
  .modern-toolbar{
    flex-direction:column;
    align-items:stretch;
  }
  .modern-toolbar-left,
  .modern-toolbar-right{
    width:100%;
  }
  .modern-toolbar-right{
    justify-content:flex-start;
  }
  .modern-search-box{
    min-width:100%;
  }
}
@media (max-width: 767px){
  .modern-filter-menu{
    left:0;
    right:auto;
    min-width:260px;
    max-width:min(92vw,320px);
  }
  .toolbar-feedback-pill{
    width:100%;
    justify-content:center;
  }
}


/* V57 - Crear ticket moderno + tablas visibles realmente rediseñadas */
.ticket-create-page{
  max-width:1420px;
}
.create-hero{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:1rem;
  margin-bottom:1.25rem;
  padding:1.15rem 1.25rem;
  border:1px solid #e6e9ef;
  border-radius:22px;
  background:linear-gradient(135deg,#ffffff 0%,#f7faff 100%);
  box-shadow:0 12px 34px rgba(9,30,66,.06);
}
.create-eyebrow{
  color:#0c66e4;
  font-size:.78rem;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.08em;
  margin-bottom:.2rem;
}
.create-hero-actions{
  display:flex;
  gap:.6rem;
  flex-wrap:wrap;
}
.create-ticket-grid{
  display:grid;
  grid-template-columns:minmax(300px,.9fr) minmax(0,1.35fr);
  gap:1rem;
  align-items:start;
}
.create-section-card{
  border:1px solid #e1e6ef;
  border-radius:22px;
  background:#fff;
  padding:1.15rem;
  box-shadow:0 14px 34px rgba(9,30,66,.06);
}
.create-section-main{
  grid-row:span 2;
}
.create-section-head{
  display:flex;
  align-items:flex-start;
  gap:.85rem;
  padding-bottom:.9rem;
  margin-bottom:1rem;
  border-bottom:1px solid #eef2f6;
}
.create-section-icon{
  width:42px;
  height:42px;
  border-radius:14px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#e9f2ff;
  color:#0c66e4;
  font-size:1.1rem;
  flex:0 0 auto;
}
.create-section-title{
  color:#172b4d;
  font-size:1.05rem;
  font-weight:900;
}
.create-section-subtitle{
  color:#6b778c;
  font-size:.88rem;
  margin-top:.1rem;
}
.create-info-note{
  padding:.9rem 1rem;
  border:1px solid #d6e4ff;
  border-radius:16px;
  background:#eef4ff;
  color:#0c66e4;
}
.create-title-input{
  font-weight:750;
  min-height:46px;
}
.create-description-input{
  resize:vertical;
  min-height:245px;
}
.create-upload-box{
  border:2px dashed #b6c2cf;
  border-radius:18px;
  background:#fbfdff;
  padding:1rem;
  transition:all .18s ease;
}
.create-upload-box:hover{
  border-color:#0c66e4;
  background:#f4f8ff;
}
.create-upload-label{
  display:flex;
  align-items:center;
  gap:.85rem;
  cursor:pointer;
  margin:0;
}
.upload-clip{
  width:44px;
  height:44px;
  border-radius:14px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#e9f2ff;
  color:#0c66e4;
  font-size:1.25rem;
}
.create-upload-label strong{
  display:block;
  color:#172b4d;
  font-weight:900;
}
.create-upload-label small{
  display:block;
  color:#6b778c;
}
.create-file-input{
  display:block;
  width:100%;
  margin-top:.9rem;
}
.file-feedback{
  margin-top:.65rem;
  padding:.5rem .65rem;
  border-radius:12px;
  background:#f4f5f7;
  color:#6b778c;
  font-size:.86rem;
  font-weight:700;
}
.file-feedback.has-files{
  background:#e3fcef;
  color:#216e4e;
}
.create-action-bar{
  position:sticky;
  bottom:0;
  z-index:20;
  margin-top:1rem;
  display:flex;
  justify-content:flex-end;
  gap:.75rem;
  padding:1rem;
  border:1px solid #e1e6ef;
  border-radius:18px;
  background:rgba(255,255,255,.94);
  backdrop-filter:blur(10px);
  box-shadow:0 -8px 28px rgba(9,30,66,.08);
}
.create-submit-btn{
  min-width:150px;
  font-weight:800;
}

/* V57 - table module stronger visual */
.modern-table-module{
  margin-top:1rem;
}
.modern-table-module .datatable-toolbar{
  padding:1rem;
  border:1px solid #e1e6ef;
  border-radius:18px;
  background:linear-gradient(135deg,#ffffff 0%,#f8fbff 100%);
  box-shadow:0 10px 26px rgba(9,30,66,.05);
}
.modern-table-module .datatable-search{
  min-height:42px;
  border-radius:12px;
  border-color:#d6dce7;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.7);
}
.modern-table-module .datatable-search input{
  font-size:.92rem;
}
.modern-table-module .dt-column-dropdown-toggle,
.modern-table-module .datatable-export-btn{
  min-height:42px;
  border-radius:12px;
  font-weight:800;
}
.modern-table-module .datatable-export-btn{
  background:#216e4e !important;
  border-color:#216e4e !important;
  color:#fff !important;
}
.modern-table-module .jira-table-shell,
.modern-table-module .table-card{
  margin-top:.9rem;
  border:1px solid #e1e6ef;
  border-radius:20px;
  overflow:hidden;
  box-shadow:0 14px 34px rgba(9,30,66,.06);
  background:#fff;
}
.jira-issue-table.datamon-data-table{
  width:100%;
  border-collapse:separate !important;
  border-spacing:0 !important;
  font-size:.9rem;
}
.jira-issue-table.datamon-data-table thead th{
  position:sticky;
  top:0;
  z-index:5;
  padding:.82rem .75rem;
  background:#eef3fb !important;
  color:#344563 !important;
  border-bottom:1px solid #cfd7e6 !important;
  font-weight:900 !important;
  text-transform:uppercase;
  letter-spacing:.035em;
  white-space:nowrap;
}
.jira-issue-table.datamon-data-table tbody td{
  padding:.74rem .75rem;
  border-bottom:1px solid #edf1f6;
}
.jira-issue-table.datamon-data-table tbody tr:nth-child(odd) td{
  background:#ffffff;
}
.jira-issue-table.datamon-data-table tbody tr:nth-child(even) td{
  background:#f8fafc;
}
.jira-issue-table.datamon-data-table tbody tr:hover td{
  background:#eaf3ff !important;
}
.issue-code{
  font-weight:900;
  color:#0c66e4 !important;
  text-decoration:none;
}
.issue-code:hover{
  text-decoration:underline;
}
.jira-filter-bar{
  padding:1rem !important;
  border:1px solid #e1e6ef;
  border-radius:18px;
  background:#fff;
  box-shadow:0 10px 26px rgba(9,30,66,.04);
}
.jira-filter-chip,
.jira-filter-text,
.jira-filter-dates input{
  min-height:40px !important;
  border-radius:12px !important;
}
.jira-filter-chip{
  display:inline-flex;
  align-items:center;
  gap:.45rem;
}
.jira-filter-chip::before{
  content:"🔽";
  font-size:.74rem;
  opacity:.75;
}
.jira-filter-menu{
  border-radius:16px !important;
  box-shadow:0 18px 40px rgba(9,30,66,.18) !important;
}
.btn-primary{
  background:#0c66e4;
  border-color:#0c66e4;
}
.jira-clear-link{
  display:inline-flex;
  align-items:center;
  min-height:40px;
  padding:.5rem .85rem;
  border-radius:12px;
  background:#f4f5f7;
  color:#344563 !important;
  text-decoration:none !important;
  font-weight:800;
}
.jira-clear-link:hover{
  background:#e9edf5;
}
.status-open,.priority-low{
  background:#dcfff1 !important;
  color:#216e4e !important;
  border-color:#a6f4cf !important;
}
.priority-medium{
  background:#e9f2ff !important;
  color:#0c66e4 !important;
  border-color:#cfe0ff !important;
}
.priority-high{
  background:#fff7d6 !important;
  color:#7f5f01 !important;
  border-color:#f5cd47 !important;
}
.priority-critical{
  background:#ffebe6 !important;
  color:#ae2e24 !important;
  border-color:#ffbdad !important;
}
.status-progress{
  background:#e9f2ff !important;
  color:#0c66e4 !important;
  border-color:#cfe0ff !important;
}
.status-closed{
  background:#f4f5f7 !important;
  color:#44546f !important;
  border-color:#dfe1e6 !important;
}
@media(max-width:991px){
  .create-ticket-grid{
    grid-template-columns:1fr;
  }
  .create-section-main{
    grid-row:auto;
  }
  .create-hero{
    flex-direction:column;
  }
}
@media(max-width:767px){
  .create-action-bar{
    position:static;
    flex-direction:column-reverse;
  }
  .create-action-bar .btn{
    width:100%;
  }
  .modern-table-module .datatable-toolbar{
    align-items:stretch;
  }
  .modern-table-module .datatable-export-btn{
    width:100%;
  }
}


/* V58 - módulos administrativos + crear ticket vertical + panel métricas */
.single-line-toolbar{
  flex-wrap:nowrap !important;
  align-items:center;
}
.single-line-toolbar .modern-toolbar-left{
  flex-wrap:nowrap !important;
  flex:1 1 auto;
  overflow:visible;
}
.single-line-toolbar .modern-toolbar-right{
  flex-wrap:nowrap !important;
  flex:0 0 auto;
}
.single-line-toolbar .modern-filter-dropdown{
  flex:0 0 auto;
}
.single-line-toolbar .modern-search-box{
  min-width:240px;
  max-width:340px;
  flex:0 0 300px;
}

.vertical-create-page .create-ticket-form{
  display:flex;
  flex-direction:column;
  gap:1rem;
}
.vertical-create-page .create-ticket-grid{
  display:block;
}
.vertical-create-page .linear-fields{
  display:flex;
  flex-direction:column;
  gap:1rem;
}
.vertical-create-page .linear-field{
  display:flex;
  flex-direction:column;
  gap:.38rem;
}
.vertical-create-page .create-section-card{
  padding:1.2rem 1.25rem;
}
.rich-editor-shell{
  border:1px solid #dfe1e6;
  border-radius:18px;
  overflow:hidden;
  background:#fff;
}
.rich-editor-toolbar{
  display:flex;
  flex-wrap:wrap;
  gap:.45rem;
  padding:.75rem;
  border-bottom:1px solid #eef2f6;
  background:#f7f9fc;
}
.rich-editor-content{
  min-height:260px;
  padding:1rem;
  outline:none;
  font-size:.95rem;
  line-height:1.55;
  color:#172b4d;
}
.rich-editor-content:empty:before{
  content:attr(data-placeholder);
  color:#97a0af;
}
.rich-editor-content p{
  margin:0 0 .75rem;
}
.rich-inline-image{
  display:block;
  max-width:100%;
  height:auto;
  border-radius:14px;
  border:1px solid #dfe1e6;
  box-shadow:0 8px 22px rgba(9,30,66,.08);
  margin:.5rem 0;
}
.metrics-page .filters-row{
  display:flex;
  flex-wrap:nowrap;
  gap:.75rem;
  align-items:flex-end;
  overflow:auto;
}
.metrics-page .filters-row .field{
  min-width:170px;
  flex:0 0 auto;
}
.metrics-kpis{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:1rem;
  margin:1rem 0;
}
.metric-kpi{
  background:#fff;
  border:1px solid #e1e6ef;
  border-radius:20px;
  padding:1rem 1.1rem;
  box-shadow:0 12px 28px rgba(9,30,66,.05);
}
.metric-kpi-label{
  color:#6b778c;
  font-weight:800;
  font-size:.82rem;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.metric-kpi-value{
  color:#172b4d;
  font-size:1.8rem;
  font-weight:900;
  line-height:1.1;
  margin-top:.25rem;
}
.metric-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1rem;
}
.metric-card{
  background:#fff;
  border:1px solid #e1e6ef;
  border-radius:20px;
  padding:1rem;
  box-shadow:0 12px 30px rgba(9,30,66,.05);
}
.metric-card h3{
  margin:0 0 .85rem;
  font-size:1rem;
  font-weight:900;
  color:#172b4d;
}
.metric-card canvas{
  width:100% !important;
  height:320px !important;
}
.metric-card.full-span{
  grid-column:1/-1;
}
@media(max-width:1200px){
  .single-line-toolbar,
  .single-line-toolbar .modern-toolbar-left,
  .single-line-toolbar .modern-toolbar-right,
  .metrics-page .filters-row{
    flex-wrap:wrap !important;
  }
}
@media(max-width:991px){
  .metrics-kpis{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .metric-grid{
    grid-template-columns:1fr;
  }
}
@media(max-width:767px){
  .metrics-kpis{
    grid-template-columns:1fr;
  }
}


/* V60 - Mantenimiento de ticket similar a creación + imágenes pegadas en comentarios */
.ticket-maintenance-page{
  max-width:1420px;
}
.maintenance-hero{
  margin-bottom:1rem;
}
.maintenance-ticket-layout{
  display:grid;
  grid-template-columns:minmax(0,1.45fr) minmax(300px,.55fr);
  gap:1rem;
  align-items:start;
}
.maintenance-section-card{
  margin-bottom:1rem;
}
.maintenance-section-card .collapsible-title{
  display:flex;
  align-items:center;
  gap:.6rem;
  cursor:pointer;
}
.create-section-icon.mini{
  width:32px;
  height:32px;
  min-width:32px;
  border-radius:11px;
  font-size:.95rem;
}
.rich-description-body{
  color:#172b4d;
  line-height:1.55;
  font-size:.95rem;
}
.rich-description-body img{
  max-width:100%;
  height:auto;
  display:block;
  margin:.75rem 0;
  border-radius:14px;
  border:1px solid #dfe1e6;
  box-shadow:0 8px 22px rgba(9,30,66,.08);
}
.ticket-maintenance-page .sidebar-panel{
  position:sticky;
  top:1rem;
}
.ticket-maintenance-page .side-card{
  border:1px solid #e1e6ef;
  border-radius:20px;
  box-shadow:0 14px 34px rgba(9,30,66,.06);
}
.image-aware-preview{
  align-items:center;
}

/* Login corporativo */
.login-page-modern{
  position:relative;
  overflow:hidden;
  grid-template-columns:minmax(0,1.12fr) minmax(430px,.88fr);
  min-height:100vh;
  background:#edf3fa;
}
.login-hero-modern{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  min-height:100vh;
  padding:clamp(2rem,5vw,5rem);
  align-items:center;
  justify-content:center;
  border-right:0;
  background-color:#092a50;
  background-image:
    linear-gradient(135deg,rgba(5,23,48,.97),rgba(12,71,132,.92)),
    repeating-linear-gradient(0deg,transparent 0 47px,rgba(147,197,253,.15) 48px),
    repeating-linear-gradient(90deg,transparent 0 47px,rgba(147,197,253,.15) 48px);
}
.login-hero-modern::before,
.login-hero-modern::after{
  content:"";
  position:absolute;
  z-index:-1;
  width:70%;
  height:1px;
  background:linear-gradient(90deg,transparent,rgba(147,197,253,.8),transparent);
  box-shadow:0 0 18px rgba(96,165,250,.55);
  transform:rotate(-28deg);
}
.login-hero-modern::before{top:25%;left:-10%}
.login-hero-modern::after{right:-8%;bottom:22%;transform:rotate(24deg)}
.login-data-lines{
  position:absolute;
  inset:0;
  z-index:-1;
  opacity:.52;
  background:
    radial-gradient(circle at 18% 22%,rgba(147,197,253,.75) 0 2px,transparent 3px),
    radial-gradient(circle at 76% 35%,rgba(147,197,253,.7) 0 2px,transparent 3px),
    radial-gradient(circle at 35% 78%,rgba(147,197,253,.65) 0 2px,transparent 3px),
    radial-gradient(circle at 88% 82%,rgba(147,197,253,.6) 0 2px,transparent 3px);
}
.login-brand-stage{
  position:relative;
  z-index:2;
  width:min(100%,760px);
  padding:clamp(1.4rem,3vw,2.5rem);
  border:1px solid rgba(255,255,255,.84);
  border-radius:16px;
  background:rgba(255,255,255,.97);
  box-shadow:0 32px 80px rgba(2,18,43,.32);
  animation:loginRise .65s ease-out both;
}
.login-brand-stage .login-corporate-image{
  display:block;
  width:100%;
  max-width:none;
  height:auto;
  object-fit:contain;
}
.login-visual-copy{
  display:grid;
  gap:.4rem;
  margin-top:1.2rem;
  padding-top:1.1rem;
  border-top:1px solid #e4eaf2;
  color:#5a6b80;
}
.login-visual-copy span{
  color:#cf363a;
  font-size:.72rem;
  font-weight:900;
  letter-spacing:.12em;
}
.login-visual-copy strong{
  color:#17375e;
  font-size:clamp(1rem,1.6vw,1.25rem);
  line-height:1.35;
  letter-spacing:0;
}
.login-card-wrap-modern{
  position:relative;
  min-height:100vh;
  padding:clamp(1.25rem,4vw,4rem);
  background:
    linear-gradient(145deg,rgba(255,255,255,.86),rgba(232,241,251,.94)),
    repeating-linear-gradient(90deg,transparent 0 59px,rgba(51,103,159,.05) 60px);
}
.login-card-wrap-modern::before{
  content:"";
  position:absolute;
  inset:10% 8%;
  border:1px solid rgba(91,132,177,.12);
  border-radius:18px;
  pointer-events:none;
}
.login-card-modern{
  position:relative;
  z-index:1;
  width:100%;
  max-width:460px;
  padding:clamp(1.75rem,3vw,2.65rem);
  border:1px solid rgba(255,255,255,.92);
  border-radius:16px;
  background:rgba(255,255,255,.88);
  box-shadow:0 24px 70px rgba(15,42,78,.16);
  backdrop-filter:blur(18px);
  animation:loginRise .55s .08s ease-out both;
}
.login-card-modern .login-company-name{
  margin-bottom:1.4rem;
  color:#2467ad;
  font-size:.72rem;
  font-weight:900;
  letter-spacing:.13em;
}
.login-card-title{
  margin:0 0 .45rem;
  color:#10233f;
  font-size:clamp(1.8rem,3vw,2.25rem);
  font-weight:850;
  line-height:1.12;
  letter-spacing:0;
}
.login-card-subtitle{
  margin:0 0 1.8rem;
  color:#64748b;
  font-size:.94rem;
  line-height:1.55;
}
.login-form{
  display:grid;
  gap:1rem;
}
.login-validation:empty{display:none}
.login-field{
  display:grid;
  gap:.42rem;
}
.login-field .form-label{
  margin:0;
  color:#334155;
  font-size:.8rem;
  font-weight:800;
}
.login-input-wrap{
  position:relative;
  display:flex;
  align-items:center;
  border:1px solid #cad5e3;
  border-radius:12px;
  background:#fff;
  transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease;
}
.login-input-wrap:hover{border-color:#9eb4ce}
.login-input-wrap:focus-within{
  border-color:#3b82f6;
  box-shadow:0 0 0 4px rgba(59,130,246,.12);
  transform:translateY(-1px);
}
.login-input-icon{
  position:absolute;
  left:.88rem;
  width:18px;
  color:#66809f;
  font-size:.9rem;
  font-weight:900;
  line-height:1;
  text-align:center;
  pointer-events:none;
}
.login-lock-icon{
  width:13px;
  height:11px;
  margin-left:2px;
  border:2px solid currentColor;
  border-radius:3px;
}
.login-lock-icon::before{
  content:"";
  position:absolute;
  left:2px;
  top:-9px;
  width:9px;
  height:9px;
  border:2px solid currentColor;
  border-bottom:0;
  border-radius:6px 6px 0 0;
}
.login-input{
  height:50px;
  padding-left:2.55rem!important;
  padding-right:2.9rem!important;
  border:0!important;
  border-radius:12px!important;
  outline:0!important;
  background:transparent!important;
  box-shadow:none!important;
  color:#152a46;
}
.login-input::placeholder{color:#94a3b8}
.login-password-toggle{
  position:absolute;
  right:.55rem;
  display:grid;
  place-items:center;
  width:34px;
  height:34px;
  padding:0;
  border:0;
  border-radius:8px;
  background:#eff5fc;
  color:#476685;
  cursor:pointer;
  transition:background .18s ease,color .18s ease;
}
.login-password-toggle span{
  width:15px;
  height:10px;
  border:2px solid currentColor;
  border-radius:50%;
}
.login-password-toggle span::after{
  content:"";
  display:block;
  width:3px;
  height:3px;
  margin:2px auto;
  border-radius:50%;
  background:currentColor;
}
.login-password-toggle:hover,
.login-password-toggle.is-visible{
  background:#dceafa;
  color:#1456a0;
}
.login-remember{
  display:flex;
  align-items:center;
  gap:.55rem;
  width:max-content;
  color:#475569;
  font-size:.86rem;
  cursor:pointer;
}
.login-remember input{
  width:16px;
  height:16px;
  accent-color:#2563eb;
}
.login-submit{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:.6rem;
  height:50px;
  margin-top:.2rem;
  border:0;
  border-radius:12px;
  background:linear-gradient(135deg,#2563eb,#0b5cab);
  box-shadow:0 12px 24px rgba(37,99,235,.24);
  color:#fff;
  font-weight:850;
  cursor:pointer;
  transition:transform .18s ease,box-shadow .18s ease,filter .18s ease;
}
.login-submit-arrow{transition:transform .18s ease}
.login-submit:hover{
  transform:translateY(-2px);
  box-shadow:0 16px 30px rgba(37,99,235,.32);
  filter:saturate(1.08);
}
.login-submit:hover .login-submit-arrow{transform:translateX(3px)}
.login-submit:active{transform:translateY(0)}
.login-card-footer{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:.45rem;
  margin-top:1.5rem;
  padding-top:1.15rem;
  border-top:1px solid #e7edf4;
  color:#77869a;
  font-size:.72rem;
  font-weight:700;
}
.login-security-dot{
  width:7px;
  height:7px;
  border-radius:50%;
  background:#22a06b;
  box-shadow:0 0 0 4px rgba(34,160,107,.12);
}
@keyframes loginRise{
  from{opacity:0;transform:translateY(16px)}
  to{opacity:1;transform:translateY(0)}
}
@media(max-width:991px){
  .login-page-modern{grid-template-columns:1fr}
  .login-card-wrap-modern{min-height:100vh}
  .login-hero-modern{display:none}
}
@media(max-width:520px){
  .login-card-wrap-modern{padding:1rem}
  .login-card-wrap-modern::before{display:none}
  .login-card-modern{padding:1.5rem;border-radius:14px}
}
@media(prefers-reduced-motion:reduce){
  .login-brand-stage,.login-card-modern{animation:none}
  .login-input-wrap,.login-submit,.login-submit-arrow{transition:none}
}

/* Plataforma UX: patrón común para tablas y cards */
.dtm-table-wrap,
.table-responsive{
  max-width:100%;
  overflow:auto;
  border-radius:12px;
}
.compact-table,
.dtm-table{
  width:100%;
  border-collapse:separate;
  border-spacing:0;
}
.compact-table thead th,
.dtm-table thead th{
  position:sticky;
  top:0;
  z-index:2;
  background:#eef2f7;
  color:#172b4d;
  font-size:.74rem;
  text-transform:uppercase;
  letter-spacing:.03em;
  white-space:nowrap;
}
.compact-table tbody td,
.dtm-table tbody td{
  vertical-align:middle;
}
.dtm-action-row{
  display:flex;
  gap:.5rem;
  align-items:center;
  flex-wrap:wrap;
}
@media(max-width:760px){
  .soft-card,
  .widget-card,
  .work-section{
    border-radius:10px !important;
    padding:12px !important;
  }
  .jira-filter-bar{
    gap:.5rem !important;
  }
  .jira-filter-dropdown{
    min-width:min(100%, 220px);
  }
  .jira-filter-chip{
    max-width:100%;
  }
  .compact-table,
  .dtm-table{
    font-size:.78rem;
  }
  .dtm-action-row .btn{
    flex:1 1 auto;
  }
}
.comment-image-preview-thumb{
  width:76px;
  height:56px;
  object-fit:cover;
  border-radius:10px;
  border:1px solid #dfe1e6;
  box-shadow:0 4px 12px rgba(9,30,66,.12);
  background:#fff;
}
.paste-preview-name{
  flex:1 1 auto;
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
@media(max-width:1100px){
  .maintenance-ticket-layout{
    grid-template-columns:1fr;
  }
  .ticket-maintenance-page .sidebar-panel{
    position:static;
  }
}


/* V61 - Ajustes finales detalle ticket, comentarios inline y métricas */
.ticket-maintenance-page{
  max-width:none;
}
.maintenance-hero{
  box-shadow:none !important;
  border:0 !important;
  border-radius:0 !important;
  background:#fff !important;
  padding:.75rem 0 1rem !important;
  margin-bottom:.5rem !important;
}
.maintenance-hero .page-title{
  font-size:1.55rem;
  line-height:1.2;
}
.maintenance-ticket-layout{
  grid-template-columns:minmax(0,1fr) 288px !important;
  gap:1.25rem !important;
}
.ticket-maintenance-page .create-section-card,
.ticket-maintenance-page .maintenance-section-card{
  border:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
  background:#fff !important;
  padding:.8rem 0 1.1rem !important;
  border-bottom:1px solid #e6e9ef !important;
}
.ticket-maintenance-page .collapsible-title{
  font-weight:800;
  color:#172b4d;
  min-height:34px;
}
.ticket-maintenance-page .create-section-icon.mini{
  width:22px !important;
  height:22px !important;
  min-width:22px !important;
  border-radius:7px !important;
  font-size:.75rem !important;
}
.ticket-maintenance-page .sidebar-panel{
  position:sticky;
  top:1rem;
}
.ticket-maintenance-page .side-card{
  border:1px solid #dfe1e6 !important;
  border-radius:12px !important;
  box-shadow:none !important;
  padding:.75rem !important;
}
.ticket-maintenance-page .compact-meta{
  grid-template-columns:1fr !important;
  gap:.15rem !important;
}
.ticket-maintenance-page .compact-meta .label{
  color:#6b778c;
  font-size:.78rem;
  font-weight:800;
  margin-top:.55rem;
}
.ticket-maintenance-page .compact-meta .label + div{
  font-size:.88rem;
  color:#172b4d;
}
.ticket-maintenance-page .attach-grid{
  display:flex !important;
  gap:.55rem !important;
  overflow:auto !important;
  grid-template-columns:none !important;
  padding-bottom:.35rem;
}
.ticket-maintenance-page .attach-card{
  min-width:150px;
  max-width:170px;
  padding:.45rem !important;
  border-radius:8px !important;
  box-shadow:none !important;
}
.ticket-maintenance-page .comment-inline-image,
.ticket-maintenance-page .rich-comment-text img{
  max-width:100%;
  border-radius:10px;
  border:1px solid #dfe1e6;
  box-shadow:0 6px 18px rgba(9,30,66,.10);
  margin:.55rem 0;
}
.rich-comment-editor{
  min-height:120px;
  max-height:420px;
  overflow:auto;
  outline:none;
  white-space:pre-wrap;
}
.rich-comment-editor:empty:before{
  content:attr(data-placeholder);
  color:#97a0af;
}
.rich-comment-editor img{
  max-width:100%;
  height:auto;
  display:block;
  border-radius:10px;
  border:1px solid #dfe1e6;
  box-shadow:0 6px 18px rgba(9,30,66,.10);
  margin:.5rem 0;
}
.rich-comment-text{
  line-height:1.55;
}
.rich-comment-text img{
  max-width:100%;
  height:auto;
  display:block;
}
.metrics-filter-card{
  overflow:visible;
  border:1px solid #e1e6ef;
  border-radius:18px;
  box-shadow:0 10px 28px rgba(9,30,66,.05);
}
.metrics-filters-row{
  align-items:end !important;
  gap:.65rem !important;
}
.metrics-filters-row .field{
  min-width:145px !important;
}
.metrics-filters-row .form-label{
  color:#42526e;
  font-size:.78rem;
  font-weight:900;
}
.metrics-filters-row .form-control,
.metrics-filters-row .form-select{
  min-height:40px;
  border-radius:12px;
}
.metrics-actions-field{
  display:flex;
  gap:.45rem;
  align-items:end;
  min-width:230px !important;
}
.metrics-actions-field .btn,
.metrics-actions-field a.btn{
  margin-top:0 !important;
  min-height:40px;
  white-space:nowrap;
}
.metrics-empty-state{
  margin-top:1rem;
  color:#6b778c;
  text-align:center;
  padding:1.25rem;
  border:1px dashed #b6c2cf;
}
@media(max-width:1050px){
  .maintenance-ticket-layout{
    grid-template-columns:1fr !important;
  }
  .ticket-maintenance-page .sidebar-panel{
    position:static;
  }
}


/* V64 - Comentarios con imágenes pegadas inline */
.rich-comment-editor{
  min-height:120px;
  max-height:420px;
  overflow:auto;
  outline:none;
  white-space:pre-wrap;
}
.rich-comment-editor:empty:before{
  content:attr(data-placeholder);
  color:#97a0af;
}
.rich-comment-editor img,
.comment-inline-image,
.rich-comment-text img{
  max-width:100%;
  height:auto;
  display:block;
  border-radius:10px;
  border:1px solid #dfe1e6;
  box-shadow:0 6px 18px rgba(9,30,66,.10);
  margin:.55rem 0;
}
.rich-comment-text{
  line-height:1.55;
}
.comment-image-preview-thumb{
  width:76px;
  height:56px;
  object-fit:cover;
  border-radius:10px;
  border:1px solid #dfe1e6;
  box-shadow:0 4px 12px rgba(9,30,66,.12);
  background:#fff;
}
.paste-preview-name{
  flex:1 1 auto;
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.image-aware-preview{
  align-items:center;
}
