﻿:root{
  --sidebar-width:240px;
  --bg:#F8F9FB;
  --surface:#ffffff;
  --surface-soft:#f9fafc;
  --surface-blue:#f1f6ff;
  --border:#E5E7EB;
  --border-strong:#D1D5DB;
  --text:#111827;
  --muted:#6B7280;
  --primary:#dc3545;
  --primary-dark:#c82333;
  --primary-soft:#fff1f2;
  --success:#16A34A;
  --success-soft:#f0fdf4;
  --warning:#F59E0B;
  --warning-soft:#fffbeb;
  --danger:#D32F2F;
  --danger-dark:#B71C1C;
  --danger-soft:#fef2f2;
  --sidebar:#111827;
  --sidebar-soft:#1f2937;
  --shadow:0 4px 16px rgba(16,24,40,.08);
  --shadow-soft:0 1px 4px rgba(16,24,40,.06),0 4px 12px rgba(16,24,40,.04);
  --radius:10px;
  --radius-sm:6px;
}
*{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:#dc3545;color:white;box-shadow:0 10px 25px rgba(220,53,69,.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:.65rem;color:#d1d5db;text-decoration:none;padding:7px 10px;border-radius:7px;font-weight:600;font-size:.8125rem;margin-bottom:2px;transition:background .12s ease,color .12s ease}.side-link:hover{background:rgba(255,255,255,.07);color:#f1f5f9;text-decoration:none}.side-link.active{background:rgba(220,53,69,.22);color:#fda4af;border-left:2px solid #dc3545;padding-left:8px;font-weight:700}.side-icon{width:16px;text-align:center;font-style:normal;flex-shrink:0}.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.25rem}.page-title{font-size:1.5rem;font-weight:800;letter-spacing:-.02em;color:#101828}.page-subtitle{color:var(--muted);margin-top:.2rem;font-size:.875rem}.muted,.small-muted{color:var(--muted)}.small-muted{font-size:.8125rem}
.card,.soft-card{background:#ffffff;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:.9375rem;font-weight:700;margin-bottom:.875rem;color:#182230}.divider{height:1px;background:var(--border);margin:1rem 0}
.ticket-count-strip{display:flex;flex-wrap:wrap;align-items:center;gap:0;margin:0 0 .875rem;color:var(--muted);font-size:.78rem}.ticket-count-strip>div{display:inline-flex;align-items:center;gap:.4rem;padding:.15rem .875rem .15rem 0;margin-right:.875rem;border-right:1px solid var(--border)}.ticket-count-strip>div:last-child{border-right:0}.ticket-count-strip svg{width:15px;height:15px;color:var(--primary)}.ticket-count-strip strong{font-size:.9rem;color:var(--text);font-variant-numeric:tabular-nums}.ticket-count-strip span{white-space:nowrap}
.kpi-card{padding:14px 16px;height:100%;position:relative;border-top:3px solid var(--primary)}.kpi-card:after{content:none}.kpi-label{font-size:.6875rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-weight:700;margin-bottom:6px}.kpi-value{font-size:1.75rem;font-weight:800;line-height:1;font-variant-numeric:tabular-nums}.kpi-trend{font-size:.72rem;margin-top:4px;font-weight:600}.kpi-trend.up{color:var(--success)}.kpi-trend.down{color:var(--danger)}.kpi-trend.flat{color:var(--muted)}
.btn{border-radius:7px;font-weight:700;padding:.45rem .875rem;font-size:.8125rem}.btn-sm{padding:.3rem .65rem;border-radius:6px;font-size:.75rem}.btn-lg{padding:.6rem 1.1rem;font-size:.9rem}.btn-primary{background:var(--primary);border-color:var(--primary);box-shadow:0 2px 8px rgba(220,53,69,.18)}.btn-primary:hover{background:var(--primary-dark);border-color:var(--primary-dark);box-shadow:0 4px 14px rgba(220,53,69,.25)}.btn-dark{background:#111827;border-color:#111827}.btn-soft{background:var(--primary-soft);color:var(--primary);border:1px solid #fecdd3}.btn-soft:hover{background:#ffe4e6;color:var(--primary-dark);text-decoration:none}.btn-success-soft{background:var(--success-soft);color:#166534;border:1px solid #bbf7d0}.btn-success-soft:hover{background:#dcfce7}.btn-danger-soft{background:var(--danger-soft);color:#991b1b;border:1px solid #fca5a5}.btn-danger-soft:hover{background:#fee2e2}.btn-outline-secondary{border-color:var(--border-strong);color:#374151;background:#fff}.btn-outline-secondary:hover{background:#f9fafb;color:#111827;border-color:#9ca3af}
.form-control,.form-select{border-radius:7px;border-color:var(--border-strong);padding:.45rem .75rem;font-size:.875rem}.form-control:focus,.form-select:focus{border-color:#fda4af;box-shadow:0 0 0 3px rgba(220,53,69,.12)}.form-label{font-size:.8125rem;font-weight:600;color:#374151;margin-bottom:.3rem}.input-help{font-size:.78rem;color:var(--muted);margin-top:.2rem}.validation-summary-errors,.text-danger{font-size:.875rem}
.table-card{padding:0;overflow:hidden}.table-card .table{margin-bottom:0}.table{color:var(--text);font-size:.875rem}.table th{font-size:.6875rem;text-transform:uppercase;color:var(--muted);letter-spacing:.05em;background:#f9fafb;border-bottom:2px solid var(--border);font-weight:700;padding:.6rem .75rem}.table td{border-color:var(--border);padding:.6rem .75rem;vertical-align:middle}.table-hover tbody tr:hover{background:#f0f7ff;cursor:pointer}.badge,.status-pill,.badge-pill{border-radius:999px;font-weight:700}.status-pill,.badge-pill{display:inline-flex;align-items:center;gap:.35rem;padding:.28rem .65rem;font-size:.75rem;border:1px solid transparent}.status-open{background:var(--warning-soft);color:#92400e;border-color:#fde68a}.status-closed{background:var(--success-soft);color:#166534;border-color:#bbf7d0}.status-dev{background:var(--primary-soft);color:#1e40af;border-color:#bfdbfe}.col-code{width:88px}.col-date{width:90px;white-space:nowrap}.col-badge{width:120px}.col-actions{width:70px;text-align:right}
.quick-actions{display:flex;gap:.75rem;flex-wrap:wrap}.alert{border-radius:14px;border:0;box-shadow:var(--shadow-soft);font-weight:600}.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:700}.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:8px;flex-wrap:wrap;align-items:center;padding:.75rem 1rem;background:#fff;border:1px solid var(--border);border-radius:var(--radius);margin-bottom:1rem}.filter-strip .form-control,.filter-strip .form-select{height:34px;font-size:.8125rem;padding:.3rem .6rem;border-radius:6px}.filter-strip .form-label{font-size:.72rem;margin-bottom:.2rem;color:var(--muted);font-weight:600}.filter-unit{display:flex;flex-direction:column;min-width:0}.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:#dc3545;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:800;
  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:800;
  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:800;
  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:800;
  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 #e8ecf1;
  padding-top:.6rem;
  margin-top:.1rem;
}
.jira-comment.comment-internal{
  border-left:2px solid #c4b5fd;
  padding-left:.5rem;
  margin-left:-2px;
}
.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;
  cursor:default;
}
.jira-source-badge{
  display:inline-flex;
  align-items:center;
  height:18px;
  padding:0 .4rem;
  border-radius:999px;
  font-size:.67rem;
  font-weight:700;
  letter-spacing:.02em;
  background:#e9f0ff;
  color:#0052cc;
  border:1px solid #b3ccff;
  cursor:default;
}
.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;
}
/* ── Jira markup renderer ─────────────────────────────────────────── */
/* Comentarios Jira ya tienen <br> del renderer — no duplicar con pre-wrap */
.jira-comment-text.jira-rendered{white-space:normal}
.jira-att-chip{
  display:inline-flex;align-items:center;gap:.3rem;
  padding:.15rem .55rem;border-radius:4px;font-size:.8rem;
  text-decoration:none;border:1px solid var(--border-color,#e2e8f0);
  vertical-align:middle;margin:1px 2px;max-width:100%;overflow:hidden;
  text-overflow:ellipsis;white-space:nowrap;
  transition:filter .12s;
}
.jira-att-chip:hover{filter:brightness(.93)}
.jira-att-chip--preview{
  background:var(--badge-bg,#eff6ff);color:var(--text-link,#2563eb);
}
.jira-att-chip--dl{
  background:var(--badge-bg,#f8fafc);color:var(--text-secondary,#475569);
}
.jira-att-dl-arrow{font-size:.7rem;opacity:.7}
.jira-att-dl-arrow svg{width:16px;height:16px}
.jira-att-dl-arrow i{font-style:normal}
.jira-att-missing{
  background:#fef9c3;border:1px dashed #ca8a04;border-radius:3px;
  padding:.1rem .35rem;font-size:.78rem;color:#92400e;
}
.jira-img-missing{
  display:inline-block;
  background:#fef9c3;border:1px dashed #ca8a04;border-radius:4px;
  padding:.25rem .6rem;font-size:.8rem;color:#92400e;
  font-style:italic;max-width:100%;word-break:break-all;
}
.jira-inline-img{display:inline-block;vertical-align:middle}
.jira-inline-img img{
  max-width:100%;max-height:260px;border-radius:6px;
  border:1px solid var(--border-color,#e2e8f0);
  margin:2px 0;object-fit:contain;vertical-align:middle;
}
.jira-video-inline{width:min(100%,820px);margin:8px 0;border:1px solid #dce3eb;border-radius:6px;overflow:hidden;background:#fff}
.jira-video-inline video{display:block;width:100%;aspect-ratio:16/9;max-height:min(70vh,600px);object-fit:contain;background:#111}
.jira-video-caption{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:6px 9px;color:#344054;font-size:.77rem}
.jira-video-caption span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.jira-video-caption a{flex:none}
.jira-code-block{
  background:var(--code-bg,#1e1e2e);color:var(--code-fg,#cdd6f4);
  border-radius:6px;padding:.65rem .85rem;font-size:.78rem;
  overflow-x:auto;margin:4px 0;font-family:ui-monospace,monospace;
  white-space:pre;
}
.jira-noformat{
  background:var(--surface-subtle,#f8fafc);
  border:1px solid var(--border-color,#e2e8f0);
  border-radius:6px;padding:.55rem .75rem;font-size:.8rem;
  overflow-x:auto;margin:4px 0;font-family:ui-monospace,monospace;
  white-space:pre;
}
.jira-inline-code{
  background:var(--badge-bg,#f1f5f9);color:var(--text-body,#1e293b);
  border-radius:3px;padding:.05rem .3rem;font-family:ui-monospace,monospace;
  font-size:.82em;
}
.jira-ext-link{color:var(--text-link,#2563eb);text-decoration:underline}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]) .jira-att-chip--preview{background:#1e3a5f;color:#93c5fd}
  :root:not([data-theme="light"]) .jira-att-chip--dl{background:#1e293b;color:#94a3b8}
  :root:not([data-theme="light"]) .jira-att-missing{background:#422006;border-color:#78350f;color:#fef3c7}
  :root:not([data-theme="light"]) .jira-noformat{background:#1e293b;border-color:#334155;color:#e2e8f0}
}
:root[data-theme="dark"] .jira-att-chip--preview{background:#1e3a5f;color:#93c5fd}
:root[data-theme="dark"] .jira-att-chip--dl{background:#1e293b;color:#94a3b8}
:root[data-theme="dark"] .jira-att-missing{background:#422006;border-color:#78350f;color:#fef3c7}
:root[data-theme="dark"] .jira-noformat{background:#1e293b;border-color:#334155;color:#e2e8f0}
.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:800;
  color:#0052cc;
  text-decoration:none;
}
.related-ticket-code:hover{
  text-decoration:underline;
}
.related-ticket-title{
  color:#172b4d;
  font-weight:600;
  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:700;
  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:800;
  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:800;
  color:#0052cc;
  white-space:nowrap;
}
.ticket-title-cell{
  min-width:0;
}
.ticket-title-line{
  font-weight:700;
  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:800;
  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:800;
}
.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:700;
  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:700;
  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:800;
  flex:0 0 22px;
}
.mini-avatar,.jira-composer-avatar,.jira-comment-avatar,.pp-avatar,
.agent-avatar,.perm-member-avatar,.kanban-swimlane-avatar,.kanban-assign-avatar-sm{
  overflow:hidden;
}
.mini-avatar img,.jira-composer-avatar img,.jira-comment-avatar img,.pp-avatar img,
.agent-avatar img,.perm-member-avatar img,.kanban-swimlane-avatar img,.kanban-assign-avatar-sm img{
  display:block;width:100%;height:100%;object-fit:cover;
}
.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:700;
  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:600;
  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:800;
  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:400;
  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:400;
}
.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:400;
  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:800;
}
.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:700;
}
.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:800;
}


/* 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:space-between;
  align-items:center;
  gap:.4rem;
  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:700;
  padding:.35rem .65rem;
  border-radius:7px;
}
.jira-filter-clear:hover{
  background:#f4f7fb;
  border-color:#d7dde8;
  color:#0c66e4;
}
.jira-filter-apply { border:1px solid #c62f42;background:#c62f42;color:#fff;font-size:.78rem;font-weight:700;padding:.35rem .7rem;border-radius:6px; }
.jira-filter-apply:hover { background:#a92537;border-color:#a92537; }
.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:400;
  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:700;
  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:800;
  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:700;
}
.datamon-data-table .col-titulo{
  min-width:260px;
}
.datamon-data-table .col-codigo{
  min-width:95px;
}
.datamon-data-table .col-incidencias{
  min-width:150px;
}
.datamon-data-table .col-incidencias-estado{
  min-width:240px;
}
.ticket-list-link{
  display:flex;
  align-items:center;
  gap:8px;
  min-height:24px;
  white-space:nowrap;
}
@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:800;
  text-transform:uppercase;
}
.time-day-date{
  font-size:1rem;
  font-weight:800;
}
.time-day-hours{
  margin-top:auto;
  color:#0c66e4;
  font-size:1.05rem;
  font-weight:900;
}
.time-entry-form .form-label{
  font-weight:700;
  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:800;
  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:800;
}
.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:800;
  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:800;
}
@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:800;
  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:700;
  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:700;
}
.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:800;
  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:800;
}
@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:700;
  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;
}
.jira-list-page{gap:.45rem}
.jira-list-page > .modern-table-module{margin-top:0}
.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:400;
  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:none;
}
.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 #e8edf5;
  border-radius:14px;
  padding:1.1rem 1.25rem;
  box-shadow:0 2px 12px rgba(9,30,66,.07);
  position:relative;
  overflow:hidden;
}
.metric-kpi::before{
  content:'';
  position:absolute;
  left:0;top:0;bottom:0;
  width:4px;
  border-radius:14px 0 0 14px;
  background:var(--kpi-accent,#3b82f6);
}
.metric-kpi:nth-child(1){--kpi-accent:#3b82f6}
.metric-kpi:nth-child(2){--kpi-accent:#10b981}
.metric-kpi:nth-child(3){--kpi-accent:#f59e0b}
.metric-kpi:nth-child(4){--kpi-accent:#8b5cf6}
.metric-kpi-label{
  color:#64748b;
  font-weight:700;
  font-size:.78rem;
  text-transform:uppercase;
  letter-spacing:.06em;
}
.metric-kpi-value{
  color:#0f172a;
  font-size:2rem;
  font-weight:900;
  line-height:1.1;
  margin-top:.3rem;
  font-variant-numeric:tabular-nums;
}
.metric-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1rem;
}
.metric-card{
  background:#fff;
  border:1px solid #e8edf5;
  border-radius:14px;
  padding:1.25rem 1.25rem 1rem;
  box-shadow:0 2px 12px rgba(9,30,66,.07);
}
.metric-card h3{
  margin:0 0 1rem;
  font-size:.92rem;
  font-weight:700;
  color:#374151;
  letter-spacing:.01em;
  text-transform:uppercase;
  border-bottom:1px solid #f1f5f9;
  padding-bottom:.6rem;
}
.metric-card canvas{
  width:100% !important;
  height:300px !important;
}
.metric-card.full-span{
  grid-column:1/-1;
}
.metric-card.full-span canvas{
  height:260px !important;
}
@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:#fdf2f3;
}
.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:#5c0011;
  background-image:
    linear-gradient(135deg,rgba(48,3,12,.97),rgba(160,24,44,.88)),
    repeating-linear-gradient(0deg,transparent 0 47px,rgba(255,180,188,.1) 48px),
    repeating-linear-gradient(90deg,transparent 0 47px,rgba(255,180,188,.1) 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(255,180,188,.75),transparent);
  box-shadow:0 0 18px rgba(220,53,69,.5);
  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:.5;
  background:
    radial-gradient(circle at 18% 22%,rgba(255,180,188,.7) 0 2px,transparent 3px),
    radial-gradient(circle at 76% 35%,rgba(255,180,188,.65) 0 2px,transparent 3px),
    radial-gradient(circle at 35% 78%,rgba(255,180,188,.6) 0 2px,transparent 3px),
    radial-gradient(circle at 88% 82%,rgba(255,180,188,.55) 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,.88);
  border-radius:16px;
  background:rgba(255,255,255,.97);
  box-shadow:0 32px 80px rgba(48,3,12,.4);
  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 #f0d5d8;
  color:#5a6b80;
}
.login-visual-copy span{
  color:#dc3545;
  font-size:.72rem;
  font-weight:900;
  letter-spacing:.12em;
}
.login-visual-copy strong{
  color:#2c1215;
  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,.9),rgba(253,236,238,.95)),
    repeating-linear-gradient(90deg,transparent 0 59px,rgba(220,53,69,.03) 60px);
}
.login-card-wrap-modern::before{
  content:"";
  position:absolute;
  inset:10% 8%;
  border:1px solid rgba(220,53,69,.1);
  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,.95);
  border-radius:16px;
  background:rgba(255,255,255,.92);
  box-shadow:0 24px 70px rgba(80,5,20,.14);
  backdrop-filter:blur(18px);
  animation:loginRise .55s .08s ease-out both;
}
.login-card-modern .login-company-name{
  margin-bottom:1.4rem;
  color:#dc3545;
  font-size:.72rem;
  font-weight:900;
  letter-spacing:.13em;
}
.login-card-title{
  margin:0 0 .45rem;
  color:#1e0508;
  font-size:clamp(1.8rem,3vw,2.25rem);
  font-weight:800;
  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:#2c1215;
  font-size:.8rem;
  font-weight:800;
}
.login-input-wrap{
  position:relative;
  display:flex;
  align-items:center;
  border:1px solid #e5c6ca;
  border-radius:12px;
  background:#fff;
  transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease;
}
.login-input-wrap:hover{border-color:#c9858e}
.login-input-wrap:focus-within{
  border-color:#dc3545;
  box-shadow:0 0 0 4px rgba(220,53,69,.12);
  transform:translateY(-1px);
}
.login-input-icon{
  position:absolute;
  left:.88rem;
  width:18px;
  color:#b06470;
  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:#2c1215;
}
.login-input::placeholder{color:#c9a0a6}
.login-password-toggle{
  position:absolute;
  right:.55rem;
  display:grid;
  place-items:center;
  width:34px;
  height:34px;
  padding:0;
  border:0;
  border-radius:8px;
  background:#fdf0f1;
  color:#a84450;
  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:#fde3e6;
  color:#c82333;
}
.login-remember{
  display:flex;
  align-items:center;
  gap:.55rem;
  width:max-content;
  color:#5a3038;
  font-size:.86rem;
  cursor:pointer;
}
.login-remember input{
  width:16px;
  height:16px;
  accent-color:#dc3545;
}
.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,#dc3545,#a11827);
  box-shadow:0 12px 24px rgba(220,53,69,.3);
  color:#fff;
  font-weight:800;
  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(220,53,69,.4);
  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 #f5dde0;
  color:#a07078;
  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;
}


/* ══════════════════════════════════════════════════════════
   MEJORAS UX — Fase 1 & 2
   ══════════════════════════════════════════════════════════ */

/* ─── Kanban: Barra de scope "Mis tickets / Equipo" ────────── */
.kanban-scope-bar{
  display:flex;
  align-items:center;
  gap:.55rem;
  flex-wrap:wrap;
  padding:.6rem .85rem;
  background:#f8fafc;
  border:1px solid #e5e7eb;
  border-radius:12px;
  margin-bottom:1rem;
}
.kanban-scope-toggle{
  display:inline-flex;
  border:1.5px solid #c7d2fe;
  border-radius:8px;
  overflow:hidden;
  background:#fff;
  flex-shrink:0;
}
.kanban-scope-btn{
  height:30px;
  padding:0 .72rem;
  border:0;
  background:transparent;
  color:#44546f;
  font-size:.82rem;
  font-weight:700;
  cursor:pointer;
  transition:.12s;
  white-space:nowrap;
}
.kanban-scope-btn.active{
  background:#0052cc;
  color:#fff;
}
.kanban-quick-pills{
  display:flex;
  gap:.35rem;
  flex-wrap:wrap;
  margin-left:auto;
}
.kanban-quick-pill{
  height:28px;
  padding:0 .65rem;
  border:1px solid #c7d2fe;
  border-radius:999px;
  background:#f8fbff;
  color:#0c66e4;
  font-size:.77rem;
  font-weight:700;
  cursor:pointer;
  transition:.12s;
}
.kanban-quick-pill:hover{background:#e9f2ff}
.kanban-quick-pill.active{background:#0052cc;color:#fff;border-color:#0052cc}

/* ─── Kanban: Prioridad en borde izquierdo ──────────────────── */
.kanban-prio-1{border-left-color:#12b76a}
.kanban-prio-2{border-left-color:#2563eb}
.kanban-prio-3{border-left-color:#f79009}
.kanban-prio-4{border-left-color:#ef4444}
.kanban-prio-5{border-left-color:#7c3aed}
.kanban-prio-none{border-left-color:#dfe1e6}

/* ─── Kanban: Scope dimming ─────────────────────────────────── */
.kanban-scope-mine .kanban-ticket-card.kanban-other{
  opacity:.28;
}
.kanban-ticket-card.kanban-mine{
  box-shadow:0 0 0 1.5px #0052cc, 0 2px 8px rgba(9,30,66,.05);
}

/* ─── Kanban: Columna vacía ─────────────────────────────────── */
.kanban-empty-col{
  flex:1;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:.45rem;
  padding:1.5rem .75rem;
  color:#94a3b8;
  font-size:.8rem;
  line-height:1.45;
  border:1.5px dashed #dfe1e6;
  border-radius:10px;
  text-align:center;
  min-height:120px;
}
.kanban-empty-col-icon{font-size:1.35rem}

/* ─── Empty states globales ─────────────────────────────────── */
.empty-state{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:1rem;
  padding:3rem 2rem;
  text-align:center;
}
.empty-state-icon{
  width:64px;height:64px;
  border-radius:50%;
  background:#f1f5f9;
  display:flex;align-items:center;justify-content:center;
  font-size:1.75rem;
}
.empty-state-title{font-size:1.05rem;font-weight:800;color:#172b4d}
.empty-state-text{font-size:.9rem;color:#64748b;max-width:300px;line-height:1.5}

/* ─── SLA Indicators ─────────────────────────────────────────── */
.sla-dot{
  display:inline-block;
  width:8px;height:8px;
  border-radius:50%;
  flex-shrink:0;
}
.sla-ok  {background:#22c55e}
.sla-warn{background:#f59e0b}
.sla-over{background:#ef4444}

/* ─── Permisos redesign ──────────────────────────────────────── */
.perm-role-presets{
  display:flex;gap:.4rem;flex-wrap:wrap;margin-bottom:1.1rem;
}
.perm-role-preset-btn{
  height:32px;
  padding:0 .85rem;
  border:1.5px solid #dfe1e6;
  border-radius:8px;
  background:#fff;
  color:#44546f;
  font-size:.82rem;
  font-weight:700;
  cursor:pointer;
  transition:.12s;
}
.perm-role-preset-btn:hover{border-color:#0052cc;color:#0052cc;background:#e9f2ff}
.perm-role-preset-btn.selected{border-color:#0052cc;background:#0052cc;color:#fff}
.perm-checkgrid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(160px,1fr));
  gap:.65rem;
}
.perm-check-item{
  display:flex;flex-direction:column;gap:.15rem;
  padding:.6rem .75rem;
  border:1.5px solid #dfe1e6;
  border-radius:10px;
  background:#fff;
  transition:.12s;
}
.perm-check-item:has(input:checked){
  border-color:#0052cc;
  background:#e9f2ff;
}
.perm-check-item label{
  display:flex;align-items:center;gap:.45rem;
  cursor:pointer;font-size:.88rem;font-weight:700;color:#172b4d;
  margin:0;
}
.perm-check-item .perm-desc{
  font-size:.73rem;color:#64748b;padding-left:1.45rem;line-height:1.35;
}
.perm-member-card{
  border:1px solid #e5e7eb;
  border-radius:12px;
  padding:.75rem 1rem;
  background:#fff;
  display:grid;
  gap:.35rem;
  margin-bottom:.55rem;
}
.perm-member-header{
  display:flex;align-items:center;gap:.65rem;flex-wrap:wrap;
}
.perm-member-avatar{
  width:36px;height:36px;
  border-radius:50%;
  background:#dbeafe;color:#1e3a8a;
  display:flex;align-items:center;justify-content:center;
  font-weight:800;font-size:.9rem;flex-shrink:0;
}
.perm-member-name{font-weight:800;color:#172b4d}
.perm-member-email{font-size:.8rem;color:#64748b}
.perm-role-badge{
  display:inline-flex;align-items:center;
  padding:.22rem .55rem;border-radius:999px;
  font-size:.72rem;font-weight:800;
  background:#e9f2ff;color:#0052cc;
  margin-left:auto;
}
.perm-dots-row{
  display:flex;gap:.35rem;flex-wrap:wrap;margin-top:.25rem;
}
.perm-dot{
  display:inline-flex;align-items:center;gap:.3rem;
  padding:.2rem .5rem;border-radius:999px;
  font-size:.72rem;font-weight:700;
}
.perm-dot.on{background:#e3fcef;color:#047857}
.perm-dot.off{background:#f1f5f9;color:#94a3b8}

/* ─── Markdown rendered in comments ─────────────────────────── */
.md-body h1,.md-body h2,.md-body h3{
  font-weight:800;margin:.65rem 0 .35rem;color:#172b4d;
}
.md-body h1{font-size:1.1rem}
.md-body h2{font-size:1rem}
.md-body h3{font-size:.95rem}
.md-body p{margin:.35rem 0;line-height:1.55}
.md-body ul,.md-body ol{padding-left:1.35rem;margin:.35rem 0}
.md-body li{margin:.2rem 0}
.md-body code{
  background:#f1f5f9;color:#0c66e4;
  padding:.1rem .3rem;border-radius:4px;
  font-family:Consolas,monospace;font-size:.9em;
}
.md-body pre{
  background:#f8fafc;border:1px solid #dfe1e6;border-radius:8px;
  padding:.75rem 1rem;overflow:auto;
}
.md-body pre code{background:none;color:#172b4d;padding:0}
.md-body blockquote{
  border-left:3px solid #c7d2fe;
  padding:.35rem .75rem;
  color:#44546f;
  margin:.45rem 0;
  border-radius:0 6px 6px 0;
  background:#f8fbff;
}
.md-body strong{font-weight:800;color:#172b4d}
.md-body a{color:#0c66e4}
.md-body hr{border:0;border-top:1px solid #e5e7eb;margin:.75rem 0}
.md-body table{
  width:100%;border-collapse:collapse;font-size:.88rem;margin:.45rem 0;
}
.md-body th{
  background:#f8fafc;padding:.35rem .55rem;
  border:1px solid #dfe1e6;font-weight:800;text-align:left;
}
.md-body td{padding:.3rem .55rem;border:1px solid #edf2f7}

/* ─── Kanban: Swimlanes por asignado ────────────────────────── */
.kanban-swimlane-header{
  display:flex;align-items:center;gap:.5rem;
  padding:.3rem .55rem;
  background:#f1f5f9;
  border-radius:6px;
  font-size:.78rem;font-weight:800;color:#334155;
  margin-bottom:.35rem;
  margin-top:.55rem;
}
.kanban-swimlane-header:first-child{margin-top:0}
.kanban-swimlane-avatar{
  width:22px;height:22px;border-radius:50%;
  background:#dbeafe;color:#1e40af;
  display:inline-flex;align-items:center;justify-content:center;
  font-size:.65rem;font-weight:900;flex-shrink:0;
}

/* ─── Kanban: Quick-assign dropdown ─────────────────────────── */
.kanban-ticket-card{position:relative}
.kanban-assign-btn{
  position:absolute;bottom:.45rem;right:.45rem;
  width:22px;height:22px;
  border:1px solid #dfe1e6;
  border-radius:50%;
  background:#fff;
  font-size:.72rem;
  cursor:pointer;
  display:none;
  align-items:center;justify-content:center;
  color:#64748b;
  transition:.1s;
  z-index:2;
}
.kanban-ticket-card:hover .kanban-assign-btn{display:flex}
.kanban-assign-btn:hover{background:#e9f2ff;border-color:#0052cc;color:#0052cc}
.kanban-assign-dropdown{
  position:absolute;bottom:2rem;right:.45rem;
  min-width:180px;
  background:#fff;
  border:1px solid #dfe1e6;
  border-radius:10px;
  box-shadow:0 8px 24px rgba(9,30,66,.15);
  z-index:100;
  display:none;
  flex-direction:column;
  overflow:hidden;
}
.kanban-assign-dropdown.open{display:flex}
.kanban-assign-option{
  padding:.4rem .65rem;
  font-size:.82rem;
  cursor:pointer;
  display:flex;align-items:center;gap:.5rem;
  transition:.08s;
  border:0;background:transparent;text-align:left;
  color:#172b4d;
}
.kanban-assign-option:hover{background:#e9f2ff;color:#0052cc}
.kanban-assign-option.selected{background:#e3fcef;color:#047857}
.kanban-assign-avatar-sm{
  width:20px;height:20px;border-radius:50%;
  background:#dbeafe;color:#1e40af;
  display:inline-flex;align-items:center;justify-content:center;
  font-size:.6rem;font-weight:800;flex-shrink:0;
}

/* ─── @Mention pill ─────────────────────────────────────────── */
.mention-user{
  display:inline-flex;align-items:center;
  padding:.05rem .4rem;border-radius:999px;
  background:#deebff;color:#0747a6;
  font-weight:700;font-size:.92em;
}

/* ═══════════════════════════════════════════════════════════════
   UX ROADMAP — Bloque F2/F3
   ═══════════════════════════════════════════════════════════════ */

/* ── F1: 14px base font ───────────────────────────────────────── */
body{font-size:14px}
.table td,.table th,.comment,.form-control,.form-select{font-size:14px}

/* ── F1: Context menu "..." coherente ────────────────────────── */
.ctx-menu-wrap{position:relative;display:inline-flex}
.ctx-menu-btn{
  width:28px;height:28px;border:0;background:transparent;border-radius:6px;
  color:#6b7280;cursor:pointer;font-size:1rem;line-height:1;
  display:inline-flex;align-items:center;justify-content:center;
  transition:.1s;
}
.ctx-menu-btn:hover{background:#f3f4f6;color:#111827}
.ctx-menu{
  position:absolute;right:0;top:calc(100% + 4px);
  min-width:160px;background:#fff;border:1px solid #e5e7eb;
  border-radius:8px;box-shadow:0 8px 24px rgba(9,30,66,.14);
  z-index:500;display:none;flex-direction:column;overflow:hidden;
  animation:ctxFadeIn .12s ease;
}
@keyframes ctxFadeIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}
.ctx-menu.ctx-open{display:flex}
.ctx-item{
  display:flex;align-items:center;gap:.5rem;
  padding:.5rem .75rem;font-size:.83rem;font-weight:600;color:#374151;
  text-decoration:none;background:transparent;border:0;width:100%;text-align:left;cursor:pointer;
  transition:.08s;
}
.ctx-item:hover{background:#f3f4f6;color:#111827;text-decoration:none}
.ctx-item.danger{color:#dc2626}
.ctx-item.danger:hover{background:#fef2f2}
.ctx-divider{height:1px;background:#f3f4f6;margin:.25rem 0}

/* ── F1: Auto-submit filter indicator ────────────────────────── */
.jira-filter-bar.is-filtering .jira-filter-chip.has-selection{
  border-color:#2563eb;background:#eff6ff;
}

/* ── F2: Markdown / EasyMDE wrapper ──────────────────────────── */
.md-editor-wrap{border:1px solid #d1d5db;border-radius:10px;overflow:hidden}
.md-editor-toolbar{
  display:flex;gap:2px;padding:.35rem .5rem;
  background:#f9fafb;border-bottom:1px solid #e5e7eb;flex-wrap:wrap;
}
.md-toolbar-btn{
  width:28px;height:28px;border:1px solid transparent;border-radius:5px;
  background:transparent;cursor:pointer;font-size:.82rem;color:#4b5563;
  display:inline-flex;align-items:center;justify-content:center;
  transition:.1s;font-weight:700;
}
.md-toolbar-btn:hover{background:#e5e7eb;border-color:#d1d5db;color:#111827}
.md-toolbar-btn.active{background:#dbeafe;border-color:#93c5fd;color:#1d4ed8}
.md-preview-tab{
  display:flex;border-bottom:1px solid #e5e7eb;background:#f9fafb;
}
.md-tab-btn{
  padding:.35rem .75rem;font-size:.82rem;font-weight:700;color:#6b7280;
  border:0;background:transparent;cursor:pointer;border-bottom:2px solid transparent;
}
.md-tab-btn.active{color:#2563eb;border-bottom-color:#2563eb}
.md-editor-textarea{
  width:100%;min-height:120px;border:0;outline:0;padding:.65rem .75rem;
  font-family:inherit;font-size:14px;resize:vertical;background:#fff;
}
.md-preview-area{
  min-height:80px;padding:.65rem .75rem;background:#fff;
  line-height:1.65;font-size:14px;
}
.md-preview-area h1,.md-preview-area h2,.md-preview-area h3{margin:.6rem 0 .3rem;font-weight:800}
.md-preview-area code{background:#f1f5f9;padding:.1rem .35rem;border-radius:4px;font-size:.88em}
.md-preview-area pre{background:#f1f5f9;padding:.65rem;border-radius:8px;overflow-x:auto}
.md-preview-area blockquote{border-left:3px solid #d1d5db;margin:0;padding:.25rem .75rem;color:#6b7280}
.md-preview-area ul,.md-preview-area ol{padding-left:1.4rem;margin:.35rem 0}

/* ── F2: Dashboard rol / Mi panel widgets ─────────────────────── */
.role-dashboard-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}
.role-widget{
  background:#fff;border:1px solid #e5e7eb;border-radius:14px;padding:1rem 1.15rem;
  display:flex;flex-direction:column;gap:.5rem;
}
.role-widget-head{display:flex;align-items:center;gap:.6rem;font-weight:800;font-size:.95rem}
.role-widget-body{flex:1}
.role-widget-footer{font-size:.78rem;color:#6b7280;margin-top:.25rem}

.tour-skip:hover{color:#4b5563}

/* ── F3: Backlog / Arrastre a sprint ─────────────────────────── */
.backlog-layout{display:grid;grid-template-columns:1fr 340px;gap:1rem}
@media(max-width:900px){.backlog-layout{grid-template-columns:1fr}}
.backlog-panel{background:#fff;border:1px solid #e5e7eb;border-radius:14px;overflow:hidden}
.backlog-panel-head{
  padding:.75rem 1rem;border-bottom:1px solid #e5e7eb;background:#f9fafb;
  font-weight:800;font-size:.9rem;display:flex;align-items:center;justify-content:space-between;
}
.backlog-list{min-height:200px;padding:.5rem}
.backlog-item{
  display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;
  gap:.5rem;align-items:center;
  padding:.5rem .6rem;border:1px solid #e5e7eb;border-radius:8px;
  margin-bottom:.4rem;background:#fff;cursor:grab;transition:.12s;
  font-size:.85rem;
}
.backlog-item:hover{border-color:#93c5fd;background:#eff6ff}
.backlog-item.dragging{opacity:.45;box-shadow:0 4px 16px rgba(0,0,0,.15)}
.backlog-item.drag-over{border-color:#2563eb;border-style:dashed}
.backlog-drag-handle{color:#d1d5db;cursor:grab;font-size:1rem;user-select:none}
.backlog-sprint-drop{
  min-height:80px;border:2px dashed #d1d5db;border-radius:10px;padding:.65rem;
  margin-bottom:.65rem;transition:.15s;
}
.backlog-sprint-drop.drag-active{border-color:#2563eb;background:#eff6ff}
.backlog-sprint-name{font-weight:700;font-size:.85rem;margin-bottom:.4rem;color:#1e40af}

/* ── F3: Burndown chart ────────────────────────────────────────── */
.burndown-wrap{position:relative;height:280px;width:100%}
.burndown-wrap canvas{width:100%!important}
.burndown-legend{display:flex;gap:1rem;flex-wrap:wrap;margin-top:.5rem}
.burndown-legend-item{display:flex;align-items:center;gap:.35rem;font-size:.78rem;color:#4b5563;font-weight:700}
.burndown-legend-dot{width:12px;height:12px;border-radius:50%}

/* ── F3: Velocidad del equipo ─────────────────────────────────── */
.velocity-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.75rem;margin-bottom:1rem}
.velocity-card{
  background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:.85rem 1rem;
  display:flex;flex-direction:column;gap:.3rem;
}
.velocity-sprint-name{font-size:.78rem;color:#6b7280;font-weight:700}
.velocity-value{font-size:1.65rem;font-weight:900;color:#111827;line-height:1}
.velocity-label{font-size:.72rem;color:#9ca3af}

/* ── F3: Timeline de actividad ────────────────────────────────── */
.timeline-list{display:flex;flex-direction:column;gap:0}
.timeline-item{
  display:grid;grid-template-columns:80px 1px 1fr;gap:0 .85rem;
  min-height:44px;position:relative;
}
.timeline-time{
  font-size:.72rem;color:#9ca3af;text-align:right;padding-top:.2rem;white-space:nowrap;
}
.timeline-line{
  display:flex;flex-direction:column;align-items:center;
}
.timeline-dot{
  width:10px;height:10px;border-radius:50%;background:#d1d5db;border:2px solid #fff;
  flex-shrink:0;margin-top:.22rem;z-index:1;
}
.timeline-dot.ev-create{background:#2563eb}
.timeline-dot.ev-comment{background:#10b981}
.timeline-dot.ev-assign{background:#f59e0b}
.timeline-dot.ev-state{background:#8b5cf6}
.timeline-dot.ev-close{background:#ef4444}
.timeline-connector{flex:1;width:2px;background:#e5e7eb;margin:.1rem 0}
.timeline-body{padding:.1rem 0 .65rem}
.timeline-event{font-size:.83rem;font-weight:700;color:#111827}
.timeline-detail{font-size:.75rem;color:#6b7280;margin-top:.1rem}

/* ── F3: SLA export / Reportes ────────────────────────────────── */
.sla-report-table .sla-ok{color:#047857;font-weight:800}
.sla-report-table .sla-warn{color:#92400e;font-weight:800}
.sla-report-table .sla-over{color:#b91c1c;font-weight:800}
.export-bar{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap;margin-bottom:1rem}

/* ── F3: Dashboard compartido del proyecto ────────────────────── */
.proj-dash-kpi-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.75rem;margin-bottom:1rem}
.proj-dash-kpi{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:.85rem 1rem}
.proj-dash-kpi-val,.proj-dash-kpi-value{font-size:2rem;font-weight:900;line-height:1}
.proj-dash-kpi-label{font-size:.72rem;color:#9ca3af;font-weight:700;text-transform:uppercase;letter-spacing:.04em;margin-top:.2rem}

/* ── F3: Notificaciones por regla ─────────────────────────────── */
.notif-rule-card{
  background:#fff;border:1px solid #e5e7eb;border-radius:12px;
  padding:.85rem 1rem;margin-bottom:.65rem;
  display:grid;grid-template-columns:1fr auto;gap:.75rem;align-items:start;
}
.notif-trigger{font-size:.72rem;font-weight:800;color:#6b7280;text-transform:uppercase;letter-spacing:.04em;margin-bottom:.2rem}
.notif-channel{display:inline-flex;align-items:center;gap:.35rem;font-size:.78rem;background:#f0f4ff;color:#1e40af;border-radius:6px;padding:.2rem .5rem;font-weight:700}

/* ── F3: Campos personalizados ────────────────────────────────── */
.custom-field-row{
  display:grid;grid-template-columns:minmax(160px,1.5fr) minmax(120px,1fr) 90px auto;
  gap:.75rem;align-items:center;padding:.55rem .75rem;
  border:1px solid #e5e7eb;border-radius:10px;background:#fff;margin-bottom:.4rem;
}
.custom-field-name{font-weight:700;font-size:.88rem}
.custom-field-type{font-size:.78rem;color:#6b7280}

/* ── F3: API REST documentada ─────────────────────────────────── */
.api-endpoint{
  border:1px solid #e5e7eb;border-radius:10px;overflow:hidden;margin-bottom:.65rem;
}
.api-endpoint-head{
  display:grid;grid-template-columns:70px 1fr auto;gap:.65rem;align-items:center;
  padding:.6rem .85rem;background:#f9fafb;cursor:pointer;
}
.api-method{
  display:inline-flex;align-items:center;justify-content:center;
  padding:.2rem .45rem;border-radius:5px;font-size:.72rem;font-weight:900;white-space:nowrap;
}
.api-method-get{background:#dcfce7;color:#166534}
.api-method-post{background:#dbeafe;color:#1e40af}
.api-method-put{background:#fef3c7;color:#78350f}
.api-method-delete{background:#fee2e2;color:#991b1b}
.api-path{font-family:monospace;font-size:.82rem;font-weight:700;color:#111827}
.api-body{padding:.75rem .85rem;border-top:1px solid #e5e7eb;display:none}
.api-endpoint.open .api-body{display:block}
.api-param-table{font-size:.8rem;width:100%}
.api-param-table th{background:#f9fafb;font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:#6b7280;padding:.35rem .5rem}
.api-param-table td{padding:.35rem .5rem;border-bottom:1px solid #f3f4f6}
.api-code{background:#f1f5f9;border-radius:6px;padding:.5rem .75rem;font-family:monospace;font-size:.8rem;overflow-x:auto;margin-top:.5rem}

/* ── UX2026: Sistema unificado de 6 estados de ticket ──────────── */
.st-todo      { background:#f9fafb; color:#374151; border:1px solid #d1d5db; border-radius:5px; }
.st-analysis  { background:#f5f3ff; color:#5b21b6; border:1px solid #c4b5fd; border-radius:5px; }
.st-progress  { background:#eff6ff; color:#1e40af; border:1px solid #93c5fd; border-radius:5px; }
.st-blocked   { background:#fef2f2; color:#991b1b; border:1px solid #fca5a5; border-radius:5px; }
.st-done      { background:#f0fdf4; color:#166534; border:1px solid #bbf7d0; border-radius:5px; }
.st-cancelled { background:#f9fafb; color:#9ca3af; border:1px solid #e5e7eb; border-radius:5px; text-decoration:line-through; }

/* Dot de estado — <span class="st-dot st-dot-progress"></span> */
.st-dot           { width:6px; height:6px; border-radius:50%; display:inline-block; flex-shrink:0; margin-right:3px; vertical-align:middle; }
.st-dot-todo      { background:#9ca3af; }
.st-dot-analysis  { background:#7c3aed; }
.st-dot-progress  { background:#2563eb; }
.st-dot-blocked   { background:#dc2626; }
.st-dot-done      { background:#16a34a; }
.st-dot-cancelled { background:#d1d5db; }

/* ── UX2026: KPI dashboard del proyecto mejorado ───────────────── */
.proj-dash-kpi-val,
.proj-dash-kpi-value { font-size:1.75rem; font-weight:800; line-height:1; font-variant-numeric:tabular-nums; }
.proj-dash-kpi { border-top:3px solid #e5e7eb; }
.kpi-color-blue   { color:#2563eb; }
.kpi-color-green  { color:#16a34a; }
.kpi-color-red    { color:#D32F2F; }
.kpi-color-purple { color:#7c3aed; }
.proj-dash-kpi:has(.kpi-color-blue)   { border-top-color:#2563eb; }
.proj-dash-kpi:has(.kpi-color-green)  { border-top-color:#16a34a; }
.proj-dash-kpi:has(.kpi-color-red)    { border-top-color:#D32F2F; }
.proj-dash-kpi:has(.kpi-color-purple) { border-top-color:#7c3aed; }

/* ── UX2026: Alert moderno ─────────────────────────────────────── */
.alert { border-radius:8px; border:0; font-weight:600; font-size:.875rem; }
.alert-success { background:#f0fdf4; color:#166534; border-left:3px solid #16a34a !important; }
.alert-danger  { background:#fef2f2; color:#991b1b; border-left:3px solid #D32F2F !important; }
.alert-warning { background:#fffbeb; color:#78350f; border-left:3px solid #F59E0B !important; }

/* ── UX2026: Sidebar activo correctamente visible ──────────────── */
.app-sidebar .side-link.active { background:rgba(37,99,235,.2); color:#93c5fd; font-weight:700; }

/* ── UX2026: App main wrapper con topbar compensado ───────────── */
.app-main-wrapper { padding-top:56px; min-height:100vh; }

/* ── UX2026: Version badge ──────────────────────────── */
.app-version-badge strong { font-weight:700; }

/* Reports and dense operational tables */
body{background:#f6f7f9}
.report-page .soft-card,
.report-page .card{border-radius:6px;box-shadow:0 1px 3px rgba(17,24,39,.05)}
.report-page .soft-card:hover,
.report-page .card:hover{box-shadow:0 1px 5px rgba(17,24,39,.08)}
.report-page .page-title{font-size:1.45rem;letter-spacing:0}
.report-page .page-subtitle{margin-top:2px}
.report-page .kpi-card{padding:10px 13px;border-top:2px solid var(--primary)}
.report-page .kpi-value{font-size:1.45rem}
.report-page .report-grid{gap:10px;margin-bottom:14px!important}
.report-page .report-grid>.soft-card{padding:12px 14px}
.report-page .section-title{margin-bottom:8px;font-size:.88rem}
.report-page .bar-row{gap:.45rem;padding:.32rem 0;grid-template-columns:minmax(100px,1.5fr) 55px minmax(55px,1fr) 42px;font-size:.8rem}
.report-page .progress{height:5px}
.report-page .progress-bar{background:var(--primary)}
.comment-video-attachment{width:min(100%,720px);border:1px solid var(--border);border-radius:6px;overflow:hidden;background:#111;margin:6px 0}
.comment-video-attachment video{display:block;width:100%;max-height:420px}
.comment-video-caption{display:flex;justify-content:space-between;gap:12px;padding:7px 10px;color:#fff;font-size:.8rem}
.comment-video-caption a{color:#fff;text-decoration:underline}
.time-print-grouping{display:none}
#timePdfPreview{height:min(76vh,850px);border:0;border-radius:0}
@media print{
  body[data-time-print-tab] .report-page > *:not(.tab-content){display:none!important}
  body[data-time-print-tab] .report-page .tab-content > .tab-pane{display:none!important}
  body[data-time-print-tab="tabCalendario"] #tabCalendario,
  body[data-time-print-tab="tabResumen"] #tabResumen,
  body[data-time-print-tab="tabDetalle"] #tabDetalle,
  body[data-time-print-tab="tabAgrupacion"] #tabAgrupacion,
  body[data-time-print-tab="tabPersonalizada"] #tabPersonalizada{display:block!important;opacity:1!important;visibility:visible!important}
  body[data-time-print-tab] .report-page .soft-card{box-shadow:none!important;border:0!important}
  body[data-time-print-tab="tabCalendario"] .time-calendar-heading .no-print,
  body[data-time-print-tab="tabCalendario"] .calendar-dimension-toolbar{display:none!important}
  body[data-time-print-tab="tabCalendario"] .time-print-grouping{display:block;margin-top:4px;font-size:11px;color:#475467}
  body[data-time-print-tab="tabCalendario"] .time-calendar-scroll{max-height:none;overflow:visible;border:0}
  body[data-time-print-tab="tabCalendario"] .time-calendar-table{width:100%!important;min-width:0!important;font-size:8pt}
  body[data-time-print-tab="tabCalendario"] .time-calendar-table th,
  body[data-time-print-tab="tabCalendario"] .time-calendar-table td{position:static!important;min-width:0!important;width:auto!important;max-width:none!important;white-space:normal!important;padding:3px 4px!important;break-inside:avoid}
  body[data-time-print-tab="tabCalendario"] .time-calendar-table tr{break-inside:avoid}
}
.report-page .modern-table-module .table-card{border-radius:6px;box-shadow:none}
.report-page .datatable-toolbar{margin-bottom:6px}
.report-analysis-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;align-items:start}
.report-analysis-panel{padding:12px 14px}
.report-summary-table{font-size:.8rem;line-height:1.25}
.report-summary-table th{background:#f5f6f8;color:#4b5563;font-size:.69rem;font-weight:700;letter-spacing:0;padding:7px 9px;text-transform:none;white-space:nowrap}
.report-summary-table td{padding:6px 9px;vertical-align:top;border-color:#edf0f2}
.report-summary-table tbody tr:hover td{background:#fff7f7}
.report-category{display:inline-block;border-radius:4px;background:#f2f3f5;color:#374151;padding:1px 6px;font-size:.72rem;font-weight:650;white-space:nowrap}
.report-work-detail{padding:0}
.report-work-detail>summary{padding:12px 14px;margin:0;cursor:pointer}
.report-work-detail .table-responsive{border-top:1px solid var(--border)}
.report-work-detail .report-summary-table td:nth-child(6){min-width:180px;max-width:420px;overflow-wrap:anywhere}
.jira-issue-table.datamon-data-table thead th,
.admin-enhanced-table thead th{padding:.5rem .55rem!important;background:#f5f6f8!important;color:#4b5563!important;font-size:.69rem!important;font-weight:700!important;letter-spacing:0!important}
.jira-issue-table.datamon-data-table tbody td,
.admin-enhanced-table tbody td{padding:.42rem .55rem!important;font-size:.81rem;line-height:1.25;border-color:#edf0f2}
.jira-issue-table.datamon-data-table tbody tr:hover td,
.admin-enhanced-table tbody tr:hover td{background:#fff5f5!important}
.app-sidebar .side-link.active{background:rgba(180,35,45,.2)!important;color:#ffe4e6!important;border-left-color:#d04b50!important}
.sidebar-logo{background:#dc3545}
.issue-code{color:#a61f29!important}
.btn-primary{background:#dc3545;border-color:#dc3545;box-shadow:none}
.btn-primary:hover,.btn-primary:focus{background:#c82333;border-color:#c82333;box-shadow:0 0 0 3px rgba(220,53,69,.12)}
@media(max-width:900px){.report-analysis-grid{grid-template-columns:1fr}}

/* Light navigation aligned with the Datamon corporate palette */
.app-sidebar{
  background:#fff;
  color:#252a32;
  padding:10px 10px 0;
  border-right:1px solid #e7e0e2;
  box-shadow:2px 0 8px rgba(35,28,31,.03);
}
.sidebar-brand{
  margin:0 2px 8px;
  padding:4px 2px 11px;
  border-bottom:1px solid #eadfe1;
  gap:8px;
}
.sidebar-corporate-logo{
  width:42px;
  height:36px;
  border:1px solid #e5e7eb;
  border-radius:5px;
}
.sidebar-corporate-name{
  color:#20242c;
  font-size:.72rem;
  letter-spacing:0;
  overflow-wrap:anywhere;
}
.sidebar-corporate-name span{color:#6b7280;font-size:.62rem}
.sidebar-collapse-all{
  flex-shrink:0;
  display:block;
  width:calc(100% - 4px);
  min-height:27px;
  margin:0 2px 7px;
  padding:3px 9px;
  text-align:left;
  border:1px solid #e7dfe1;
  border-radius:5px;
  background:#fff;
  color:#454b55;
  font-size:.72rem;
  font-weight:600;
  box-shadow:0 1px 2px rgba(17,24,39,.04);
  cursor:pointer;
}
.sidebar-collapse-all:hover{background:#fff5f5;border-color:#dcb6bb;color:#9f1d29}
.sidebar-preferences{display:grid;grid-template-columns:1fr 1fr;gap:5px;padding:0 3px 7px;flex-shrink:0}
.sidebar-preferences .sidebar-collapse-all{width:100%;margin:0;text-align:center;padding:3px 4px}
.sidebar-nav-scroll{padding:0 2px 8px}
.app-sidebar .sb-section-header{
  margin:10px 2px 4px;
  padding:8px 6px 4px;
  border-top:1px solid #efe6e8;
  color:#3f4650;
  font-size:.65rem;
  letter-spacing:.04em;
}
.app-sidebar .sb-section-header:first-child{border-top:0}
.app-sidebar .sb-section-arrow{
  display:grid;
  place-items:center;
  width:18px;
  height:18px;
  border-radius:5px;
  background:#fff0f1;
  color:#a52732;
  opacity:1;
}
.app-sidebar .sb-section-body{max-height:900px}
.app-sidebar .side-link{
  min-height:29px;
  margin:1px 1px;
  padding:5px 8px;
  border-radius:5px;
  color:#414851;
  font-size:.77rem;
  font-weight:550;
  line-height:1.2;
}
.app-sidebar .side-link:hover{background:#faf2f3;color:#c82333;text-decoration:none}
.app-sidebar .side-link.active{
  background:#fff1f2!important;
  color:#921e29!important;
  border-left:2px solid #dc3545!important;
  padding-left:6px;
  font-weight:700;
}
.app-sidebar .side-icon{
  width:18px;
  flex:0 0 18px;
  filter:grayscale(1);
  opacity:.72;
  font-size:.82rem;
}
.app-sidebar .side-link.active .side-icon{filter:grayscale(1);opacity:1}
.app-sidebar .sidebar-user{color:#3f4650;font-size:.77rem}
.app-sidebar .sidebar-user-name{color:#303640;font-size:.76rem}
.app-sidebar .sidebar-user a{color:#9f1d29}
.app-sidebar .sidebar-user a:hover{color:#7f1720}
.time-calendar-section{padding:12px 14px}
.time-calendar-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}
.time-calendar-scroll{overflow:auto;max-height:560px;border:1px solid #e5e7eb;border-radius:5px}
.time-calendar-table{border-collapse:separate;border-spacing:0;width:max-content;min-width:100%;font-size:.76rem;font-variant-numeric:tabular-nums}
.time-calendar-table th,.time-calendar-table td{min-width:58px;padding:6px 8px;text-align:right;border-bottom:1px solid #e9ecef;border-right:1px solid #eff0f2;white-space:nowrap}
.time-calendar-table thead th{position:sticky;top:0;z-index:3;background:#f8f8f9;color:#39414b;font-weight:700}
.time-calendar-table thead small{display:block;color:#828891;font-weight:500}
.time-calendar-table .time-calendar-label{position:sticky;left:0;z-index:2;min-width:260px;width:260px;max-width:260px;text-align:left;overflow:hidden;text-overflow:ellipsis;background:#fff}
.time-calendar-table .time-calendar-total{position:sticky;left:260px;z-index:2;min-width:74px;width:74px;background:#fff;font-weight:700;border-right:2px solid #d8dadd}
.time-calendar-table thead .time-calendar-label,.time-calendar-table thead .time-calendar-total{z-index:4;background:#f8f8f9}
.time-calendar-table .time-calendar-person td{background:#fff7f7;color:#2c3038;font-weight:700}
.time-calendar-table .time-calendar-person .time-calendar-label,.time-calendar-table .time-calendar-person .time-calendar-total{background:#fff7f7}
.time-calendar-table .time-calendar-client td{background:#fbfbfc}
.time-calendar-table .time-calendar-client .time-calendar-label,.time-calendar-table .time-calendar-client .time-calendar-total{background:#fbfbfc}
.time-calendar-table .time-calendar-client .time-calendar-label{padding-left:25px}
.time-calendar-table .time-calendar-ticket .time-calendar-label{padding-left:53px}
.time-calendar-table .time-calendar-ticket-title{color:#6b7280;margin-left:5px}
.time-calendar-table .is-weekend,
.time-calendar-table .time-calendar-person .is-weekend,
.time-calendar-table .time-calendar-client .is-weekend{background:#e3fcef;color:#245442}
.time-calendar-table .has-personal-holiday{box-shadow:inset 0 -2px #59aa7e}
.time-calendar-table[data-period="SEMANA"] .time-calendar-day{min-width:178px}
.time-calendar-table[data-period="MES"] .time-calendar-day{min-width:178px;text-transform:capitalize}
.month-day-slot{position:relative;min-width:0}
.month-day-slot .month-day-card{height:100%;min-height:116px;padding-bottom:31px}
.personal-holiday-check{position:absolute;bottom:7px;left:8px;display:flex;align-items:center;gap:4px;font-size:.68rem;color:#245442;cursor:pointer}
.personal-holiday-check input{width:13px;height:13px;accent-color:#238459}
.time-entry-layout > .soft-card{min-width:0}
.time-calendar-panel{container-type:inline-size}
.range-calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr))}
@container(max-width:600px){
  .range-calendar-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .month-calendar-head,.range-calendar-grid .empty{display:none}
}
.time-calendar-legend{display:flex;align-items:center;gap:6px;color:#52675d;font-size:.75rem;margin-top:9px}
.time-calendar-legend::before{content:"";width:12px;height:12px;background:#e3fcef;border:1px solid #abf5d1;border-radius:2px}
.time-calendar-table tfoot th{position:sticky;bottom:0;z-index:3;background:#f0f1f2}
.time-calendar-table tfoot .time-calendar-label,.time-calendar-table tfoot .time-calendar-total{z-index:4;background:#f0f1f2}
.time-calendar-toggle{border:0;background:transparent;color:#921e29;cursor:pointer;width:19px;height:19px;padding:0;margin-right:4px;font-weight:800}
.time-calendar-toggle:hover{background:#f8dfe2}
.api-endpoint-head{display:flex;grid-template-columns:none;gap:.65rem;align-items:center}
.api-endpoint-head:focus-visible{outline:2px solid #dc3545;outline-offset:-2px}
.jira-basic-pill,.jira-filter-chip,.jira-filter-chip.has-selection,
.jira-save-filter-toggle,.jira-save-filter-toggle.has-filters{
  border-color:#e8b3bb!important;background:#fffafa!important;color:#921e29!important
}
.jira-basic-pill.active,.jira-filter-chip.has-selection,
.jira-filter-bar.is-filtering .jira-filter-chip.has-selection{
  border-color:#dc3545!important;background:#fff1f2!important;color:#921e29!important
}
.jira-filter-chip:hover,.jira-basic-pill:hover,.jira-save-filter-toggle:hover{
  background:#fce6e9!important;color:#7f1720!important
}
.jira-check-row input[type="checkbox"],.jira-filter-menu input[type="checkbox"]{
  accent-color:#dc3545!important
}
.jira-check-row:has(input:checked),.jira-filter-menu .filter-option:has(input:checked){
  background:#fff1f2!important
}
.jira-check-row:has(input:checked) span:last-child{color:#921e29!important}
.fg-chip{background:#fff1f2!important;color:#921e29!important;border-color:#e8b3bb!important}
.fg-chip:hover{background:#f9dfe3!important;color:#7f1720!important}
@media(max-width:600px){
  .time-calendar-table .time-calendar-label{min-width:170px;width:170px;max-width:170px}
  .time-calendar-table .time-calendar-total{left:170px}
  .time-calendar-heading{align-items:flex-start}
}
/* Brand accents shared by reports, filters, ticket details and administration. */
.issue-code,
.md-body a,
.backlog-sprint-name,
.sortable-th[data-sort-dir="asc"]::after,
.sortable-th[data-sort-dir="desc"]::after{color:#921e29!important}
.jira-issue-table.datamon-data-table tbody tr:hover td,
.table-hover tbody tr:hover,
.kanban-assign-option:hover{background:#fff6f7!important}
.btn-primary,
.kanban-quick-pill.active,
.perm-role-preset-btn.selected{background:#dc3545!important;border-color:#dc3545!important;color:#fff!important}
.btn-primary:hover,
.btn-primary:focus{background:#c82333!important;border-color:#c82333!important}
.btn-outline-primary,
.jira-filter-chip.active,
.md-tab-btn.active,
.perm-role-preset-btn:hover{color:#921e29!important;border-color:#dc3545!important}
.btn-outline-primary:hover{background:#dc3545!important;color:#fff!important}
.priority-medium,
.status-progress,
.st-progress,
.notif-channel,
.api-method-post{background:#fff1f2!important;color:#921e29!important;border-color:#e8b3bb!important}
.kpi-color-blue{color:#dc3545}
.proj-dash-kpi:has(.kpi-color-blue){border-top-color:#dc3545}
.kanban-assign-btn:hover,
.backlog-sprint-drop.drag-active{background:#fff1f2!important;border-color:#dc3545!important;color:#921e29!important}
input:focus,
select:focus,
textarea:focus,
.form-control:focus,
.form-select:focus{border-color:#dc3545!important;box-shadow:0 0 0 .15rem rgba(220,53,69,.13)!important}
@media(min-width:992px){
  .app-sidebar{width:var(--sidebar-width)}
  .app-main{margin-left:var(--sidebar-width);width:calc(100% - var(--sidebar-width))}
}

/* Operational screens: compact, scan-friendly hierarchy. */
.insights-nav{
  display:flex;gap:3px;align-items:center;overflow-x:auto;max-width:100%;
  margin:0 0 16px;padding:3px;border-bottom:1px solid #e7e0e2;
  scrollbar-width:thin;
}
.insights-nav a{
  flex:0 0 auto;padding:8px 12px;color:#58606a;font-size:.82rem;
  font-weight:650;text-decoration:none;border-bottom:2px solid transparent;
}
.insights-nav a:hover{color:#921e29;background:#fff7f8}
.insights-nav a.active{color:#921e29;border-bottom-color:#dc3545}
.insights-nav a:focus-visible{outline:2px solid #dc3545;outline-offset:-2px}
.insight-local-tabs{gap:4px;border-bottom:1px solid #e5e7eb;margin:0 0 12px}
.insight-local-tabs .nav-link{
  border:0;border-bottom:2px solid transparent;border-radius:0;
  color:#58606a;background:transparent;padding:8px 12px;
  font-size:.82rem;font-weight:700
}
.insight-local-tabs .nav-link:hover{color:#921e29;background:#fff7f8}
.insight-local-tabs .nav-link.active{
  color:#921e29;background:transparent;border-bottom-color:#dc3545
}
.insight-local-tabs .nav-link:focus-visible{outline:2px solid #dc3545;outline-offset:-2px}
.dashboard-filter-card{padding:10px 14px;margin-bottom:15px!important}
.dashboard-filter-card .collapsible-title{margin:0;font-size:.84rem}
.dashboard-filter-card .dashboard-filter-bar{padding-top:8px!important}
.dashboard-filter-card .jira-filter-chip,
.metrics-page .jira-filter-chip,
.panel-page .jira-filter-chip{min-height:34px!important;border-radius:6px!important}
.dashboard-filter-card .jira-filter-dates input,
.metrics-page .jira-filter-dates input,
.panel-page .jira-filter-dates input{min-height:34px!important;border-radius:6px!important}
.report-grid{gap:12px;margin-bottom:16px!important}
.report-grid>.soft-card{padding:14px}
.report-grid .bar-row{padding:5px 0;font-size:.8rem}
.report-grid .progress{height:5px}
.kpi-card{padding:11px 13px}
.kpi-value{font-size:1.48rem}
.metrics-page .metrics-kpis{gap:10px;margin:12px 0 16px}
.metrics-page .metric-kpi{border-radius:10px;padding:11px 14px}
.metrics-page .metric-kpi-value{font-size:1.6rem}
.metrics-page .metric-grid{gap:12px}
.metrics-page .metric-card{border-radius:10px;padding:14px 15px}
.metrics-page .metric-card canvas{height:255px!important}
.metrics-page .metric-card h3{font-size:.82rem;margin-bottom:10px}
.exec-page .exec-grid-kpi{gap:10px;margin-bottom:14px}
.exec-page .exec-kpi{border-radius:6px;padding:12px 14px}
.exec-page .exec-kpi-val{font-size:1.68rem}
.exec-page .exec-kpi-lbl{font-size:.68rem;letter-spacing:0;margin-top:5px}
.exec-page .exec-card{border-radius:6px;padding:13px 15px}
.exec-page .exec-card-title{font-size:.83rem;letter-spacing:0;margin-bottom:10px}
.exec-page .exec-section{gap:12px;margin-bottom:12px}
.exec-page .agent-avatar{background:#fff1f2;color:#921e29}
.panel-page .panel-toolbar,.panel-page .filter-bar{
  background:#fff;border-radius:6px;border:1px solid #e5e7eb;
  padding:10px 12px;margin-bottom:12px
}
.panel-page .add-widget-form{
  background:#fff;border-radius:6px;padding:10px 12px;margin-bottom:14px
}
.panel-page .panel-add-widget-summary{
  color:#303640;font-size:.83rem;font-weight:700;cursor:pointer
}
.panel-page .add-widget-form form{margin-top:12px}
.panel-page .widget-card{border-radius:6px;padding:13px;margin-bottom:12px}
.panel-page .widget-chart-wrap{height:200px}
.panel-page .widget-kpi-val{font-size:2rem}
.work-kpis{grid-template-columns:repeat(auto-fit,minmax(135px,1fr));gap:9px;margin-bottom:14px}
.work-kpi{border-radius:6px;padding:11px 12px;box-shadow:none}
.work-kpi .value{font-size:1.5rem;color:#303640}
.work-kpi .label{font-size:.68rem;letter-spacing:0}
.work-grid{gap:12px}
.work-section{border-radius:6px;padding:12px;margin-bottom:12px}
.work-section-title{font-size:.9rem}
.work-code{color:#921e29}
.work-list-tabs{display:flex;gap:4px;overflow-x:auto;margin-bottom:10px;border-bottom:1px solid #e5e7eb}
.work-list-tabs button{
  border:0;border-bottom:2px solid transparent;background:none;color:#59616b;
  padding:8px 10px;white-space:nowrap;font-size:.8rem;font-weight:700
}
.work-list-tabs button.active{border-color:#dc3545;color:#921e29}
.work-list-tabs button:hover{background:#fff7f8}
.work-list-tabs button:focus-visible{outline:2px solid #dc3545;outline-offset:-2px}
.work-list-tabs span{font-variant-numeric:tabular-nums;color:#7a8088;margin-left:3px}
[data-work-panel][hidden]{display:none!important}

/* Ticket creation: essentials first, optional evidence stays available. */
.ticket-create-page{max-width:1060px;margin-inline:auto}
.ticket-create-page .create-hero{
  padding:0 0 10px;margin:0;border:0;border-radius:0;background:none;
  box-shadow:none;align-items:center
}
.ticket-create-page .page-title{font-size:1.35rem;letter-spacing:0}
.vertical-create-page .create-ticket-form{gap:0}
.vertical-create-page .create-section-card{
  border:0;border-bottom:1px solid #e7e0e2;border-radius:0;
  padding:9px 0 12px;box-shadow:none;background:transparent
}
.vertical-create-page .create-context-section{padding-top:0}
.ticket-create-page .create-section-head{
  margin-bottom:11px;padding:0;border:0;align-items:center
}
.ticket-create-page .create-section-title{font-size:.9rem;color:#303640;font-weight:750}
.ticket-create-page .create-section-subtitle{display:none}
.vertical-create-page .create-context-grid{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 14px
}
.ticket-create-page .linear-field{min-width:0;gap:4px}
.ticket-create-page .form-label{font-size:.76rem;font-weight:700;color:#434a53;margin:0}
.ticket-create-page .form-control,.ticket-create-page .form-select{
  min-height:36px;padding:6px 10px;border-radius:6px;font-size:.84rem
}
.ticket-create-page .input-help{display:none;font-size:.73rem;margin:0}
.ticket-create-page #clienteTicketHelp,
.ticket-create-page #helpPadre{display:block}
.ticket-create-page .create-info-note{
  grid-column:1/-1;padding:8px 10px;background:#f7f7f8;
  color:#505862;border:1px solid #e5e7eb;border-radius:6px;font-size:.8rem
}
.ticket-create-page .create-hierarchy{
  margin-top:12px;padding-top:12px;border-top:1px solid #e5e7eb
}
.ticket-create-page .create-hierarchy-title{
  font-size:.8rem;color:#5a4347;font-weight:750;margin-bottom:7px
}
.ticket-create-page .create-title-input{min-height:40px;font-size:.9rem}
.ticket-create-page .rich-editor-shell{border-radius:6px}
.ticket-create-page .rich-editor-toolbar{padding:6px;gap:3px;background:#f8f8f9}
.ticket-create-page .rich-editor-toolbar .btn{padding:4px 7px;font-size:.75rem}
.ticket-create-page .rich-editor-content{min-height:175px;padding:11px 12px;font-size:.86rem}
.ticket-create-page .create-attachments-section .create-section-head{
  display:flex;justify-content:space-between;cursor:pointer;list-style:none;margin:0
}
.ticket-create-page .create-attachments-section .create-section-head::-webkit-details-marker{display:none}
.ticket-create-page .create-attachments-section[open] .create-section-head{margin-bottom:10px}
.ticket-create-page .create-attachments-count{font-size:.73rem;color:#7a8088;font-weight:500}
.ticket-create-page .create-upload-box{padding:9px;border-radius:6px}
.ticket-create-page .create-upload-label{gap:9px}
.ticket-create-page .upload-clip{width:30px;height:30px;border-radius:5px}
.ticket-create-page .create-action-bar{
  margin:0;padding:10px 0;border:0;border-top:1px solid #e7e0e2;border-radius:0;
  box-shadow:none;background:rgba(255,255,255,.97);backdrop-filter:none
}
.ticket-create-page .create-submit-btn{min-width:120px}

/* Configurable activity breakdown. */
.calendar-dimension-toolbar{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin:0 0 9px}
.calendar-dimension-label{font-size:.75rem;font-weight:700;color:#505862;white-space:nowrap}
.calendar-dimension-list{display:flex;gap:5px;flex-wrap:wrap;min-width:0}
.calendar-dimension-chip{
  display:flex;align-items:center;gap:2px;padding:2px 3px 2px 8px;
  border:1px solid #e8b3bb;border-radius:5px;background:#fff7f8;
  color:#7f1720;font-size:.75rem;font-weight:700;cursor:grab
}
.calendar-dimension-chip button{
  width:20px;height:21px;padding:0;border:0;background:transparent;color:#921e29
}
.calendar-dimension-chip button:hover:not(:disabled){background:#f9dfe3}
.calendar-dimension-chip button:disabled{opacity:.32}
#calendarDimensionAdd{width:auto;max-width:135px;min-height:29px;font-size:.75rem}
#calendarDimensionAddButton{min-height:29px;padding:2px 9px}
.time-calendar-table tr td{height:29px}
@media(max-width:1100px){
  .exec-page .exec-section{grid-template-columns:1fr!important}
  .work-grid{grid-template-columns:1fr}
}
@media(max-width:800px){
  .vertical-create-page .create-context-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .metrics-page .metric-grid{grid-template-columns:1fr}
  .panel-page #widgetsGrid>[class^="col-"]{flex:0 0 50%;max-width:50%}
}
@media(max-width:560px){
  .vertical-create-page .create-context-grid{grid-template-columns:1fr}
  .ticket-create-page .create-hero{align-items:flex-start}
  .ticket-create-page .create-hero-actions{margin-left:auto}
  .ticket-create-page .create-action-bar .btn{flex:1}
  .work-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .work-ticket,.work-ticket[style]{grid-template-columns:66px minmax(0,1fr) auto!important;gap:6px}
  .work-ticket>div{min-width:0;overflow-wrap:anywhere}
  .work-list-tabs button{padding:7px 8px}
  .panel-page #widgetsGrid>[class^="col-"]{flex:0 0 100%;max-width:100%}
  .panel-page .add-widget-form form>div{width:100%}
  .panel-page .add-widget-form select,
  .panel-page .add-widget-form input{min-width:0!important;width:100%}
  .exec-page .bar-label{width:95px}
  .calendar-dimension-toolbar{align-items:flex-start}
}

/* ═══════════════════════════════════════════════════════════════
   TICKET DETAIL — secciones más limpias / menos prominentes
   ═══════════════════════════════════════════════════════════════ */
.ticket-layout .soft-card{
  box-shadow:0 1px 3px rgba(16,24,40,.04);
  border-color:#e9ebee;
}
.ticket-layout .soft-card:hover{
  box-shadow:0 2px 8px rgba(16,24,40,.07);
}
/* Sección genérica sin relleno extra (para linkedCard y similares) */
.tk-section-card{
  background:#fff;
  border:1px solid #e9ebee;
  border-radius:var(--radius);
  padding:1.1rem 1.25rem;
  margin-bottom:.75rem;
  box-shadow:0 1px 3px rgba(16,24,40,.04);
  transition:box-shadow .15s;
}
.tk-section-card:hover{box-shadow:0 2px 8px rgba(16,24,40,.07)}

/* Tabla de actividades vinculadas */
.linked-table{
  display:flex;
  flex-direction:column;
  gap:0;
  border:1px solid #e9ebee;
  border-radius:var(--radius-sm);
  overflow:hidden;
}
.linked-row{
  display:grid;
  grid-template-columns:120px 90px minmax(0,1fr) auto auto;
  align-items:center;
  gap:.5rem;
  padding:.5rem .75rem;
  border-bottom:1px solid #f0f2f5;
  background:#fff;
  transition:background .1s;
}
.linked-row:last-child{border-bottom:0}
.linked-row:hover{background:#f8fafc}

.linked-row-rel{
  font-size:.71rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.04em;
  color:var(--muted);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.linked-row-code{
  font-size:.8rem;
  font-weight:700;
  color:var(--primary);
  text-decoration:none;
  white-space:nowrap;
}
.linked-row-code:hover{text-decoration:underline}
.linked-pending-code{border:0;background:none;padding:0;text-align:left;cursor:pointer;font:inherit;font-weight:700;color:var(--primary)}
.linked-row-title{
  font-size:.8125rem;
  color:var(--text);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  min-width:0;
}
.linked-row-status{
  font-size:.68rem;
  font-weight:700;
  border-radius:999px;
  padding:.16rem .55rem;
  white-space:nowrap;
  line-height:1.4;
}

/* ═══════════════════════════════════════════════════════════════
   ADJUNTOS — tira horizontal con scroll
   ═══════════════════════════════════════════════════════════════ */
.attach-strip-wrap{
  overflow-x:auto;
  overflow-y:visible;
  padding-bottom:6px;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:thin;
  scrollbar-color:var(--border-strong) transparent;
}
.attach-strip-wrap::-webkit-scrollbar{height:5px}
.attach-strip-wrap::-webkit-scrollbar-track{background:transparent}
.attach-strip-wrap::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:99px}

.attach-strip{
  display:flex;
  gap:.6rem;
  align-items:flex-start;
  width:max-content;
  padding:2px 0;
}

.attach-tile{
  position:relative;
  display:flex;
  flex-direction:column;
  width:110px;
  flex-shrink:0;
  border:1px solid var(--border);
  border-radius:var(--radius-sm);
  background:#fff;
  overflow:hidden;
  transition:box-shadow .15s ease,border-color .15s ease;
  cursor:default;
}
.attach-tile:hover{
  box-shadow:var(--shadow-soft);
  border-color:#c7d0dd;
}

.attach-tile-thumb{
  width:100%;
  height:76px;
  background:#f8fafc;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  border-bottom:1px solid var(--border);
  flex-shrink:0;
}
.attach-tile-img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.attach-tile-icon-big{
  font-size:2rem;
  line-height:1;
  opacity:.82;
  display:block;
}
.attach-tile--archive .attach-tile-thumb{background:#f1f5f9}
.attach-tile--executable .attach-tile-thumb{background:#fff3ee}
.attach-tile-special-icon{width:30px;height:30px;color:#526d87}
.attach-tile--executable .attach-tile-special-icon{color:#a75438}
.attach-tile-type{position:absolute;top:5px;right:5px;z-index:1;padding:1px 5px;border-radius:3px;background:#e3eaf1;color:#40566e;font-size:.6rem;line-height:1.3}
.attach-tile--executable .attach-tile-type{background:#fbe3d8;color:#8c3d29}
.ticket-attachment-player{width:min(100%,820px);margin-top:12px;border:1px solid #dce3eb;border-radius:6px;overflow:hidden;background:#fff}
.ticket-attachment-player[hidden]{display:none}
.ticket-attachment-player-bar{display:flex;align-items:center;gap:12px;padding:7px 10px;font-size:.78rem;color:#344054}
.ticket-attachment-player-bar span{min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ticket-attachment-player-bar a{flex:none}
.ticket-attachment-player-bar button{flex:none;border:0;background:transparent;color:#52637a;font-size:1.2rem;line-height:1}
.ticket-attachment-player video{display:block;width:100%;aspect-ratio:16/9;max-height:min(70vh,600px);object-fit:contain;background:#111}
.ticket-attachment-player p{margin:0;padding:9px 10px;color:#a32637;font-size:.78rem}
.attach-tile-play{
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:1.4rem;
  color:#fff;
  text-shadow:0 1px 4px rgba(0,0,0,.5);
  pointer-events:none;
}
.attach-tile-play span{display:grid;place-items:center;width:31px;height:31px;padding-left:2px;border-radius:50%;background:rgba(14,24,38,.8);font-size:.9rem;text-shadow:none;box-shadow:0 1px 5px rgba(0,0,0,.22)}
.attach-tile-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;visibility:hidden;pointer-events:none}
.attach-tile-video[data-ready="true"]{visibility:visible}
.attach-tile-thumb-btn{
  position:relative;
  width:100%;
  height:100%;
  border:0;
  background:transparent;
  padding:0;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
}
.attach-tile-thumb-btn:hover .attach-tile-icon-big{opacity:.7}
.attach-tile-thumb-btn:hover .attach-tile-play span{background:#182b43}

.attach-tile-foot{
  padding:5px 6px 4px;
  flex:1;
  min-width:0;
}
.attach-tile-name{
  font-size:.7rem;
  font-weight:600;
  color:var(--text);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  line-height:1.3;
}
.attach-tile-meta{
  font-size:.65rem;
  color:var(--muted);
  margin-top:1px;
  line-height:1.2;
}

/* Botones de acción — capa superpuesta al hacer hover */
.attach-tile-actions{
  position:absolute;
  bottom:0;left:0;right:0;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:3px;
  padding:4px 3px;
  background:rgba(255,255,255,.93);
  border-top:1px solid var(--border);
  opacity:0;
  transition:opacity .15s ease;
  pointer-events:none;
}
.attach-tile:hover .attach-tile-actions{
  opacity:1;
  pointer-events:auto;
}
.attach-act-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:26px;height:26px;
  border-radius:5px;
  border:1px solid var(--border);
  background:#fff;
  color:var(--text);
  font-size:.8rem;
  cursor:pointer;
  text-decoration:none;
  transition:background .12s;
  flex-shrink:0;
  padding:0;
  line-height:1;
}
.attach-act-btn:hover{background:#f0f4f8;color:var(--text);text-decoration:none}
.attach-act-del{border-color:#fca5a5;color:#dc2626}
.attach-act-del:hover{background:#fee2e2;color:#b91c1c}

/* ═══════════════════════════════════════════════════════════════
   ACTIVIDADES VINCULADAS — sidebar card
   ═══════════════════════════════════════════════════════════════ */
.linked-list{
  display:flex;
  flex-direction:column;
  gap:4px;
  max-height:220px;
  overflow-y:auto;
  scrollbar-width:thin;
  scrollbar-color:var(--border-strong) transparent;
}
.linked-list::-webkit-scrollbar{width:4px}
.linked-list::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:99px}

.linked-item{
  border:1px solid var(--border);
  border-radius:6px;
  padding:5px 7px;
  background:#fafbfc;
}

.linked-relation{
  display:block;
  font-size:.65rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.04em;
  color:var(--muted);
  margin-bottom:3px;
}
.linked-ticket-row{
  display:flex;
  align-items:center;
  gap:4px;
  min-width:0;
}
.linked-type-icon{
  font-size:.75rem;
  flex-shrink:0;
  opacity:.6;
}
.linked-code{
  font-size:.72rem;
  font-weight:700;
  color:var(--primary);
  flex-shrink:0;
  white-space:nowrap;
  text-decoration:none;
}
.linked-code:hover{text-decoration:underline}
.linked-title{
  font-size:.72rem;
  color:var(--text);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  flex:1;
  min-width:0;
}
.linked-status{
  font-size:.6rem;
  font-weight:700;
  border-radius:999px;
  padding:.14rem .45rem;
  white-space:nowrap;
  flex-shrink:0;
  line-height:1.4;
}
.linked-remove-form{display:flex;align-items:center}
.linked-remove-btn{
  width:18px;height:18px;
  border-radius:50%;
  border:1px solid #fca5a5;
  background:#fff;
  color:#dc2626;
  font-size:.75rem;
  line-height:1;
  cursor:pointer;
  flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  padding:0;
  transition:background .12s;
}
.linked-remove-btn:hover{background:#fee2e2}

/* Lista en modo main (contenido principal — más ancha) */
.linked-list-main{
  display:flex;
  flex-direction:column;
  gap:5px;
}
.linked-item-main{
  border:1px solid var(--border);
  border-radius:6px;
  padding:6px 10px;
  background:#fafbfc;
}
.linked-search-main{
  display:flex;
  gap:8px;
  align-items:center;
}
.linked-tipo-sel-main{
  flex-shrink:0;
  width:160px;
  font-size:.8125rem;
  padding:.35rem .6rem;
  border:1px solid var(--border-strong);
  border-radius:6px;
  background:#fff;
  color:var(--text);
}
.linked-tipo-sel-main:focus{outline:none;border-color:#93c5fd;box-shadow:0 0 0 2px rgba(37,99,235,.12)}
.linked-search-input-main{
  width:100%;
  font-size:.8125rem;
  padding:.35rem .7rem;
  border:1px solid var(--border-strong);
  border-radius:6px;
  background:#fff;
  color:var(--text);
  outline:none;
  transition:border-color .12s;
}
.linked-search-input-main:focus{border-color:#93c5fd;box-shadow:0 0 0 2px rgba(37,99,235,.12)}
.linked-search-input-main::placeholder{color:#9ca3af}

/* Formulario de búsqueda */
.linked-search-wrap{
  display:flex;
  flex-direction:column;
  gap:4px;
}
.linked-tipo-sel{
  width:100%;
  font-size:.72rem;
  padding:.3rem .55rem;
  border:1px solid var(--border-strong);
  border-radius:5px;
  background:#fff;
  color:var(--text);
  appearance:auto;
}
.linked-tipo-sel:focus{outline:none;border-color:#93c5fd;box-shadow:0 0 0 2px rgba(37,99,235,.12)}

.linked-search-input-wrap{
  position:relative;
}
.linked-search-input{
  width:100%;
  font-size:.75rem;
  padding:.32rem .6rem;
  border:1px solid var(--border-strong);
  border-radius:5px;
  background:#fff;
  color:var(--text);
  outline:none;
  transition:border-color .12s;
}
.linked-search-input:focus{border-color:#93c5fd;box-shadow:0 0 0 2px rgba(37,99,235,.12)}
.linked-search-input::placeholder{color:#9ca3af}

.linked-dropdown{
  position:absolute;
  top:calc(100% + 2px);
  left:0;right:0;
  background:#fff;
  border:1px solid var(--border-strong);
  border-radius:7px;
  box-shadow:0 8px 24px rgba(16,24,40,.13);
  z-index:999;
  overflow:hidden;
  max-height:220px;
  overflow-y:auto;
  scrollbar-width:thin;
}
.linked-dropdown:empty{display:none}

.link-drop-item{
  display:flex;
  align-items:flex-start;
  gap:6px;
  padding:6px 10px;
  cursor:pointer;
  border-bottom:1px solid #f3f4f6;
  transition:background .1s;
}
.link-drop-item:last-child{border-bottom:0}
.link-drop-item:hover,.link-drop-item.foc{background:#eff6ff}

.link-drop-code{
  font-size:.7rem;
  font-weight:700;
  color:var(--primary);
  white-space:nowrap;
  flex-shrink:0;
  padding-top:1px;
}
.link-drop-title{
  font-size:.75rem;
  color:var(--text);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  flex:1;
  min-width:0;
}
.link-drop-badge{
  font-size:.62rem;
  font-weight:700;
  border-radius:999px;
  padding:.1rem .4rem;
  white-space:nowrap;
  flex-shrink:0;
  line-height:1.5;
  margin-top:1px;
}

/* Preview de seleccionado + botón vincular */
.linked-selected-preview{
  display:flex;
  align-items:center;
  gap:5px;
  margin-top:5px;
  padding:5px 7px;
  background:#eff6ff;
  border:1px solid #bfdbfe;
  border-radius:6px;
  flex-wrap:wrap;
}
.linked-selected-preview>span:first-of-type{
  font-size:.72rem;
  font-weight:600;
  color:#1e40af;
  flex:1;
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.linked-clear-btn{
  width:18px;height:18px;
  border-radius:50%;
  border:1px solid #93c5fd;
  background:#fff;
  color:#1d4ed8;
  font-size:.75rem;
  cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  padding:0;
  flex-shrink:0;
  transition:background .12s;
}
.linked-clear-btn:hover{background:#dbeafe}
.linked-confirm-btn{
  font-size:.72rem;
  font-weight:700;
  padding:.28rem .7rem;
  border-radius:5px;
  border:0;
  background:var(--primary);
  color:#fff;
  cursor:pointer;
  flex-shrink:0;
  transition:background .12s;
  white-space:nowrap;
}
.linked-confirm-btn:hover{background:var(--primary-dark)}

/* ── Multi-chip link selector ──────────────────────────────────────────── */
.link-multi-row{
  display:flex;
  gap:8px;
  align-items:flex-start;
}
.link-chip-box{
  flex:1;
  min-width:0;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:4px;
  border:1px solid var(--border-strong);
  border-radius:7px;
  background:#fff;
  padding:4px 6px;
  cursor:text;
  transition:border-color .12s, box-shadow .12s;
  min-height:36px;
  position:relative;
}
.link-chip-box:focus-within{border-color:#93c5fd;box-shadow:0 0 0 2px rgba(37,99,235,.12)}
.link-chip-tags{display:contents}
.link-chip{
  display:inline-flex;
  align-items:center;
  gap:4px;
  background:#eff6ff;
  border:1px solid #bfdbfe;
  border-radius:5px;
  padding:.18rem .35rem .18rem .5rem;
  font-size:.76rem;
  line-height:1.3;
  max-width:260px;
  flex-shrink:0;
}
.link-chip-code{font-weight:700;color:var(--primary);white-space:nowrap}
.link-chip-title{color:#374151;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:150px}
.link-chip-remove{
  display:inline-flex;align-items:center;justify-content:center;
  background:none;border:none;cursor:pointer;
  font-size:.9rem;line-height:1;
  color:#6b7280;padding:0 2px;
  border-radius:3px;
  transition:background .1s,color .1s;
}
.link-chip-remove:hover{background:#fee2e2;color:#dc2626}
.link-chip-input-wrap{flex:1;min-width:120px}
.link-chip-input{
  width:100%;
  border:none;
  outline:none;
  background:transparent;
  font-size:.8125rem;
  color:var(--text);
  padding:.22rem .3rem;
  min-width:120px;
}
.link-chip-input::placeholder{color:#9ca3af}
.link-actions{
  display:flex;
  align-items:center;
  gap:6px;
  margin-top:6px;
}
.linked-cancel-btn{
  font-size:.72rem;
  font-weight:600;
  padding:.28rem .65rem;
  border-radius:5px;
  border:1px solid var(--border-strong);
  background:#fff;
  color:var(--muted);
  cursor:pointer;
  transition:background .12s;
  white-space:nowrap;
}
.linked-cancel-btn:hover{background:#f3f4f6;color:var(--text)}
/* Manual parameter catalog forms */
.param-form-picker .jira-filter-chip { display:flex;align-items:center;justify-content:space-between;width:100%;max-width:none;min-height:38px;padding:0 12px;border:1px solid #cdd5e0;border-radius:6px;background:#fff;color:#253348;text-align:left;font-size:.84rem;font-weight:500; }
.param-form-picker .jira-filter-chip.has-selection { border-color:#9fb9db;background:#f7faff;color:#254b7d; }
.param-form-picker .jira-filter-menu { width:100%;min-width:0;max-width:none;max-height:330px; }
.param-field-heading { display:flex;align-items:center;min-height:24px;margin-bottom:5px; }
.param-client-heading { gap:18px;flex-wrap:wrap; }
.param-scope-choice { display:flex;align-items:center;gap:20px;min-height:0;font-size:.84rem;font-weight:400; }
.param-scope-choice label { display:inline-flex;align-items:center;gap:6px;white-space:nowrap;cursor:pointer; }
.param-scope-choice input { margin:0; }
.param-picker-error { margin-top:5px;color:#b42335;font-size:.76rem;font-weight:650; }
@media(max-width:575px) { .param-scope-choice { gap:12px;flex-wrap:wrap; } }
.param-area-row { flex-wrap: wrap; }
.param-area-row input { flex: 1 1 220px; min-width: 0; }

.app-sidebar .app-version-badge,
.app-sidebar .app-version-badge strong,
.app-sidebar .app-version-badge span { color:#20242a; }

/* Ticket properties: compact, readable groups with restrained color cues. */
.ticket-layout .side-card { border:1px solid #e5e1e2; border-radius:7px; box-shadow:0 1px 3px rgba(22,27,34,.05); }
.ticket-property-heading { padding:9px 11px;font-size:.73rem;font-weight:400;color:#262c34;border-bottom:1px solid #ece7e8; }
.ticket-detail-heading{justify-content:space-between;background:#f8fafc;border-bottom:1px solid #e5e9ef}
.ticket-detail-heading>span{display:flex;align-items:center}
.ticket-detail-reset{display:grid;place-items:center;width:26px;height:26px;padding:0;border:1px solid transparent;border-radius:5px;background:transparent;color:#66788e;cursor:pointer}
.ticket-detail-reset:hover,.ticket-detail-reset:focus-visible{background:#e9eef4;color:#274969}
.ticket-detail-reset[hidden]{display:none}
.ticket-detail-reset svg{width:14px;height:14px}
.ticket-detail-reset i,.detail-drag-handle i{font-style:normal}
.ticket-side-action .btn{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;min-height:34px;font-weight:500}
.ticket-side-action .btn svg{width:14px;height:14px}
.ticket-side-action .ticket-cancel-action{background:#c93242;border-color:#c93242;color:#fff}
.ticket-side-action .ticket-cancel-action:hover{background:#ad2433;border-color:#ad2433}
#ticketDetailFields.has-detail-handles>.pp-row{grid-template-columns:22px 106px minmax(0,1fr) auto auto;padding-left:6px;border-top:1px solid #e9edf2}
#ticketDetailFields.has-detail-handles>.pp-row:first-child{border-top:0}
.detail-drag-handle{display:grid;place-items:center;width:22px;height:28px;padding:0;border:0;border-radius:4px;background:transparent;color:#8793a3;cursor:grab;touch-action:none}
.detail-drag-handle:hover,.detail-drag-handle:focus-visible{background:#e9eef4;color:#385c7d;outline:none}
.detail-drag-handle:active{cursor:grabbing}
.detail-drag-handle svg{width:14px;height:14px}
.ticket-detail-fields>.detail-row-dragging{position:relative;z-index:2;background:#f2f7fc;box-shadow:0 0 0 1px #9bb9d8}
.detail-order-status{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.ticket-layout .pp-card .pp-lbl { color:#454d58;font-weight:400; }
.ticket-layout .pp-card .pp-row { min-height:42px; }
.ticket-summary-card summary { font-weight:400;color:#252b34; }
.ticket-summary-list { display:grid;gap:2px; }
.ticket-summary-group { margin-top:8px;padding:6px 8px 3px;color:#9a2733;font-size:.68rem;font-weight:400;text-transform:uppercase; }
.ticket-summary-row { display:grid;grid-template-columns:108px minmax(0,1fr);gap:6px;align-items:start;padding:6px 8px;border-radius:5px;font-size:.78rem; }
.ticket-summary-row:nth-of-type(even) { background:#f8f8f9; }
.ticket-summary-row span { color:#59616d;font-weight:400; }
.ticket-summary-row strong { color:#20252c;font-weight:400;overflow-wrap:anywhere; }
.ticket-state-pill { display:inline-block;width:max-content;max-width:100%;padding:2px 7px;border-radius:4px; }
.ticket-commercial-card { border-top:3px solid #b73d4a !important; }
.ticket-commercial-card summary { font-weight:400;color:#252b34; }
.ticket-commercial-body { padding-top:10px; }
.ticket-commercial-totals { display:grid;gap:3px; }
.ticket-commercial-totals>div { display:flex;justify-content:space-between;gap:8px;padding:5px 7px;border-radius:5px;background:#f8f8f9;font-size:.76rem; }
.ticket-commercial-totals span { color:#59616d;font-weight:400; }
.ticket-commercial-totals strong { color:#262c34;font-weight:400; }
.ticket-commercial-body .alert strong { font-weight:400; }
.ticket-commercial-totals .ticket-commercial-value { background:#fff2f1; }
.ticket-commercial-value strong { color:#9a2733; }
.ticket-quote-link { display:inline-block;margin-top:1px;color:#9a2733;font-size:.76rem;font-weight:400; }
@media(max-width:420px) { .ticket-summary-row { grid-template-columns:92px minmax(0,1fr); } }

/* Parameter catalog */
.param-filter-bar { display:flex;align-items:center;gap:7px;flex-wrap:nowrap;padding:12px;border:1px solid #dfe5eb;border-radius:7px;background:#fff; }
.param-filter-search { flex:1 1 260px;min-width:180px;margin:0; }
.param-filter-search .form-control { min-height:36px; }
.param-filter-options { display:flex;align-items:center;gap:6px;flex:0 0 auto; }
.param-filter-options .jira-filter-chip { min-height:36px;max-width:154px; }
.param-filter-options .jira-filter-dropdown:nth-last-child(-n+2) .jira-filter-menu { left:auto;right:0; }
.param-filter-bar>.btn { flex:0 0 auto;white-space:nowrap; }
.param-table-wrap { border:1px solid #dfe5eb;border-radius:7px;background:#fff;overflow-x:auto; }
.param-table { min-width:1060px;table-layout:fixed;font-size:.79rem; }
.param-table th { padding:9px 10px;background:#f5f7fa;color:#465264;font-size:.69rem;font-weight:800;text-transform:uppercase;white-space:nowrap; }
.param-table td { padding:8px 10px;border-color:#edf0f3;line-height:1.25; }
.param-table th:nth-child(1) { width:11%; }
.param-table th:nth-child(2) { width:16%; }
.param-table th:nth-child(3) { width:12%; }
.param-table th:nth-child(4) { width:14%; }
.param-table th:nth-child(5) { width:21%; }
.param-table th:nth-child(6) { width:19%; }
.param-table th:nth-child(7) { width:7%; }
.param-table .param-cell-clip { overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.param-table .param-group-start td { border-top:2px solid #bdcedb; }
.param-table th:nth-child(1) { width:12%; }
.param-table th:nth-child(2) { width:14%; }
.param-table th:nth-child(3) { width:11%; }
.param-table th:nth-child(4) { width:16%; }
.param-table th:nth-child(5) { width:21%; }
.param-table th:nth-child(6) { width:19%; }
.param-table th:nth-child(7) { width:7%; }
.param-code { display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:750;color:#b62f40;text-decoration:none; }
.param-code:hover { text-decoration:underline; }
.param-status,.param-catalog-state { display:inline-flex;align-items:center;gap:5px;white-space:nowrap;color:#5c6673;font-size:.73rem;font-weight:700; }
.param-status::before,.param-catalog-state::before { content:"";display:block;width:7px;height:7px;border-radius:50%;background:#9ba4ae; }
.param-status.is-active,.param-catalog-state.is-active { color:#1c7652; }
.param-status.is-active::before,.param-catalog-state.is-active::before { background:#219366; }
.param-catalog-heading { display:flex;align-items:end;justify-content:space-between;padding-bottom:10px;border-bottom:1px solid #dfe5eb; }
.param-catalog-heading h2 { margin:0;font-size:1rem;font-weight:800;color:#202c3a; }
.param-catalog-heading span { color:#687486;font-size:.74rem; }
.param-catalog-create { display:flex;align-items:end;gap:9px;padding:14px 0 16px;border-bottom:1px solid #dfe5eb; }
.param-catalog-fields { display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:9px;flex:1;min-width:0; }
.param-catalog-fields label { display:block;min-width:0;font-size:.72rem;font-weight:750;color:#48566a; }
.param-catalog-fields .form-control { margin-top:4px;font-size:.8rem; }
.param-catalog-create>.btn { flex:0 0 auto;white-space:nowrap; }
.param-catalog-item { border-bottom:1px solid #e8edf1; }
.param-catalog-item summary { display:flex;align-items:center;gap:10px;min-height:59px;padding:8px 2px;cursor:pointer;list-style:none; }
.param-catalog-item summary::-webkit-details-marker { display:none; }
.param-catalog-item summary:hover { background:#f8fafc; }
.param-catalog-icon { display:grid;place-items:center;flex:0 0 32px;width:32px;height:32px;border-radius:6px;background:#e8effc;color:#2764b5;font-weight:800; }
.param-catalog-icon.is-database { background:#e5f5ee;color:#25805c; }
.param-catalog-name { display:flex;flex-direction:column;min-width:0;flex:1; }
.param-catalog-name strong { overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.82rem;color:#253348; }
.param-catalog-name small { overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#687486;font-size:.72rem; }
.param-catalog-count { white-space:nowrap;font-size:.71rem;color:#687486; }
.param-catalog-edit { color:#ac3140;font-size:.72rem;font-weight:750; }
.param-catalog-editform { padding:12px 10px 15px 42px;background:#f8fafc;border-top:1px solid #e8edf1; }
.param-catalog-editactions { display:flex;align-items:center;justify-content:space-between;margin-top:10px; }
.param-catalog-editactions .form-check-label { display:flex;align-items:center;gap:6px;font-size:.78rem;font-weight:650; }
@media(max-width:1200px) { .param-filter-bar { flex-wrap:wrap; } .param-filter-search { flex-basis:100%; } }
@media(max-width:650px) { .param-filter-options { flex-wrap:wrap;width:100%; } .param-catalog-create { flex-wrap:wrap; } .param-catalog-fields { grid-template-columns:1fr;flex-basis:100%; } .param-catalog-count { display:none; } }
.param-detail-head { padding-bottom:15px;border-bottom:1px solid #dfe5eb; }
.param-detail-path { margin-bottom:5px;color:#687486;font-size:.74rem; }
.param-detail-path span { padding:0 6px;color:#a2abb7; }
.param-detail-path strong { color:#a83243; }
.param-detail-section { padding:17px 0 19px;border-bottom:1px solid #e6eaef; }
.param-detail-section:first-child { padding-top:0; }
.param-detail-section-head { display:flex;align-items:center;gap:12px;margin-bottom:12px; }
.param-detail-section-head::before { content:"";width:3px;height:17px;background:#b83949;border-radius:2px; }
.param-detail-section-head h2 { margin:0;color:#243247;font-size:.92rem;font-weight:800; }
.param-detail-copy { max-width:82ch;white-space:pre-wrap;overflow-wrap:anywhere;color:#344155;font-size:.88rem;line-height:1.65; }
.param-scope-list { margin:0;row-gap:2px;font-size:.84rem; }
.param-scope-list dt { color:#59677a;font-weight:750; }
.param-scope-list dd { color:#253348;overflow-wrap:anywhere; }
.param-detail-meta dt { color:#59677a;font-size:.75rem; }
.param-detail-meta dd { margin-bottom:12px;color:#253348;font-size:.82rem; }

/* Ticket creation and external customer overview. */
.ticket-create-page { max-width:1380px; }
.ticket-create-page .create-hero { padding-bottom:16px;margin-bottom:14px; }
.create-hero-main { display:flex;align-items:center;gap:12px;min-width:0; }
.create-hero-icon { display:grid;place-items:center;flex:0 0 40px;width:40px;height:40px;border-radius:7px;background:#eef2ff;font-size:1.25rem; }
.ticket-create-layout { display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:22px;align-items:start; }
.ticket-create-layout .create-ticket-form { min-width:0; }
.ticket-create-page .create-section-head { display:flex;align-items:center;gap:9px; }
.ticket-create-page .create-step-icon { display:grid;place-items:center;flex:0 0 24px;width:24px;height:24px;border-radius:50%;background:#dc3545;color:#fff;font-size:.75rem;font-weight:800; }
.ticket-create-page .create-section-title { font-size:.94rem;color:#172b3f; }
.ticket-create-page .create-attachments-section .create-section-head { justify-content:flex-start; }
.ticket-create-page .create-attachments-count { margin-left:auto; }
.ticket-create-page .create-icon-field { position:relative;min-width:0; }
.ticket-create-page .create-icon-field>span { position:absolute;left:10px;top:50%;transform:translateY(-50%);width:19px;text-align:center;color:#346695;pointer-events:none;z-index:1;line-height:1; }
.ticket-create-page .create-icon-field>.form-control,
.ticket-create-page .create-icon-field>.form-select { width:100%;padding-left:38px; }
.ticket-create-page .create-readonly-field { display:flex;align-items:center;gap:9px;min-height:36px;padding:6px 10px;border:1px solid #dce4ed;border-radius:6px;background:#f7fafc;font-size:.84rem;min-width:0; }
.ticket-create-page .create-readonly-field span { color:#236d62; }
.ticket-create-page .create-readonly-field strong { overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:700; }
.vertical-create-page .create-context-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.ticket-create-page .create-priority-field { grid-column:1/-1;border:0;padding:0;margin:0; }
.ticket-create-page .create-priority-options { display:flex;gap:7px;flex-wrap:wrap; }
.ticket-create-page .create-priority-choice { position:relative;cursor:pointer; }
.ticket-create-page .create-priority-choice input { position:absolute;opacity:0;width:1px;height:1px; }
.ticket-create-page .create-priority-choice>span { display:inline-flex;align-items:center;gap:7px;min-width:90px;min-height:34px;padding:6px 11px;border:1px solid #dce4ed;border-radius:6px;background:#fff;color:#364252;font-size:.79rem;font-weight:700; }
.ticket-create-page .create-priority-choice i { width:9px;height:9px;border:2px solid currentColor;border-radius:50%; }
.ticket-create-page .priority-low { color:#16856a; }
.ticket-create-page .priority-medium { color:#aa7514; }
.ticket-create-page .priority-high { color:#ba5026; }
.ticket-create-page .priority-critical { color:#b32d46; }
.ticket-create-page .create-priority-choice input:checked+span { border-color:#aebed0;background:#f6f9fc;box-shadow:0 0 0 2px rgba(32,76,119,.07); }
.ticket-create-page .priority-low input:checked+span { border-color:#16856a;background:#edf9f5; }
.ticket-create-page .priority-medium input:checked+span { border-color:#bb861e;background:#fff8ea; }
.ticket-create-page .priority-high input:checked+span { border-color:#ba5026;background:#fff3ed; }
.ticket-create-page .priority-critical input:checked+span { border-color:#b32d46;background:#fff1f4; }
.ticket-create-page .create-priority-choice input:focus-visible+span { outline:2px solid #165ac2;outline-offset:2px; }
.ticket-create-page .create-upload-box.is-dragging { border-color:#1b71b3;background:#eef8ff; }
.create-summary-panel { position:sticky;top:74px;min-width:0;border:1px solid #dce4ed;border-radius:7px;background:#fff;box-shadow:0 2px 8px rgba(23,43,63,.05); }
.create-summary-heading { display:flex;align-items:center;gap:8px;padding:13px 14px;border-bottom:1px solid #e7edf3;background:#f7fafc; }
.create-summary-heading>span { color:#1959a5;font-size:1.15rem; }
.create-summary-heading h2 { margin:0;color:#1e3146;font-size:.83rem;font-weight:800; }
.create-summary-row { display:grid;grid-template-columns:90px minmax(0,1fr);gap:8px;align-items:start;padding:10px 14px;border-bottom:1px solid #eff2f5;font-size:.77rem; }
.create-summary-row:last-child { border-bottom:0; }
.create-summary-row>span { color:#667384;font-weight:650; }
.create-summary-row strong { color:#24364a;font-weight:750;overflow-wrap:anywhere; }
.ticket-panel-icon { display:inline-grid;place-items:center;width:18px;height:18px;margin-right:6px;color:#245d9b;font-size:.89rem;vertical-align:middle; }
.ticket-property-heading { display:flex;align-items:center; }
.ticket-summary-group { display:flex;align-items:center;gap:4px; }
.ticket-summary-card summary,.ticket-commercial-card summary { display:flex;align-items:center; }
.client-ticket-analysis { margin:14px 0;border:1px solid #dce5ee;border-radius:7px;background:#fff; }
.client-analysis-heading { display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 15px;border-bottom:1px solid #e9eef3; }
.client-analysis-heading h2 { margin:0;font-size:.92rem;font-weight:800;color:#26384a; }
.client-analysis-heading>span { color:#687787;font-size:.76rem; }
.client-analysis-layout { display:grid;grid-template-columns:205px minmax(0,1fr);gap:20px;padding:15px; }
.client-analysis-counts { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px; }
.client-analysis-counts>div { display:flex;flex-direction:column;justify-content:center;gap:2px;min-height:70px;padding:9px;background:#f3f7fb;border-radius:6px; }
.client-analysis-counts span { color:#5a6879;font-size:.7rem;font-weight:700; }
.client-analysis-counts strong { color:#1d334b;font-size:1.25rem;line-height:1.1; }
.client-status-chart { display:grid;gap:7px;min-width:0;max-height:180px;overflow-y:auto; }
.client-status-chart-row { display:grid;grid-template-columns:minmax(110px,180px) minmax(80px,1fr) 28px;gap:8px;align-items:center;font-size:.76rem; }
.client-status-name { min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#364455; }
.client-status-track { height:7px;background:#e9eff5;border-radius:4px;overflow:hidden; }
.client-status-track>span { display:block;height:100%;min-width:3px;border-radius:4px; }
.client-status-chart-row strong { text-align:right;color:#25374a; }
.client-chart-empty { display:grid;align-items:center;min-height:70px;color:#657388;font-size:.82rem; }
.client-ticket-tabs { display:flex;gap:2px;margin:6px 0 13px;border-bottom:1px solid #dfe6ee; }
.client-ticket-tabs a { padding:8px 13px;border-bottom:2px solid transparent;color:#5d6b79;text-decoration:none;font-size:.8rem;font-weight:700; }
.client-ticket-tabs a.active { border-color:#c93648;color:#982737; }
.client-ticket-tabs a:hover { background:#f7fafc; }
@media(max-width:1020px) { .ticket-create-layout { grid-template-columns:1fr; } .create-summary-panel { position:static; } }
@media(max-width:680px) { .vertical-create-page .create-context-grid { grid-template-columns:1fr; } .client-analysis-layout { grid-template-columns:1fr;gap:12px; } .client-status-chart-row { grid-template-columns:minmax(95px,130px) minmax(60px,1fr) 22px; } }

/* Searchable creation fields and compact ticket properties. */
.ticket-create-page .create-classification-row { grid-column:1/-1;display:flex;flex-wrap:nowrap;gap:10px;align-items:end;min-width:0; }
.ticket-create-page .create-classification-row .create-priority-field { flex:0 1 460px;min-width:0; }
.ticket-create-page .create-classification-row .create-priority-options { flex-wrap:nowrap;gap:4px; }
.ticket-create-page .create-classification-row .create-priority-choice { flex:1 1 0;min-width:0; }
.ticket-create-page .create-classification-row .create-priority-choice>span { min-width:0;width:100%;justify-content:center;min-height:30px;padding:3px 5px;font-size:.72rem; }
.ticket-create-page .create-classification-row .linear-field:has(.tipo-picker) { flex:0 0 auto;min-width:0; }
.ticket-create-page .rich-editor-toolbar .comment-format-toolbar { padding:0;border:0;background:transparent; }
.ticket-create-page .create-classification-row .create-priority-choice>span svg { width:10px!important;height:10px!important; }
/* Tipo picker custom dropdown */
.tipo-picker { position:relative;display:inline-block; }
.tipo-picker-trigger { display:inline-flex;align-items:center;gap:6px;padding:5px 9px;border:1px solid #dce4ed;border-radius:6px;background:#fff;cursor:pointer;min-width:110px;min-height:30px;user-select:none;font-size:.82rem; }
.tipo-picker-trigger:hover,.tipo-picker-trigger:focus-visible { border-color:#93aec8;outline:none; }
.tipo-picker-chip { display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border-radius:10px;font-size:.76rem;font-weight:700;white-space:nowrap; }
.tipo-picker-dropdown { position:absolute;top:calc(100% + 4px);left:0;z-index:200;min-width:220px;background:#fff;border:1px solid #dce4ed;border-radius:8px;box-shadow:0 4px 16px rgba(23,43,63,.14);padding:8px; }
.tipo-picker-search { width:100%;padding:5px 9px;border:1px solid #dce4ed;border-radius:5px;font-size:.82rem;margin-bottom:6px;box-sizing:border-box;outline:none; }
.tipo-picker-search:focus { border-color:#3b82f6; }
.tipo-picker-list { max-height:220px;overflow-y:auto;display:flex;flex-direction:column;gap:2px; }
.tipo-picker-item { padding:4px 6px;border-radius:6px;cursor:pointer; }
.tipo-picker-item:hover { background:#f4f6f8; }
.ticket-create-page .create-icon-field { position:relative; }
.ticket-create-page .create-icon-field>span:first-child { z-index:2; }
.ticket-create-page .create-icon-field>.create-native-select { position:absolute;width:1px;height:1px;padding:0;opacity:0;clip-path:inset(50%);pointer-events:none; }
.ticket-create-page .create-search-select-plain .create-select-trigger { padding-left:10px; }
.create-select-trigger { display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;height:36px;padding:6px 10px 6px 38px;border:1px solid #cfd7e3;border-radius:6px;background:#fff;color:#283649;text-align:left;font-size:.84rem; }
.create-select-trigger:hover { border-color:#7b9fc5; }
.create-select-trigger:focus-visible { outline:2px solid #2366bd;outline-offset:1px; }
.create-select-trigger:disabled { background:#eef1f5;color:#778291;cursor:not-allowed; }
.create-select-trigger.is-invalid { border-color:#c83343; }
.create-select-value { min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.create-select-chevron { flex:0 0 auto;font-size:1rem;line-height:1; }
.create-select-menu { position:absolute;top:calc(100% + 3px);left:0;width:100%;min-width:220px;z-index:250;background:#fff;border:1px solid #cad5e1;border-radius:6px;box-shadow:0 10px 25px rgba(29,50,72,.16);overflow:hidden; }
.create-select-menu[hidden],.create-select-option[hidden],.create-select-empty[hidden],.create-select-error[hidden] { display:none; }
.create-select-search { display:block;width:100%;height:36px;padding:7px 10px;border:0;border-bottom:1px solid #e3e8ee;outline:0;font-size:.8rem; }
.create-select-search:focus { border-bottom-color:#2366bd; }
.create-select-list { max-height:215px;overflow-y:auto;padding:4px; }
.create-select-option { display:block;width:100%;padding:7px 8px;border:0;border-radius:4px;background:transparent;text-align:left;color:#2b384a;font-size:.81rem; }
.create-select-option:hover,.create-select-option:focus-visible { background:#edf5fc;outline:0; }
.create-select-empty { padding:9px;color:#6a7787;font-size:.8rem; }
.create-select-error { color:#b22b3b;font-size:.72rem; }
.ticket-summary-row { grid-template-columns:128px minmax(0,1fr); }
.ticket-summary-row>span,.create-summary-row>span { display:flex;align-items:center;gap:5px;min-width:0; }
.ticket-summary-row i,.create-summary-row i,.pp-lbl i { display:inline-grid;place-items:center;flex:0 0 15px;width:15px;font-style:normal;font-size:.77rem;line-height:1;color:#416c95; }
.ticket-layout .pp-card .pp-row { grid-template-columns:106px minmax(0,1fr) auto auto; }
.ticket-layout .pp-card .pp-lbl { display:flex;align-items:center;gap:4px;letter-spacing:0; }
.create-summary-row { grid-template-columns:106px minmax(0,1fr); }
.client-ticket-filter-bar { display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin:0 0 12px;padding:9px 11px;border:1px solid #dce5ee;border-radius:6px;background:#fff; }
.client-ticket-filter-bar .jira-filter-dropdown { flex:0 0 auto; }
.client-empty-callout { display:flex;align-items:center;gap:9px;padding:12px 14px;background:#f0f8f5;border-left:3px solid #21856c;color:#1c594d;font-size:.82rem; }
.client-empty-callout a { margin-left:auto;color:#0b6453;font-weight:750;white-space:nowrap; }
@media(max-width:780px) { .ticket-create-page .create-classification-row { flex-wrap:wrap;gap:10px; } .ticket-create-page .create-classification-row .create-priority-field { flex:1 1 100%; } }
@media(max-width:480px) { .ticket-create-page .create-classification-row .create-priority-options { flex-wrap:wrap; } .ticket-create-page .create-classification-row .create-priority-choice { flex:1 1 calc(50% - 4px); } .ticket-summary-row { grid-template-columns:118px minmax(0,1fr); } }

/* External customer dashboard. */
.client-dashboard-page { max-width:1380px;margin-inline:auto; }
.client-dashboard-header { display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px; }
.client-dashboard-header h1 { margin:0;color:#203247;font-size:1.4rem;font-weight:800; }
.client-dashboard-header p { margin:3px 0 0;color:#667587;font-size:.83rem; }
.client-first-ticket { display:flex;align-items:center;gap:16px;padding:17px 19px;margin-bottom:17px;border:1px solid #b9e4d2;border-left:4px solid #208766;border-radius:6px;background:#f1faf6; }
.client-first-icon { display:grid;place-items:center;flex:0 0 42px;width:42px;height:42px;border-radius:6px;background:#d9f1e6;color:#147457;font-size:1.35rem; }
.client-first-ticket div:nth-child(2) { flex:1;min-width:0; }
.client-first-ticket h2 { margin:0 0 3px;font-size:.98rem;font-weight:800;color:#1d503f; }
.client-first-ticket p { margin:0;color:#446a5c;font-size:.82rem; }
.client-dashboard-kpis { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px;margin-bottom:16px; }
.client-kpi { display:flex;align-items:center;gap:12px;padding:13px 15px;border:1px solid #dfe7ee;border-radius:6px;background:#fff; }
.client-kpi-icon { display:grid;place-items:center;flex:0 0 34px;width:34px;height:34px;border-radius:6px;font-size:1.15rem; }
.client-kpi-icon.total { background:#e8f1fc;color:#2563a7; }
.client-kpi-icon.open { background:#fff3e1;color:#aa741f; }
.client-kpi-icon.closed { background:#e4f5ed;color:#1e855e; }
.client-kpi div { display:flex;flex-direction:column;gap:2px; }
.client-kpi div>span { color:#596b7b;font-size:.75rem;font-weight:700; }
.client-kpi strong { color:#20354a;font-size:1.38rem;line-height:1;font-weight:800; }
.client-dashboard-charts { display:grid;grid-template-columns:minmax(0,1.25fr) minmax(290px,.75fr);gap:14px;margin-bottom:15px; }
.client-chart-panel,.client-dashboard-states,.client-recent-tickets { min-width:0;padding:15px;border:1px solid #dfe7ee;border-radius:6px;background:#fff; }
.client-chart-head { display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:13px; }
.client-chart-head h2 { margin:0;color:#24394e;font-size:.9rem;font-weight:800; }
.client-chart-head span,.client-chart-head a { color:#617486;font-size:.74rem; }
.client-chart-head a { color:#226a9c;font-weight:750;text-decoration:none; }
.client-month-chart { display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:9px;height:185px; }
.client-month { display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:5px;min-width:0;text-align:center; }
.client-month strong { color:#344e64;font-size:.73rem; }
.client-month-track { display:flex;align-items:flex-end;width:min(100%,42px);height:125px;border-bottom:1px solid #cfdbe5; }
.client-month-track>span { display:block;width:100%;border-radius:4px 4px 0 0;background:#357fb3; }
.client-month-label { color:#637585;font-size:.72rem;text-transform:capitalize; }
.client-overview-chart { display:flex;align-items:center;justify-content:center;gap:24px;min-height:185px; }
.client-donut { display:grid;place-items:center;flex:0 0 145px;width:145px;height:145px;border-radius:50%;background:conic-gradient(#208766 0 var(--closed-pct),#e4edf2 var(--closed-pct) 100%); }
.client-donut>span { display:flex;flex-direction:column;align-items:center;justify-content:center;width:104px;height:104px;border-radius:50%;background:#fff; }
.client-donut strong { color:#274155;font-size:1.35rem;line-height:1; }
.client-donut small { color:#71808e;font-size:.7rem; }
.client-overview-legend { display:grid;gap:9px;min-width:110px; }
.client-overview-legend>div { display:grid;grid-template-columns:9px 1fr auto;gap:6px;align-items:center;color:#4b6172;font-size:.77rem; }
.client-legend-dot { width:8px;height:8px;border-radius:50%; }
.client-legend-dot.open { background:#b5c8d3; }
.client-legend-dot.closed { background:#208766; }
.client-overview-legend strong { color:#213b50; }
.client-dashboard-states { margin-bottom:15px; }
.client-dashboard-state-list { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px 25px; }
.client-dashboard-state-row { display:grid;grid-template-columns:minmax(100px,150px) minmax(60px,1fr) 28px;gap:8px;align-items:center;font-size:.78rem; }
.client-dashboard-state-row>span:first-child { overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#425568; }
.client-dashboard-state-row strong { text-align:right;color:#273e52; }
.client-recent-list { display:grid; }
.client-recent-item { display:grid;grid-template-columns:92px minmax(0,1fr) auto;gap:10px;align-items:center;padding:8px 0;border-top:1px solid #edf1f5;text-decoration:none;font-size:.79rem; }
.client-recent-item strong { color:#ae3342; }
.client-recent-item>span { overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#283b50; }
.client-recent-item small { max-width:165px;padding:3px 6px;border-radius:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.69rem;font-weight:750; }
.client-recent-item:hover>span { text-decoration:underline; }
@media(max-width:1000px) { .client-dashboard-charts { grid-template-columns:1fr; } }
@media(max-width:680px) { .client-dashboard-header { align-items:flex-start; } .client-dashboard-kpis { grid-template-columns:1fr; } .client-dashboard-state-list { grid-template-columns:1fr; } .client-first-ticket { align-items:flex-start;flex-wrap:wrap; } .client-first-ticket .btn { margin-left:58px; } }
@media(max-width:420px) { .client-overview-chart { gap:10px; } .client-donut { flex-basis:115px;width:115px;height:115px; } .client-donut>span { width:84px;height:84px; } .client-recent-item { grid-template-columns:74px minmax(0,1fr); } .client-recent-item small { grid-column:2;justify-self:start; } }

/* Editors for users and projects */
.admin-editor { width:100%; }
.admin-editor .page-title { letter-spacing:0; }
.admin-editor-back { display:inline-flex;align-items:center;gap:6px;margin-bottom:8px;color:#5d6b7a;font-size:.78rem;font-weight:650;text-decoration:none; }
.admin-editor-back:hover { color:#b72f42; }
.admin-editor-back svg { width:15px;height:15px; }
.admin-editor-grid { display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:16px;align-items:start; }
.admin-editor-main,.admin-editor-aside,.admin-editor-groups { min-width:0;border:1px solid #dce3eb;border-radius:6px;background:#fff;box-shadow:0 3px 12px rgba(25,45,70,.04); }
.admin-editor-main { padding:20px 22px; }
.admin-editor-section+.admin-editor-section { border-top:1px solid #e6ebf0;margin-top:20px;padding-top:20px; }
.admin-editor-section-head { display:flex;align-items:center;gap:10px;margin-bottom:16px; }
.admin-editor-section-head h2 { margin:0;color:#1d2b3e;font-size:1rem;font-weight:800; }
.admin-editor-section-icon { display:grid;place-items:center;width:34px;height:34px;flex:0 0 34px;border-radius:6px;background:#eaf1fa;color:#2362a5; }
.admin-editor-section-icon.is-green { background:#e8f5ef;color:#18805a; }
.admin-editor-section-icon.is-amber { background:#fff4df;color:#a76b16; }
.admin-editor-section-icon svg { width:18px;height:18px; }
.admin-editor .form-label { display:flex;align-items:center;gap:5px;margin-bottom:5px;color:#334255;font-size:.78rem;font-weight:700; }
.admin-editor .form-label svg { width:14px;height:14px;color:#53759a; }
.admin-editor .form-control,.admin-editor .form-select { min-height:39px;font-size:.84rem; }
.admin-editor .input-group-text { min-width:37px;justify-content:center;background:#f7f9fc;border-color:#cbd5e1;color:#58718f; }
.admin-editor .input-group-text svg,.admin-editor .admin-password-toggle svg { width:16px;height:16px; }
.admin-editor .form-text { margin-top:5px;color:#6a7788;font-size:.72rem;line-height:1.35; }
.admin-editor .is-disabled { opacity:.56; }
.admin-editor-setting { min-height:84px;padding:10px 0 4px;border-top:1px solid #e5ebf1; }
.admin-editor-setting-title { display:flex;align-items:center;gap:7px;margin-bottom:10px;color:#243448;font-size:.79rem;font-weight:750; }
.admin-editor-setting-title svg { width:16px;height:16px;color:#2877a7; }
.admin-editor-setting .form-check { margin:0 0 0 2px; }
.admin-editor-project-compact .admin-editor-main { padding:17px 20px; }
.admin-editor-project-compact .admin-editor-section-head { margin-bottom:10px; }
.admin-editor-project-compact .admin-editor-section+.admin-editor-section { margin-top:14px;padding-top:14px; }
.admin-editor-project-compact .admin-editor-setting { min-height:61px;padding:9px 0 0; }
.admin-editor-project-compact .admin-editor-setting-title { margin-bottom:6px; }
.admin-editor-project-compact .admin-editor-actions { padding:9px 0; }
.admin-editor-setting .form-check-label { color:#334255;font-size:.82rem; }
.admin-editor .form-switch .form-check-input { width:2.15em;cursor:pointer; }
.admin-editor .form-switch .form-check-input:checked { background-color:#18805a;border-color:#18805a; }
.admin-editor-aside { position:sticky;top:68px;padding:17px; }
.admin-editor-aside-title { display:flex;align-items:center;gap:9px;margin-bottom:14px;color:#243448;font-size:.85rem;font-weight:800; }
.admin-editor-aside-title svg { width:17px;height:17px;color:#2869a5; }
.admin-editor-identity,.admin-editor-project-identity { display:flex;flex-direction:column;align-items:center;gap:3px;padding:10px 5px 18px;margin-bottom:11px;border-bottom:1px solid #e5ebf1;text-align:center; }
.admin-editor-identity strong,.admin-editor-project-identity strong { max-width:100%;overflow-wrap:anywhere;color:#1f3044;font-size:.92rem; }
.admin-editor-identity>span,.admin-editor-project-identity>span:last-child { max-width:100%;overflow-wrap:anywhere;color:#68798a;font-size:.74rem; }
.admin-editor-avatar { display:grid;place-items:center;width:70px;height:70px;margin-bottom:9px;border-radius:50%;overflow:hidden;background:#dce9f8;color:#275d99;font-size:1.65rem;font-weight:800; }
.admin-editor-avatar img { width:100%;height:100%;object-fit:cover; }
.admin-avatar-upload { display:flex;flex-direction:column;align-items:center;gap:5px;margin:-3px 0 13px;text-align:center; }
.admin-avatar-upload .btn { display:inline-flex;align-items:center;gap:6px;cursor:pointer; }
.admin-avatar-upload .btn svg { width:14px;height:14px; }
.admin-avatar-upload small { color:#6a7788;font-size:.69rem; }
.admin-avatar-upload[hidden] { display:none; }
.admin-editor-project-mark { display:grid;place-items:center;width:58px;height:58px;margin-bottom:9px;border-radius:10px;background:#e7f0fb;color:#2869a5; }
.admin-editor-project-mark svg { width:26px;height:26px; }
.admin-editor-summary-row { display:flex;align-items:center;gap:11px;padding:9px 8px;margin-top:6px;border-radius:4px;background:#f6f8fb; }
.admin-editor-summary-row>svg { flex:0 0 18px;width:18px;height:18px;color:#4779a6; }
.admin-editor-summary-row>span { display:flex;flex-direction:column;min-width:0; }
.admin-editor-summary-row small { color:#68798a;font-size:.7rem; }
.admin-editor-summary-row strong { overflow-wrap:anywhere;color:#25364a;font-size:.77rem;font-weight:750; }
.admin-editor-actions { display:flex;justify-content:flex-end;align-items:center;gap:8px;padding:14px 0; }
.admin-editor-actions .btn,.admin-editor-group-actions .btn { display:inline-flex;align-items:center;gap:7px; }
.admin-editor-actions svg,.admin-editor-group-actions svg { width:15px;height:15px; }
.admin-editor-groups { padding:18px 22px; }
.admin-editor-groups svg { width:18px;height:18px; }
.admin-editor-group-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px; }
.admin-editor-group { display:flex;align-items:flex-start;gap:10px;min-width:0;min-height:58px;padding:11px;border:1px solid #dce3eb;border-radius:5px;cursor:pointer; }
.admin-editor-group:hover,.admin-editor-group:has(input:checked) { border-color:#a8c5e3;background:#f7faff; }
.admin-editor-group input { flex:0 0 auto;margin-top:3px; }
.admin-editor-group>span { min-width:0; }
.admin-editor-group strong { color:#28394d;font-size:.8rem; }
.admin-editor-system-badge { display:inline-block;margin-left:6px;padding:1px 5px;border-radius:4px;background:#e9edf2;color:#5e6a78;font-size:.62rem; }
.admin-editor-group-description { display:block;margin-top:4px;color:#708090;font-size:.72rem;line-height:1.3; }
.admin-editor-group-actions { display:flex;justify-content:flex-end;margin-top:13px; }
@media(max-width:1100px) { .admin-editor-grid { grid-template-columns:minmax(0,1fr) 245px; } .admin-editor-group-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:800px) { .admin-editor-grid { grid-template-columns:1fr; } .admin-editor-aside { position:static; } }
@media(max-width:575px) { .admin-editor-main,.admin-editor-groups { padding:16px; } .admin-editor-group-grid { grid-template-columns:1fr; } .admin-editor-actions { flex-wrap:wrap; } }

/* Compact editor summaries and scalable group assignment */
.admin-editor-user .admin-editor-aside { padding:15px; }
.admin-editor-user-identity { display:grid;grid-template-columns:52px minmax(0,1fr);align-items:center;column-gap:10px;min-height:64px;padding:2px 0 10px;margin-bottom:9px;text-align:left; }
.admin-editor-user-identity .admin-editor-avatar { width:52px;height:52px;margin:0;font-size:1.15rem; }
.admin-editor-user-identity-text { display:flex;flex-direction:column;min-width:0;gap:2px; }
.admin-editor-user-identity-text span { color:#68798a;font-size:.72rem;overflow-wrap:anywhere; }
.admin-editor-user .admin-avatar-upload { align-items:flex-start;margin:0 0 8px;text-align:left; }
.admin-editor-user .admin-editor-summary-row { padding:7px 2px;margin:0;border-radius:0;border-bottom:1px solid #edf1f5;background:transparent;gap:7px; }
.admin-editor-user .admin-editor-summary-row>svg { flex-basis:16px;width:16px;height:16px; }
.admin-editor-user .admin-editor-summary-row>span { display:grid;grid-template-columns:70px minmax(0,1fr);align-items:center;gap:4px;width:100%; }
.admin-editor-user .admin-editor-summary-row strong { font-size:.73rem; }
.admin-editor-user .admin-editor-actions { padding:8px 0; }
.admin-editor-groups { padding:14px 18px; }
.admin-editor-groups .admin-editor-section-head { margin-bottom:11px; }
.admin-editor-group-controls { display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap; }
.admin-editor-group-controls>.btn { display:inline-flex;align-items:center;gap:6px;min-height:38px; }
.admin-group-picker { position:relative;flex:0 1 400px;min-width:min(100%,270px);max-width:100%; }
.admin-group-trigger { display:flex;align-items:center;gap:9px;width:100%;min-height:38px;padding:7px 10px;border:1px solid #cbd5e1;border-radius:5px;background:#fff;color:#26394d;font-size:.82rem;text-align:left; }
.admin-group-trigger:hover,.admin-group-trigger[aria-expanded="true"] { border-color:#6b96bd;background:#f8fbff; }
.admin-group-trigger>svg { width:16px;height:16px;flex:0 0 16px;color:#4d77a0; }
.admin-group-trigger>span { flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.admin-group-menu { position:absolute;z-index:40;top:calc(100% + 4px);left:0;width:min(440px,calc(100vw - 48px));padding:8px;border:1px solid #cbd5e1;border-radius:6px;background:#fff;box-shadow:0 12px 26px rgba(19,39,65,.17); }
.admin-group-menu[hidden],.admin-group-option[hidden],.admin-group-empty[hidden] { display:none; }
.admin-group-search { display:flex;align-items:center;gap:7px;padding:0 8px;border:1px solid #cbd5e1;border-radius:4px; }
.admin-group-search svg { width:15px;height:15px;color:#66829d; }
.admin-group-search input { width:100%;height:34px;border:0;outline:0;font-size:.8rem; }
.admin-group-options { max-height:260px;overflow-y:auto;margin-top:7px; }
.admin-group-option { display:flex;align-items:flex-start;gap:9px;padding:8px 7px;border-radius:4px;cursor:pointer; }
.admin-group-option:hover,.admin-group-option:has(input:checked) { background:#f0f6fc; }
.admin-group-option input { flex:0 0 auto;margin-top:3px; }
.admin-group-option>span { display:block;min-width:0; }
.admin-group-option strong { color:#28394d;font-size:.8rem; }
.admin-group-empty { padding:15px;color:#6b7788;font-size:.8rem;text-align:center; }
.admin-group-menu-footer { display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:6px;padding:7px 3px 0;border-top:1px solid #e7ecf2;color:#65778a;font-size:.72rem; }
.admin-company-picker { position:relative; }
.admin-company-picker .form-select[hidden],.admin-company-trigger[hidden],.admin-company-menu[hidden] { display:none; }
.admin-company-trigger { display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;min-height:39px;padding:7px 12px;border:1px solid #cbd5e1;border-radius:5px;background:#fff;color:#26394d;font-size:.84rem;text-align:left; }
.admin-company-trigger:hover,.admin-company-trigger[aria-expanded="true"] { border-color:#6b96bd;background:#f8fbff; }
.admin-company-trigger:focus-visible { outline:2px solid #2268ac;outline-offset:2px; }
.admin-company-trigger>span { min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.admin-company-trigger>svg { width:16px;height:16px;flex:0 0 16px;color:#58718f; }
.admin-company-trigger:disabled { opacity:.6;cursor:not-allowed; }
.admin-company-menu { position:absolute;z-index:45;top:calc(100% + 4px);left:0;width:100%;padding:7px;border:1px solid #cbd5e1;border-radius:5px;background:#fff;box-shadow:0 12px 26px rgba(19,39,65,.17); }
.admin-company-search { display:flex;align-items:center;gap:7px;padding:0 8px;border:1px solid #cbd5e1;border-radius:4px; }
.admin-company-search svg { width:15px;height:15px;flex:0 0 15px;color:#66829d; }
.admin-company-search input { width:100%;height:34px;border:0;outline:0;background:transparent;font-size:.8rem; }
.admin-company-options { max-height:230px;overflow-y:auto;margin-top:6px; }
.admin-company-option { display:block;width:100%;padding:8px;border:0;border-radius:4px;background:#fff;color:#26394d;font-size:.8rem;text-align:left; }
.admin-company-option:hover,.admin-company-option:focus-visible,.admin-company-option[aria-selected="true"] { background:#eef5fd; }
.admin-company-empty { padding:12px 8px;color:#68798a;font-size:.78rem; }
.admin-editor-project-compact .admin-editor-grid { align-items:stretch; }
.admin-editor-project-compact .admin-editor-aside { position:static;display:flex;flex-direction:column; }
.admin-editor-project-compact .admin-editor-project-identity { display:grid;grid-template-columns:48px minmax(0,1fr);grid-template-rows:auto auto;align-items:center;column-gap:10px;padding:0 0 11px;margin-bottom:7px;text-align:left; }
.admin-editor-project-compact .admin-editor-project-mark { grid-row:1 / 3;width:48px;height:48px;margin:0; }
.admin-editor-project-compact .admin-editor-project-mark svg { width:22px;height:22px; }
.admin-editor-project-compact .admin-editor-project-identity>span:last-child { grid-column:2; }
.admin-editor-project-compact .admin-editor-summary-row { flex:1;min-height:42px;margin-top:4px;padding:6px 8px; }
@media(max-width:800px) { .admin-group-picker { flex-basis:100%; } .admin-editor-project-compact .admin-editor-aside { display:block; } }

/* Shared card contract for dashboards, KPIs and repeated items. */
:root {
  --card-radius:8px;
  --card-border:var(--border);
  --card-shadow:var(--shadow-soft);
  --card-shadow-hover:var(--shadow);
  --card-info:#2563a7;
  --card-success:var(--success);
  --card-warning:var(--warning);
  --card-critical:var(--danger);
  --card-informador:#7c3aed;
  --card-comercial:#0891b2;
}
:is(.app-card,.card,.soft-card,.client-kpi,.work-kpi,.crm-kpi,.work-section,.crm-panel) {
  background:var(--surface);
  border-color:var(--card-border);
  border-radius:var(--card-radius);
  box-shadow:var(--card-shadow);
  transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease;
}
.app-card { border:1px solid var(--card-border);padding:14px;min-width:0; }
.app-card__header { display:flex;align-items:center;gap:8px;color:var(--muted);font-size:.76rem;font-weight:700; }
.app-card__header svg { width:17px;height:17px;flex:none;color:var(--card-accent,var(--card-info)); }
.app-card__value { font-size:1.65rem;font-weight:800;line-height:1.1;font-variant-numeric:tabular-nums;color:var(--text); }
.app-card__meta { color:var(--muted);font-size:.76rem;line-height:1.4; }
.app-card--info { --card-accent:var(--card-info); }
.app-card--success { --card-accent:var(--card-success); }
.app-card--warning { --card-accent:var(--card-warning); }
.app-card--critical { --card-accent:var(--card-critical); }
.app-card--informador { --card-accent:var(--card-informador); }
.app-card--comercial { --card-accent:var(--card-comercial); }
:is(a.app-card,button.app-card,a.client-kpi,a.work-kpi,a.crm-kpi) { cursor:pointer;text-decoration:none; }
:is(a.app-card,button.app-card,a.client-kpi,a.work-kpi,a.crm-kpi):hover {
  border-color:var(--card-accent,var(--border-strong));
  box-shadow:var(--card-shadow-hover);
  transform:translateY(-2px);
  text-decoration:none;
}
:is(a.app-card,button.app-card,a.client-kpi,a.work-kpi,a.crm-kpi):focus-visible {
  outline:2px solid var(--primary);
  outline-offset:2px;
}
:is(.card,.soft-card,.client-kpi,.work-kpi,.crm-kpi,.work-section,.crm-panel):not(a):not(button):hover {
  box-shadow:var(--card-shadow);
  transform:none;
}
@media (prefers-reduced-motion:reduce) {
  :is(.app-card,.card,.soft-card,.client-kpi,.work-kpi,.crm-kpi,.work-section,.crm-panel) { transition:none; }
  :is(a.app-card,button.app-card,a.client-kpi,a.work-kpi,a.crm-kpi):hover { transform:none; }
}
@media (min-width:992px) {
  .ticket-layout { align-items:start;--ticket-pane-height:calc(100dvh - 220px); }
  .ticket-layout>div {
    min-width:0;
    height:var(--ticket-pane-height);
    min-height:320px;
    overflow-y:auto;
    overscroll-behavior:contain;
    scrollbar-gutter:stable;
    padding-right:4px;
  }
  .ticket-layout .sidebar-panel { position:static; }
}

/* Ticket comments share one formatting surface for create and edit. */
.comment-format-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:2px;padding:5px 8px;border-bottom:1px solid #e5e7eb;background:#f8fafc}
.comment-format-toolbar button{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;padding:5px;border:1px solid transparent;border-radius:4px;background:transparent;color:#334155}
.comment-format-toolbar button:hover,.comment-format-toolbar button:focus-visible{background:#eaf0f8;border-color:#cbd5e1}
.comment-format-toolbar button svg{width:16px;height:16px}
.comment-format-toolbar select{height:30px;max-width:112px;border:1px solid #cbd5e1;border-radius:4px;background:#fff;color:#334155;font-size:.78rem}
.comment-format-toolbar input[type=color]{width:30px;height:30px;padding:2px;border:1px solid #cbd5e1;border-radius:4px;background:#fff;cursor:pointer}
.comment-format-language{max-width:95px!important}
.comment-format-separator{width:1px;height:20px;margin:0 4px;background:#d7dee8}
.comment-suggested-people{display:flex;align-items:center;gap:5px;overflow-x:auto;padding:5px 8px;border-top:1px solid #e5e7eb;scrollbar-width:thin}
.comment-suggested-people[hidden]{display:none}
.comment-person-suggestion{flex:none;padding:2px 7px;border:1px solid #d4dce7;border-radius:4px;background:#fff;color:#344563;font-size:.72rem}
.comment-person-suggestion:hover{border-color:#93b4e4;background:#eef5ff}
.rich-comment-text pre,.rich-comment-editor pre{position:relative;max-width:100%;padding:24px 12px 10px;overflow:auto;border:1px solid #d5dbe4;border-radius:4px;background:#f3f5f8;color:#172033;font:12px/1.5 ui-monospace,SFMono-Regular,Consolas,monospace;white-space:pre;tab-size:4}
.rich-comment-text pre::before,.rich-comment-editor pre::before{content:attr(data-language);position:absolute;top:4px;left:12px;color:#667085;font:700 10px/1.2 system-ui,sans-serif;text-transform:uppercase}
.rich-comment-text pre code,.rich-comment-editor pre code{font:inherit;white-space:pre}
.rich-comment-text mark,.rich-comment-editor mark{background:#fff1a8}
.rich-comment-text[style*="text-align"],.rich-comment-text div[style*="text-align"]{white-space:normal}
.comment-file-chip{grid-template-columns:42px minmax(0,1fr) auto;width:min(100%,420px);min-width:0;max-width:none;border-radius:6px;background:#fff}
.comment-file-icon{width:42px;height:42px;border-radius:4px;background:#f1f4f8}
.comment-file-special{border-color:#cfdae4;background:#f8fafc}
.comment-file-special .comment-file-icon{background:#e8eef4;color:#526d87}
.comment-file-special .comment-file-meta{font-size:.68rem}
.comment-file-executable{border-color:#f0c8b7;background:#fff8f4}
.comment-file-executable .comment-file-icon{background:#fbe3d8;color:#a75438}
.comment-file-pdf{grid-template-columns:72px minmax(0,1fr) auto;min-height:76px}
.comment-file-pdf .comment-file-icon{position:relative;width:72px;height:64px;overflow:hidden;background:#edf1f5}
.comment-pdf-preview-thumb{position:relative;display:flex;align-items:center;justify-content:center;width:100%;height:100%;padding:0;border:0;background:transparent;cursor:pointer}
.comment-pdf-preview-thumb>svg{position:absolute;width:24px;height:24px;color:#7b8798}
.comment-pdf-preview-thumb:hover{outline:2px solid #91b5e8;outline-offset:-2px}
.comment-pdf-thumb{position:relative;display:block;width:100%;height:100%;object-fit:cover}
.comment-pdf-thumb:not([data-ready="true"]){visibility:hidden}
.comment-file-actions{display:flex;flex-direction:column;gap:3px}
@media(max-width:620px){.comment-file-chip,.comment-file-pdf{grid-template-columns:54px minmax(0,1fr)}.comment-file-pdf .comment-file-icon{width:54px;height:54px}.comment-file-actions{grid-column:2;flex-direction:row}.comment-file-download{grid-column:auto;padding:0}}

/* Dense operational tables: preserve resizable column widths and readable actions. */
#ticketsUnifiedTable,#clientesTable,#usuariosTable{font-size:.875rem!important}
#ticketsUnifiedTable thead th,#clientesTable thead th,#usuariosTable thead th{padding:.35rem .45rem!important;font-size:.75rem!important;line-height:1.15}
#ticketsUnifiedTable tbody td,#clientesTable tbody td,#usuariosTable tbody td{padding:.23rem .45rem!important;font-size:.875rem!important;line-height:1.2}
#ticketsUnifiedTable tbody .btn,#clientesTable tbody .btn,#usuariosTable tbody .btn{padding:.18rem .35rem;font-size:.72rem}
.table.groups-compact-table>:not(caption)>*>*{padding:.35rem .55rem;font-size:.76rem;line-height:1.2;vertical-align:middle}
.groups-compact-table .btn{padding:.2rem .38rem;font-size:.7rem}
.groups-compact-table .small{font-size:.7rem!important}

.ticket-hierarchy-editor{min-width:0;width:100%}
.ticket-hierarchy-editor>summary{cursor:pointer;list-style:none;color:#1f3a5c;font-size:.78rem;font-weight:400;line-height:1.35}
.ticket-hierarchy-editor>summary::-webkit-details-marker{display:none}
.ticket-hierarchy-editor>summary::after{content:' ▾';color:#6b7280}
.ticket-hierarchy-editor[open]>summary::after{content:' ▴'}
.ticket-hierarchy-controls{display:grid;gap:6px;padding-top:9px;min-width:0}
.ticket-hierarchy-controls label{font-size:.7rem;font-weight:700;color:#52647a}
.ticket-hierarchy-controls select{width:100%;min-width:0}
.ticket-hierarchy-controls #hierarchyStatus{overflow-wrap:anywhere}

/* Ticket creation: one quiet work surface with clearly grouped fields. */
.ticket-create-page .create-hero{padding-bottom:14px;margin-bottom:16px}
.ticket-create-page .create-hero-icon{width:36px;height:36px;flex-basis:36px;border-radius:8px;background:#fcecef;color:#ba263b}
.ticket-create-page .create-hero-icon svg{width:19px;height:19px}
.ticket-create-page .page-title{font-size:1.4rem;font-weight:800}
.ticket-create-page .create-ticket-form{padding:18px 22px 0;border:1px solid #e2e7ed;border-radius:8px;background:#fff;box-shadow:0 2px 12px rgba(31,49,70,.045)}
.ticket-create-page .create-section-card{padding:15px 0 18px;border-bottom-color:#edf0f3}
.ticket-create-page .create-context-section{padding-top:0}
.ticket-create-page .create-context-grid{gap:15px 17px}
.ticket-create-page .linear-field{gap:6px}
.ticket-create-page .form-label{font-size:.78rem;color:#344255}
.ticket-create-page .form-control,.ticket-create-page .form-select,.ticket-create-page .create-select-trigger{border-color:#cbd5df;border-radius:8px;background:#fff}
.ticket-create-page .form-control:focus,.ticket-create-page .form-select:focus{border-color:#b64c5a;box-shadow:0 0 0 3px rgba(198,50,70,.1)}
.ticket-create-page .create-select-trigger:focus-visible,.ticket-create-page .tipo-picker-trigger:focus-visible{outline:2px solid #bc3b4d;outline-offset:2px}
.ticket-create-page .create-icon-field>span svg,.ticket-create-page .create-readonly-field svg{width:16px;height:16px;stroke-width:1.8}
.ticket-create-page .create-readonly-field{border-radius:8px;background:#f7f9fb}
.ticket-create-page .create-priority-choice>span,.ticket-create-page .tipo-picker-trigger{border-radius:8px}
.ticket-create-page .create-classification-row{flex-wrap:wrap;gap:13px 16px}
.ticket-create-page .tipo-picker{max-width:min(100%,240px)}
.ticket-create-page .tipo-picker-trigger{max-width:100%}
.ticket-create-page .tipo-picker-chip{min-width:0;max-width:205px;overflow:hidden}
.ticket-create-page .tipo-picker-chip>span{min-width:0;overflow:hidden;text-overflow:ellipsis}
.ticket-create-page .tipo-picker-dropdown{max-width:min(260px,80vw)}
.ticket-create-page .create-priority-choice input:checked+span{box-shadow:0 0 0 2px rgba(40,60,75,.06)}
.ticket-create-page .tipo-picker-dropdown{border-radius:8px}
.ticket-create-page .create-title-input{font-weight:600}
.ticket-create-page .rich-editor-shell{border-radius:8px}
.ticket-create-page .rich-editor-toolbar{background:#f9fafb;border-bottom:1px solid #e8ecf1}
.ticket-create-page .rich-editor-content{min-height:165px}
.ticket-create-page .create-upload-box{padding:12px;border:1px dashed #afbfce;border-radius:8px;background:#f8fafc}
.ticket-create-page .create-upload-box:hover{background:#f3f8fb;border-color:#738da8}
.ticket-create-page .upload-clip{width:32px;height:32px;border-radius:7px;background:#e8f1f4;color:#176579}
.ticket-create-page .upload-clip svg{width:17px;height:17px}
.ticket-create-page .create-upload-label strong{font-weight:750;color:#27384a}
.ticket-create-page .file-feedback{margin-top:6px;padding:0;border-radius:0;background:transparent;font-size:.76rem;font-weight:500}
.ticket-create-page .file-feedback.has-files{color:#13734f;background:transparent}
.ticket-create-page .create-action-bar{margin-top:0;padding:13px 0;background:#fff}
.ticket-create-page .create-action-bar .btn{border-radius:8px}
.ticket-create-page .create-summary-panel{border-color:#e2e7ed;border-radius:8px;box-shadow:0 2px 12px rgba(31,49,70,.045)}
.ticket-create-page .create-summary-heading{padding:12px 14px;background:#fafbfc}
.ticket-create-page .create-summary-heading>svg{width:16px;height:16px;color:#bd3346}
.ticket-create-page .create-summary-row{padding:10px 14px}
.ticket-create-page .create-summary-row svg{width:14px;height:14px;flex:0 0 14px;color:#557086;stroke-width:1.8}
.cfg-copy-type-form{display:flex;align-items:end;gap:7px;margin:0}
.cfg-copy-type-form[hidden]{display:none}
.cfg-copy-type-form label{font-size:.75rem;font-weight:700;white-space:nowrap}
.cfg-copy-type-form .form-select{width:180px;max-width:100%}
@media(max-width:740px){.cfg-copy-type-form{flex-wrap:wrap}}
@media(max-width:680px){
  .ticket-create-page .create-ticket-form{padding:14px 15px 0}
  .ticket-create-page .create-context-grid{gap:13px}
  .ticket-create-page .create-summary-panel{display:none}
}

/* Compact contextual guidance and aligned ticket classification. */
.ticket-create-page .create-field-heading{display:flex;align-items:center;gap:4px;min-height:18px}
.ticket-create-page .create-field-heading .form-label{line-height:18px}
.ticket-create-page .create-field-help{position:relative;display:inline-flex;align-items:center;z-index:3}
.ticket-create-page .create-help-trigger{display:grid;place-items:center;width:19px;height:19px;padding:0;border:0;border-radius:50%;background:transparent;color:#6a7c8f;cursor:help}
.ticket-create-page .create-help-trigger:hover,.ticket-create-page .create-help-trigger:focus-visible{color:#2b536d;background:#eaf1f6;outline:2px solid transparent}
.ticket-create-page .create-help-trigger svg{width:14px;height:14px}
.ticket-create-page .create-help-popover{position:absolute;top:calc(100% + 7px);left:-8px;width:min(245px,calc(100vw - 48px));padding:8px 10px;border:1px solid #cbd5df;border-radius:6px;background:#fff;box-shadow:0 8px 22px rgba(30,50,70,.15);font-size:.73rem;font-weight:500;line-height:1.4;color:#344255;opacity:0;visibility:hidden;pointer-events:none}
.ticket-create-page .create-field-help:hover .create-help-popover,.ticket-create-page .create-field-help:focus-within .create-help-popover{opacity:1;visibility:visible}
.ticket-create-page .create-classification-row{align-items:end;gap:12px}
.ticket-create-page .create-classification-row .create-priority-field{flex:0 1 460px}
.ticket-create-page .create-priority-field legend{float:none;width:auto;padding:0;margin:0;line-height:18px}
.ticket-create-page .create-classification-row>.linear-field>.form-label{line-height:18px}
.ticket-create-page .create-classification-row .create-priority-choice>span{min-height:36px}
.ticket-create-page .create-classification-row .tipo-picker-trigger{min-height:36px;width:160px;max-width:100%;justify-content:space-between;padding:4px 7px;font-size:.76rem}
.ticket-create-page .create-classification-row #tipoJerarquiaSelect{min-height:36px}
.ticket-create-page .create-classification-row [data-valmsg-for="TipoTicket"].field-validation-valid{display:none}
.ticket-create-page .tipo-picker-chip{max-width:145px;padding:2px 6px;border-radius:6px;font-size:.73rem;line-height:1.25}
.ticket-create-page .tipo-picker-chip svg{width:13px;height:13px;flex:0 0 13px}
.ticket-create-page .tipo-picker-dropdown{min-width:198px;width:210px;padding:6px}
.ticket-create-page .tipo-picker-search{font-size:.76rem;min-height:31px}
.ticket-create-page .tipo-picker-item{padding:3px 4px}
.ticket-create-page .create-upload-controls{display:flex;align-items:end;gap:12px;flex-wrap:wrap;margin-top:8px}
.ticket-create-page .create-upload-controls .create-file-input{flex:1 1 280px;width:auto;min-width:0;margin:0}
.ticket-create-page .create-upload-visibility{display:flex;align-items:center;gap:7px;flex:0 0 auto}
.ticket-create-page .create-upload-visibility .form-label{white-space:nowrap}
.ticket-create-page .create-upload-visibility .form-select{width:125px;min-height:34px;padding-block:4px;font-size:.78rem}
@media(max-width:780px){
  .ticket-create-page .create-classification-row .create-priority-field{flex:1 1 100%}
}

/* ── Iconos por tipo de archivo y nombre con extension visible (FileTypeVisual) ── */
.ftype{--ft-c:#64748b;--ft-size:12px;position:relative;display:inline-flex;flex:none;flex-direction:column;align-items:center;justify-content:center;box-sizing:border-box;width:2.6em;height:3.2em;font-size:var(--ft-size);border-radius:.32em;background-color:var(--ft-c);background-image:linear-gradient(160deg,rgba(255,255,255,.28),rgba(255,255,255,0) 60%);color:#fff;font-weight:800;line-height:1;overflow:hidden;user-select:none;-webkit-mask:linear-gradient(225deg,transparent .6em,#000 .6em);mask:linear-gradient(225deg,transparent .6em,#000 .6em)}
.ftype::before{content:"";position:absolute;top:0;right:0;width:.85em;height:.85em;background:linear-gradient(225deg,transparent 50%,rgba(255,255,255,.5) 50%)}
.ftype-g{position:relative;margin-top:.2em;font-size:1.05em;letter-spacing:-.01em;white-space:nowrap}
.ftype-g--1{font-size:1.75em}
.ftype-g--2{font-size:1.3em}
.ftype-g--3{font-size:.95em}
.ftype-g--4{font-size:.8em}
.ftype-x{position:absolute;left:0;right:0;bottom:0;padding:.22em 0 .26em;background:rgba(0,0,0,.26);font-size:.55em;font-weight:700;letter-spacing:.05em;text-align:center}
.ftype--band .ftype-g{margin-top:-.35em}
.ftype--archive:not(.ftype--tag)::after{content:"";position:absolute;top:0;left:50%;width:.3em;height:1.3em;transform:translateX(-50%);background:repeating-linear-gradient(180deg,rgba(255,255,255,.9) 0 .15em,rgba(255,255,255,.22) .15em .3em)}
.ftype--archive:not(.ftype--tag):not(.ftype--band) .ftype-g{margin-top:.7em}
.ftype--lg{--ft-size:20px}
.ftype--sm{--ft-size:13px}
.ftype--tag{display:inline-flex;flex-direction:row;width:auto;height:auto;margin-right:.35rem;padding:.24em .5em;font-size:.64rem;border-radius:.35em;vertical-align:middle;-webkit-mask:none;mask:none}
.ftype--tag::before{display:none}
.ftype--tag .ftype-g{margin:0;font-size:1em}
.ftype--pdf{--ft-c:#d93025}
.ftype--word{--ft-c:#2b579a}
.ftype--excel{--ft-c:#1e7145}
.ftype--ppt{--ft-c:#d04423}
.ftype--rar{--ft-c:#7b3f9e}
.ftype--sevenz{--ft-c:#1f2937}
.ftype--zip{--ft-c:#d69a0a}
.ftype--tar{--ft-c:#a05a00}
.ftype--exe{--ft-c:#475569}
.ftype--text{--ft-c:#64748b}
.ftype--sql{--ft-c:#4f46e5}
.ftype--code{--ft-c:#0f766e}
.ftype--image{--ft-c:#0891b2}
.ftype--video{--ft-c:#be185d}
.ftype--audio{--ft-c:#7c3aed}
.fname{display:flex;min-width:0;max-width:100%}
.fname-base{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fname-ext{flex:none;white-space:nowrap}
.attach-tile-thumb-btn:hover .ftype{opacity:.8}
.comment-file-chip:not(.comment-file-pdf) .comment-file-icon{background:transparent}
.comment-pdf-preview-thumb>.ftype{position:absolute}
.jira-att-chip--preview .fname,.jira-att-chip--dl .fname{flex:0 1 auto}

.jira-att-tile{display:inline-flex;flex-direction:column;align-items:center;gap:8px;width:118px;margin:4px 6px 4px 0;padding:12px 8px 9px;border:1px solid #d5dde6;border-radius:8px;background:#fff;color:#213047;font-size:.74rem;line-height:1.25;text-align:center;text-decoration:none;vertical-align:top;transition:border-color .12s,box-shadow .12s}
.jira-att-tile:hover{border-color:#9db4cc;box-shadow:0 2px 8px rgba(15,23,42,.12);color:#213047}
.jira-att-tile .fname{width:100%;justify-content:center}
.comment-file-tile{display:inline-flex;flex-direction:column;align-items:center;gap:6px;width:132px;min-width:0;max-width:none;min-height:0;padding:12px 8px 8px;text-align:center;border-color:#d5dde6;background:#fff}
.comment-file-tile .comment-file-icon{display:flex;width:100%;height:auto;border-radius:0;background:transparent}
.comment-file-tile .comment-file-info{width:100%}
.comment-file-tile .comment-file-name{font-size:.78rem;font-weight:600}
.comment-file-tile .comment-file-name .fname{justify-content:center}
.comment-file-tile .comment-file-meta{font-size:.68rem}
.comment-file-tile .comment-file-actions{flex-direction:row;justify-content:center;gap:14px}
.comment-file-tile .comment-file-download{padding:0}
.comment-file-pdf.comment-file-tile .comment-file-icon{position:relative;width:100%;height:92px;overflow:hidden;border-radius:4px;background:#edf1f5}

/* ── Relojes de trabajo (work-clocks.js) ─────────────────────────────── */
.wc-control{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}
.wc-control:empty{display:none}
.wc-icon{display:inline-flex;vertical-align:-2px}
.wc-btn{display:inline-flex;align-items:center;justify-content:center;padding:4px 9px}
.wc-start{display:inline-flex;align-items:center;gap:4px}
.wc-time{min-width:74px;padding:4px 9px;border:1px solid #cfe0f5;border-radius:6px;background:#eff6ff;color:#1d4ed8;font-weight:700;font-size:.86rem;font-variant-numeric:tabular-nums;text-align:center}
.wc-time--paused{border-color:#e5e7eb;background:#f3f4f6;color:#6b7280}
.wc-time--alert{border-color:#f5b5ae;background:#fff1ef;color:#b42318}
.wc-paused-label{font-size:.72rem;color:#6b7280}
.wc-chip-wrap{position:relative;display:inline-flex}
.wc-chip-wrap[hidden]{display:none}
.wc-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border:1px solid #cfe0f5;border-radius:999px;background:#eff6ff;color:#1d4ed8;font-size:.8rem;font-weight:700;font-variant-numeric:tabular-nums;cursor:pointer}
.wc-chip--running .wc-icon{animation:wc-pulse 1.6s ease-in-out infinite}
.wc-chip--alert{border-color:#f5b5ae;background:#fff1ef;color:#b42318}
@keyframes wc-pulse{50%{opacity:.35}}
.wc-panel{position:absolute;top:calc(100% + 8px);right:0;z-index:1080;width:min(430px,92vw);padding:8px;border:1px solid #d5dde6;border-radius:10px;background:#fff;box-shadow:0 10px 28px rgba(15,23,42,.18)}
.wc-panel[hidden]{display:none}
.wc-list{padding:10px 14px}
.wc-list[hidden]{display:none}
.wc-list-title{margin:2px 4px 8px;font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#52637a}
.wc-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:7px 8px;border-radius:8px}
.wc-row+.wc-row{border-top:1px solid #eef1f5}
.wc-row--alert{background:#fff7f6}
.wc-row-main{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 8px;min-width:0}
.wc-row-code{font-weight:700;font-size:.84rem;text-decoration:none}
.wc-row-title{min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.8rem;color:#475569}
.wc-row-warning{flex-basis:100%;font-size:.72rem;font-weight:600;color:#b42318}
.wc-row-state{font-size:.7rem;color:#6b7280}
.wc-row-time{font-weight:700;font-size:.9rem;font-variant-numeric:tabular-nums;color:#1d4ed8}
.wc-row--paused .wc-row-time{color:#6b7280}
.wc-row-actions{display:flex;gap:4px}
.wc-dialog{width:min(480px,94vw);padding:0;border:0;border-radius:12px;box-shadow:0 18px 48px rgba(15,23,42,.3)}
.wc-dialog::backdrop{background:rgba(15,23,42,.45)}
.wc-dialog-form{display:flex;flex-direction:column;gap:10px;padding:18px 20px}
.wc-dialog-title{margin:0;font-size:1.05rem}
.wc-dialog-ticket{margin:0;font-size:.85rem;color:#475569;overflow-wrap:anywhere}
.wc-dialog-measured{margin:0;font-size:.85rem}
.wc-dialog-measured strong{font-variant-numeric:tabular-nums;color:#1d4ed8}
.wc-field{display:flex;flex-direction:column;gap:4px;font-size:.82rem;font-weight:600}
.wc-field textarea,.wc-field select,.wc-field input{font-weight:400;font-size:.88rem;padding:6px 8px;border:1px solid #cbd5df;border-radius:6px}
.wc-req{color:#b42318}
.wc-dialog-row{display:grid;grid-template-columns:1fr 150px;gap:10px}
.wc-dialog-hint{margin:0;font-size:.76rem;color:#64748b}
.wc-dialog-error{margin:0;font-size:.82rem;font-weight:600;color:#b42318}
.wc-dialog-error[hidden]{display:none}
.wc-dialog-actions{display:flex;justify-content:flex-end;gap:8px}
.wc-toast{position:fixed;right:18px;bottom:18px;z-index:2000;max-width:min(380px,90vw);padding:10px 14px;border-radius:8px;background:#0f172a;color:#fff;font-size:.86rem;opacity:0;transform:translateY(8px);pointer-events:none;transition:opacity .18s,transform .18s}
.wc-toast--show{opacity:1;transform:none}
.wc-toast--error{background:#b42318}
@media(max-width:620px){.wc-row{grid-template-columns:minmax(0,1fr) auto}.wc-row-actions{grid-column:1 / -1}.wc-dialog-row{grid-template-columns:1fr}}

/* v1.9.57 · actividades con reloj */
.wc-empty{margin:2px 4px 8px;font-size:.8rem;color:#64748b}
.wc-starter{margin-top:8px;padding-top:8px;border-top:1px solid #eef1f5}
.wc-shortcuts{display:flex;flex-wrap:wrap;gap:6px;margin:0 4px 8px}
.wc-shortcut{display:inline-flex;align-items:center;gap:4px;font-size:.76rem}
.wc-starter-line{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;margin:0 4px}
.wc-row-badge{padding:1px 7px;border-radius:999px;background:#ede9fe;color:#5b21b6;font-size:.66rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em}
.wc-row-title--pending{font-style:italic;color:#94a3b8}
.wc-check{display:flex;align-items:center;gap:8px;font-size:.84rem;font-weight:600}
.wc-dialog-form [hidden]{display:none !important}
.widget-kpi-val--drill{transition:opacity .15s}
.widget-kpi-val--drill:hover{opacity:.7}

/* Indicador de requisitos de contrasena (Views/Shared/_PasswordRules.cshtml + js/password-rules.js) */
.pw-rules{margin:.6rem 0 .25rem;padding:.65rem .8rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-soft);font-size:.8125rem;text-align:left}
.pw-rules-title{font-weight:700;color:#374151;margin-bottom:.35rem;font-size:.78rem}
.pw-rules-list{list-style:none;margin:0;padding:0;display:grid;gap:.2rem}
.pw-rules-list li{display:flex;align-items:center;gap:.5rem;color:var(--muted);line-height:1.25}
.pw-mark{flex:0 0 1.05rem;width:1.05rem;height:1.05rem;border-radius:50%;border:1.5px solid var(--border-strong);display:inline-grid;place-items:center;font-size:.7rem;font-weight:800;line-height:1;color:transparent;background:#fff}
.pw-rules-list li[data-state="ok"]{color:#166534}
.pw-rules-list li[data-state="ok"] .pw-mark{background:var(--success);border-color:var(--success);color:#fff}
.pw-rules-list li[data-state="ok"] .pw-mark::before{content:"✓"}
.pw-rules-list li[data-state="bad"]{color:var(--danger-dark);font-weight:600}
.pw-rules-list li[data-state="bad"] .pw-mark{background:var(--danger);border-color:var(--danger);color:#fff}
.pw-rules-list li[data-state="bad"] .pw-mark::before{content:"×"}
.pw-rules-list li[data-state="pending"] .pw-mark{border-color:var(--warning)}
.pw-rules-status{margin-top:.4rem;font-size:.78rem;color:var(--muted);min-height:0}
.pw-rules-status:empty{display:none}
.pw-rules-status-bad{color:var(--danger-dark);font-weight:700}
.pw-rules-complete{border-color:#bbf7d0;background:var(--success-soft)}

/* Ayudas del formulario Nuevo ticket (js/ticket-create-helper.js) */
.create-field-hint{display:flex;justify-content:space-between;gap:.75rem;margin-top:.35rem;font-size:.78rem;color:var(--muted);line-height:1.35}
.create-field-counter{flex:0 0 auto;font-variant-numeric:tabular-nums;color:var(--muted);font-weight:600}
.create-counter-warn{color:var(--danger-dark)}
.create-guide-type{font-weight:600;color:var(--muted)}
.create-guide-tip{display:flex;align-items:flex-start;gap:.4rem;color:var(--muted)}
.create-guide-tip svg{width:14px;height:14px;flex:0 0 auto;margin-top:.15rem}
/* Editor comodo para textos largos: crece con el contenido, se desplaza por dentro y se puede estirar a mano */
.ticket-create-page .rich-editor-content.rich-comment-editor{min-height:260px;max-height:62vh;overflow:auto;resize:vertical;line-height:1.55}
.ticket-create-page .rich-comment-editor img{max-width:100%;height:auto}
.rich-editor-shell.rich-editor-expanded{position:fixed;inset:0;z-index:2000;background:var(--surface);display:flex;flex-direction:column;padding:.75rem;border-radius:0}
.rich-editor-shell.rich-editor-expanded .description-mention-anchor{flex:1;min-height:0;display:flex;flex-direction:column}
.ticket-create-page .rich-editor-shell.rich-editor-expanded .rich-editor-content.rich-comment-editor{flex:1;max-height:none;min-height:0;resize:none;font-size:.95rem}
body.dtm-editor-expanded{overflow:hidden}
.ticket-create-page .create-help-popover--wide{width:min(440px,calc(100vw - 48px));display:flex;flex-direction:column;gap:.4rem;padding:.7rem .85rem;font-size:.8125rem;line-height:1.4;color:#374151;white-space:normal}
.ticket-create-page .create-help-popover--wide ul{margin:0;padding-left:1.1rem;display:grid;gap:.2rem}
.ticket-create-page .create-help-popover--wide .btn{align-self:flex-start}
.ticket-create-page .create-help-popover--wide{max-height:min(55vh,420px);overflow:auto}
.create-guide-title{font-size:.84rem;color:#1f2937}
.create-guide-intro{color:#374151}
.ticket-create-page .rich-comment-editor:empty:before{white-space:pre-wrap;color:#8a94a6;line-height:1.5}

/* Horario del registro manual de tiempo (js/time-range.js) */
.tr-box{grid-column:1/-1;margin:.45rem 0 .2rem}
.tr-fields{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}
.tr-field{display:flex;flex-direction:column;gap:.15rem;font-size:.78rem;font-weight:600;color:#374151}
.tr-field small{font-weight:400;color:var(--muted)}
.tr-field input{font-weight:400;font-size:.85rem;padding:.3rem .5rem;border:1px solid var(--border-strong);border-radius:6px;background:#fff;color:var(--text)}
.tr-hint{min-height:1.1rem;margin-top:.25rem;font-size:.78rem;color:var(--muted);font-variant-numeric:tabular-nums}
.tr-hint-bad{color:var(--danger-dark);font-weight:600}
.tr-hint:empty{display:none}
