/* NovaCore Messenger */
.nav-count { margin-left: auto; min-width: 20px; height: 20px; padding: 0 .35rem; display: grid; place-items: center; border-radius: 999px; background: var(--cyan); color: #061321; font-size: .62rem; }
.mobile-nav a { position: relative; }
.mobile-nav a > b { position: absolute; top: 5px; right: calc(50% - 22px); min-width: 17px; height: 17px; border-radius: 999px; display: grid; place-items: center; background: var(--primary); color: #fff; font-size: .56rem; }
.sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.connect-shell { height: calc(100vh - var(--topbar-height) - 2.4rem); min-height: 580px; display: grid; grid-template-columns: 340px minmax(0,1fr); border: 1px solid var(--border); border-radius: 18px; overflow: hidden; background: #fff; box-shadow: 0 12px 34px rgba(16,24,40,.06); }
.conversation-panel { min-width: 0; display: flex; flex-direction: column; border-right: 1px solid var(--border); background: #fbfcfe; }
.conversation-panel-header { padding: 1.15rem; display: flex; justify-content: space-between; align-items: center; }
.conversation-panel-header h1 { margin: .2rem 0 0; font-size: 1.4rem; }
.icon-button.primary { background: var(--primary); color: #fff; border-color: var(--primary); font-size: 1.25rem; }
.conversation-search { margin: 0 1rem .8rem; height: 42px; display: flex; align-items: center; gap: .5rem; padding: 0 .75rem; border: 1px solid var(--border); border-radius: 11px; background: #fff; color: var(--muted); }
.conversation-search input { width: 100%; border: 0; outline: 0; background: transparent; color: var(--text); font-size: .78rem; }
.conversation-list { flex: 1; min-height: 0; overflow-y: auto; padding: 0 .55rem .7rem; }
.conversation-item { display: flex; gap: .75rem; align-items: center; padding: .78rem .65rem; border-radius: 12px; color: var(--text); transition: .16s ease; }
.conversation-item:hover { background: #f0f2f8; }
.conversation-item.active { background: #e9ecff; }
.conversation-avatar { position: relative; flex: 0 0 auto; width: 43px; height: 43px; border-radius: 13px; display: grid; place-items: center; overflow: visible; background: linear-gradient(145deg,#e8eafe,#e8f9fd); color: var(--primary); font-size: .75rem; font-weight: 900; }
.conversation-avatar.large { width: 45px; height: 45px; }
.conversation-avatar img, .message-avatar img { width: 100%; height: 100%; border-radius: inherit; object-fit: cover; }
.online-dot { position: absolute; right: -1px; bottom: -1px; width: 11px; height: 11px; border: 2px solid #fff; border-radius: 50%; background: #98a2b3; }
.online-dot.online, .online-dot.status-available.online { background: var(--green); }
.online-dot.status-busy { background: var(--red); }
.online-dot.status-away { background: var(--amber); }
.online-dot.status-offline, .online-dot.status-available:not(.online) { background: #98a2b3; }
.conversation-presence-label { display:inline-flex; align-items:center; flex:0 0 auto; margin-right:.42rem; padding:.12rem .38rem; border-radius:999px; font-size:.58rem; font-weight:850; letter-spacing:.01em; color:#667085; background:#eef1f6; vertical-align:middle; }
.conversation-presence-label.status-available { color:#167a52; background:rgba(34,160,107,.11); }
.conversation-presence-label.status-busy { color:#c9363d; background:rgba(229,72,77,.11); }
.conversation-presence-label.status-away { color:#a86600; background:rgba(245,158,11,.14); }
.conversation-presence-label.status-offline { color:#667085; background:#eef1f6; }
.conversation-copy { min-width: 0; flex: 1; }
.conversation-line { display: flex; justify-content: space-between; align-items: center; gap: .5rem; }
.conversation-line strong { min-width: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; font-size: .77rem; }
.conversation-line time { color: var(--muted); font-size: .62rem; }
.conversation-line.preview { margin-top: .24rem; color: var(--muted); font-size: .7rem; }
.conversation-line.preview > span { min-width: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.conversation-line.preview b { flex: 0 0 auto; min-width: 19px; height: 19px; padding: 0 .3rem; display: grid; place-items: center; border-radius: 999px; background: var(--primary); color: #fff; font-size: .6rem; }
.conversation-empty { min-height: 320px; padding: 2rem 1rem; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; color: var(--muted); }
.conversation-empty > span { width: 55px; height: 55px; display: grid; place-items: center; border-radius: 16px; background: #eef0ff; color: var(--primary); font-size: 1.5rem; }
.conversation-empty strong { margin-top: 1rem; color: var(--text); }
.conversation-empty p { max-width: 220px; font-size: .75rem; }
.chat-panel { min-width: 0; min-height: 0; display: grid; grid-template-rows: auto auto minmax(0,1fr) auto auto; background: #f5f7fb; }
.chat-header { min-height: 72px; display: flex; align-items: center; gap: .75rem; padding: .8rem 1rem; border-bottom: 1px solid var(--border); background: rgba(255,255,255,.96); }
.chat-back { display: none; }
.chat-person { min-width: 0; flex: 1; }
.chat-person h2 { margin: 0; font-size: .9rem; }
.chat-person p { position: relative; margin: .18rem 0 0; padding-left: 14px; color: var(--muted); font-size: .66rem; }
.chat-person .online-dot { left: 0; right: auto; bottom: 2px; width: 9px; height: 9px; border-width: 1px; }
.chat-header-actions { display: flex; gap: .4rem; }
.icon-button.disabled { opacity: .4; cursor: not-allowed; }
.socket-status { padding: .38rem 1rem; background: #fff4df; color: #8a5200; border-bottom: 1px solid #f3d5a3; text-align: center; font-size: .66rem; font-weight: 700; }
.message-list { min-height: 0; overflow-y: auto; padding: 1.25rem clamp(.8rem,2.5vw,2rem); scroll-behavior: smooth; }
.message-row { position: relative; display: flex; align-items: flex-end; gap: .5rem; margin: .42rem 0; transition: background .2s ease; }
.message-row.mine { justify-content: flex-end; }
.message-row.highlight { background: rgba(91,103,241,.1); border-radius: 12px; }
.message-avatar { flex: 0 0 auto; width: 29px; height: 29px; display: grid; place-items: center; border-radius: 9px; background: #e7eaf6; color: var(--primary); font-size: .58rem; font-weight: 900; }
.message-bubble { position: relative; max-width: min(680px,76%); padding: .62rem .75rem .35rem; border: 1px solid var(--border); border-radius: 14px 14px 14px 4px; background: #fff; box-shadow: 0 2px 4px rgba(16,24,40,.035); }
.message-row.mine .message-bubble { border-color: #d9ddff; border-radius: 14px 14px 4px 14px; background: #e9ecff; }
.message-body { margin: 0; color: #263044; font-size: .79rem; line-height: 1.48; white-space: pre-wrap; overflow-wrap: anywhere; }
.message-bubble.deleted .message-body { color: #858da0; font-style: italic; }
.message-meta { min-height: 17px; margin-top: .18rem; display: flex; align-items: center; justify-content: flex-end; gap: .3rem; color: #8b93a5; font-size: .57rem; }
.message-status { color: #6c7587; font-weight: 900; letter-spacing: -.12em; }
.message-status.read { color: #3284e8; }
.message-actions { position: absolute; top: -27px; right: 0; display: none; gap: .15rem; padding: .18rem; border: 1px solid var(--border); border-radius: 9px; background: #fff; box-shadow: var(--shadow); }
.message-row.theirs .message-actions { left: 0; right: auto; }
.message-row:hover .message-actions, .message-row:focus-within .message-actions { display: flex; }
.message-actions button { width: 26px; height: 24px; border: 0; border-radius: 6px; background: transparent; color: #667085; cursor: pointer; }
.message-actions button:hover { background: #f0f2f6; color: var(--primary); }
.message-reply-quote { width: 100%; margin: 0 0 .4rem; padding: .38rem .5rem; border: 0; border-left: 3px solid var(--primary); border-radius: 5px; background: rgba(255,255,255,.55); display: block; text-align: left; cursor: pointer; }
.message-reply-quote strong, .message-reply-quote span { display: block; max-width: 100%; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.message-reply-quote strong { color: var(--primary); font-size: .62rem; }
.message-reply-quote span { margin-top: .12rem; color: #667085; font-size: .62rem; }
.typing-indicator { min-height: 24px; padding: 0 1.2rem .35rem; color: #667085; font-size: .66rem; font-style: italic; }
.reply-composer { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .55rem 1rem; border-top: 1px solid var(--border); background: #fff; }
.reply-composer > div { min-width: 0; border-left: 3px solid var(--primary); padding-left: .65rem; }
.reply-composer strong { color: var(--primary); font-size: .65rem; }
.reply-composer p { max-width: 700px; margin: .12rem 0 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; color: var(--muted); font-size: .65rem; }
.message-composer { display: flex; align-items: flex-end; gap: .55rem; padding: .7rem .8rem; border-top: 1px solid var(--border); background: #fff; }
.message-composer textarea { flex: 1; min-height: 43px; max-height: 140px; resize: none; padding: .68rem .8rem; border: 1px solid var(--border); border-radius: 13px; outline: 0; color: var(--text); background: #f8f9fc; font: inherit; font-size: .78rem; line-height: 1.4; }
.message-composer textarea:focus { border-color: #aeb5fb; box-shadow: 0 0 0 3px rgba(91,103,241,.1); background: #fff; }
.composer-action, .send-button { flex: 0 0 auto; width: 42px; height: 42px; border-radius: 12px; display: grid; place-items: center; }
.composer-action { border: 1px solid var(--border); background: #fff; color: var(--muted); opacity: .5; }
.send-button { border: 0; background: var(--primary); color: #fff; cursor: pointer; font-size: 1rem; }
.send-button:disabled { opacity: .55; }
.chat-placeholder { display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; padding: 2rem; background: radial-gradient(circle at 50% 32%,rgba(34,199,242,.09),transparent 26%),#f8f9fc; }
.placeholder-symbol { width: 72px; height: 72px; display: grid; place-items: center; border-radius: 22px; background: linear-gradient(145deg,#e7eaff,#e0f8fd); color: var(--primary); font-size: 2rem; }
.chat-placeholder h2 { margin: 1.2rem 0 .5rem; }
.chat-placeholder p { max-width: 470px; margin: 0 0 1.2rem; color: var(--muted); font-size: .82rem; }
.new-chat-panel { padding: 1.2rem; }
.employee-preview-list { max-height: 380px; overflow-y: auto; display: grid; gap: .45rem; margin: .4rem 0 1rem; }
.employee-preview { display: flex; align-items: center; gap: .7rem; padding: .7rem; border: 1px solid var(--border); border-radius: 11px; }
.employee-preview > div { flex: 1; min-width: 0; }
.employee-preview strong, .employee-preview span { display: block; }
.employee-preview strong { font-size: .76rem; }
.employee-preview span { margin-top: .15rem; color: var(--muted); font-size: .66rem; }
.employee-preview .online-dot { position: static; flex: 0 0 auto; }

@media (max-width: 900px) {
  .connect-shell { height: calc(100dvh - var(--topbar-height) - 64px - 1.2rem); min-height: 0; grid-template-columns: 1fr; border-radius: 14px; }
  .connect-shell.has-conversation .conversation-panel { display: none; }
  .connect-shell:not(.has-conversation) .chat-placeholder { display: none; }
  .conversation-panel { border-right: 0; }
  .chat-back { display: grid; }
  .chat-header { min-height: 64px; padding: .55rem .65rem; }
  .chat-header-actions [data-notification-button] { display: none; }
  .message-list { padding: .9rem .6rem; }
  .message-bubble { max-width: 84%; }
  .message-actions { display: flex; opacity: 0; pointer-events: none; }
  .message-row:focus-within .message-actions { opacity: 1; pointer-events: auto; }
  .message-composer { padding: .55rem; }
  .composer-action { display: none; }
}

/* NovaCore Messenger · Fase 3 */
.button-secondary { background: #fff; border-color: var(--border); color: var(--text); }
.button-secondary:hover { background: #f8f9fc; border-color: #cbd3e1; }
.button-wide { width: 100%; }
.form-help { margin: .25rem 0 .55rem; color: var(--muted); font-size: .7rem; }
.connect-create-actions, .empty-actions { display: flex; align-items: center; gap: .45rem; }
.conversation-avatar.group { background: linear-gradient(145deg,#e9e7ff,#dff8fd); color: #5343dc; }
.group-badge { position: absolute; right: -4px; bottom: -4px; min-width: 18px; height: 18px; padding: 0 4px; display: grid; place-items: center; border: 2px solid #fff; border-radius: 999px; background: var(--cyan); color: #0b3b49; font-size: .52rem; font-style: normal; font-weight: 900; }
.conversation-line strong small { color: var(--primary); font-size: .52rem; text-transform: uppercase; letter-spacing: .04em; }
.group-summary { display: flex; align-items: center; gap: .3rem; padding-left: 0 !important; }
.chat-header-actions .icon-button.active { background: #e9ecff; color: var(--primary); }
.message-author { display: block; margin-bottom: .24rem; color: var(--primary); font-size: .62rem; }
.message-attachments { display: grid; gap: .42rem; margin-top: .45rem; }
.message-image { display: block; overflow: hidden; border-radius: 10px; background: #edf0f6; }
.message-image img { width: min(360px,100%); max-height: 330px; object-fit: cover; }
.message-file { min-width: 220px; max-width: 380px; display: flex; align-items: center; gap: .65rem; padding: .6rem; border: 1px solid rgba(91,103,241,.18); border-radius: 10px; background: rgba(255,255,255,.68); }
.message-file > span:first-child { width: 35px; height: 35px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 9px; background: #e8ebff; color: var(--primary); font-size: 1rem; }
.message-file > span:last-child { min-width: 0; }
.message-file strong, .message-file small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.message-file strong { color: var(--text); font-size: .68rem; }
.message-file small { margin-top: .12rem; color: var(--muted); font-size: .58rem; }
.message-audio { min-width: min(310px,70vw); display: grid; gap: .28rem; }
.message-audio audio { width: 100%; height: 38px; }
.message-audio a { color: var(--primary); font-size: .6rem; font-weight: 700; }
.attachment-composer-preview { display: flex; gap: .4rem; overflow-x: auto; padding: .5rem .8rem; border-top: 1px solid var(--border); background: #fff; }
.attachment-preview-chip { max-width: 260px; flex: 0 0 auto; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; padding: .38rem .55rem; border: 1px solid #d9ddff; border-radius: 9px; background: #f0f2ff; color: #4651c8; font-size: .62rem; font-weight: 700; }
.composer-action { opacity: 1; cursor: pointer; }
.group-form-panel { max-width: 760px; }
.group-member-select { min-height: 230px; padding: .35rem; }
.group-member-select option { padding: .55rem .6rem; border-radius: 7px; }
.group-member-select option:checked { background: linear-gradient(135deg,var(--primary),#7755e7); color: #fff; }
.employee-preview-list.compact { max-height: 250px; grid-template-columns: repeat(2,minmax(0,1fr)); }

@media (max-width: 900px) {
  .composer-action { display: grid; }
  .chat-header-actions { gap: .15rem; }
  .chat-header-actions .icon-button { width: 34px; height: 34px; }
  .message-image img { width: min(300px,100%); max-height: 300px; }
  .message-file { min-width: min(240px,68vw); }
  .employee-preview-list.compact { grid-template-columns: 1fr; }
  .empty-actions { flex-wrap: wrap; justify-content: center; }
}

/* NovaCore Desk · Fase 4 */
.desk-page-header { align-items: flex-end; }
.desk-stats { grid-template-columns: repeat(3,minmax(0,1fr)); }
.desk-list-panel { overflow: hidden; }
.desk-list-heading { gap: 1rem; }
.desk-filter-form { display: flex; align-items: center; gap: .55rem; }
.desk-filter-form label { color: var(--muted); font-size: .66rem; font-weight: 800; }
.desk-filter-form select { min-width: 180px; padding: .56rem .7rem; border: 1px solid var(--border); border-radius: 10px; background: #fff; color: var(--text); }
.desk-ticket-list { display: grid; }
.desk-ticket-row { display: flex; justify-content: space-between; gap: 1rem; padding: 1rem 1.1rem; border-top: 1px solid var(--border); color: inherit; text-decoration: none; transition: background .16s ease; }
.desk-ticket-row:hover { background: #f8f9fc; }
.desk-ticket-main { min-width: 0; flex: 1; }
.desk-ticket-line { display: flex; align-items: center; gap: .55rem; }
.desk-ticket-line strong { color: var(--text); font-size: .84rem; }
.ticket-reference { display: inline-flex; align-items: center; width: fit-content; padding: .18rem .42rem; border-radius: 999px; background: #eef0f6; color: #667085; font-size: .56rem; font-weight: 900; letter-spacing: .03em; }
.desk-ticket-main > p { max-width: 850px; margin: .35rem 0 .5rem; color: var(--muted); font-size: .7rem; }
.ticket-meta-row { display: flex; flex-wrap: wrap; gap: .38rem .8rem; color: #7a8396; font-size: .6rem; }
.ticket-meta-row span:not(:first-child)::before, .ticket-meta-row time::before { content: "•"; margin-right: .5rem; color: #c0c6d2; }
.desk-ticket-state { flex: 0 0 160px; display: flex; flex-direction: column; align-items: flex-end; justify-content: center; gap: .35rem; }
.ticket-status, .ticket-priority { display: inline-flex; align-items: center; justify-content: center; width: fit-content; padding: .25rem .52rem; border-radius: 999px; font-size: .58rem; font-weight: 900; white-space: nowrap; }
.ticket-status { background: #eef0f5; color: #536075; }
.status-new { background: #e9ecff; color: #4651c8; }
.status-assigned { background: #e3f7fd; color: #14718b; }
.status-in_progress { background: #fff0d8; color: #945900; }
.status-waiting_user { background: #f5eaff; color: #7e3ab5; }
.status-resolved { background: #ddf8eb; color: #13714d; }
.status-closed { background: #e9edf3; color: #475467; }
.status-cancelled { background: #fee7e7; color: #a52f34; }
.ticket-priority { border: 1px solid var(--border); background: #fff; color: #667085; }
.priority-low { border-color: #cfe8de; color: #19704f; }
.priority-medium { border-color: #d5d9e5; color: #5b6578; }
.priority-high { border-color: #f1d092; color: #955d00; }
.priority-critical { border-color: #f4b7bb; background: #fff2f3; color: #b4232d; }
.sync-state { color: #7a8396; font-size: .56rem; }
.sync-synced { color: #16815a !important; }
.sync-error { color: #b4232d !important; }
.sync-not_configured { color: #7b61b2 !important; }
.desk-empty { min-height: 280px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .4rem; }
.desk-empty > span { font-size: 2rem; color: var(--primary); }
.desk-empty p { margin: 0 0 .5rem; }

.desk-create-layout { display: grid; grid-template-columns: minmax(0,1.1fr) minmax(330px,.9fr); gap: 1rem; align-items: start; }
.desk-form-panel, .desk-evidence-panel { padding: 1.1rem; }
.desk-evidence-panel { padding: 0; overflow: hidden; position: sticky; top: calc(var(--topbar-height) + 1rem); }
.ticket-evidence-count { padding: .27rem .5rem; border-radius: 999px; background: #e9ecff; color: var(--primary); font-size: .58rem; font-weight: 900; }
.ticket-message-selector { max-height: 560px; overflow-y: auto; display: grid; border-top: 1px solid var(--border); }
.ticket-message-option { position: relative; display: flex; gap: .65rem; padding: .72rem .85rem; border-bottom: 1px solid var(--border); cursor: pointer; }
.ticket-message-option:hover { background: #f8f9fc; }
.ticket-message-option input { position: absolute; opacity: 0; pointer-events: none; }
.ticket-message-check { flex: 0 0 auto; width: 23px; height: 23px; display: grid; place-items: center; border: 1px solid #cbd1dc; border-radius: 7px; color: transparent; background: #fff; font-size: .66rem; font-weight: 900; }
.ticket-message-option input:checked + .ticket-message-check { border-color: var(--primary); background: var(--primary); color: #fff; }
.ticket-message-content { min-width: 0; flex: 1; }
.ticket-message-top { display: flex; justify-content: space-between; gap: .7rem; }
.ticket-message-top strong { color: var(--text); font-size: .68rem; }
.ticket-message-top time { color: #8b93a5; font-size: .56rem; }
.ticket-message-body { display: block; margin-top: .2rem; color: #5f687a; font-size: .66rem; line-height: 1.4; white-space: pre-wrap; overflow-wrap: anywhere; }
.ticket-message-files { display: block; margin-top: .28rem; color: var(--primary); font-size: .58rem; font-weight: 800; }
.desk-evidence-panel > .form-help { padding: .7rem .85rem; margin: 0; }

.ticket-detail-header { display: flex; justify-content: space-between; gap: 1rem; align-items: flex-start; margin-bottom: 1rem; }
.ticket-detail-kicker { display: flex; flex-wrap: wrap; gap: .4rem; align-items: center; }
.ticket-detail-header h1 { margin: .55rem 0 .3rem; font-size: clamp(1.35rem,2.5vw,2rem); }
.ticket-detail-header > div > p { margin: 0; color: var(--muted); font-size: .72rem; }
.ticket-detail-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .45rem; }
.ticket-detail-actions form { margin: 0; }
.ticket-detail-grid { display: grid; grid-template-columns: minmax(0,1fr) 340px; gap: 1rem; align-items: start; }
.ticket-main-column, .ticket-side-column { display: grid; gap: 1rem; }
.ticket-description-panel, .ticket-evidence-detail, .ticket-timeline-panel, .ticket-info-panel, .ticket-update-panel { padding: 1.05rem; }
.ticket-description { color: #364152; font-size: .77rem; line-height: 1.7; white-space: pre-wrap; overflow-wrap: anywhere; }
.ticket-linked-messages { display: grid; gap: .65rem; }
.ticket-linked-message { padding: .75rem; border: 1px solid var(--border); border-radius: 12px; background: #fbfcfe; }
.ticket-linked-author { display: flex; justify-content: space-between; gap: 1rem; }
.ticket-linked-author strong { color: var(--primary); font-size: .68rem; }
.ticket-linked-author time { color: #8b93a5; font-size: .56rem; }
.ticket-linked-message > p { margin: .4rem 0 0; color: #455064; font-size: .7rem; line-height: 1.55; white-space: pre-wrap; }
.ticket-linked-files { display: flex; flex-wrap: wrap; gap: .35rem; margin-top: .55rem; }
.ticket-linked-files a { padding: .35rem .5rem; border: 1px solid #d9ddff; border-radius: 8px; background: #f1f3ff; color: #4852c8; font-size: .6rem; font-weight: 700; text-decoration: none; }
.ticket-linked-files small { color: #7c84a7; }
.ticket-timeline { display: grid; }
.ticket-timeline-item { position: relative; display: grid; grid-template-columns: 20px 1fr; gap: .65rem; padding: 0 0 1rem; }
.ticket-timeline-item:not(:last-child)::before { content: ""; position: absolute; left: 6px; top: 14px; bottom: 0; width: 1px; background: #dfe3eb; }
.timeline-dot { position: relative; z-index: 1; width: 13px; height: 13px; margin-top: .2rem; border: 3px solid #e9ecff; border-radius: 50%; background: var(--primary); }
.timeline-dot.source-portal { border-color: #dff8fd; background: var(--cyan); }
.timeline-dot.source-system { border-color: #edf0f5; background: #667085; }
.timeline-title { display: flex; justify-content: space-between; gap: .8rem; }
.timeline-title strong { font-size: .7rem; }
.timeline-title time { color: #8b93a5; font-size: .56rem; }
.ticket-timeline-item p { margin: .2rem 0 0; color: #657084; font-size: .65rem; }
.ticket-timeline-item small { display: block; margin-top: .2rem; color: #9299a8; font-size: .56rem; }
.ticket-info-panel h2, .ticket-update-panel h2 { margin: 0 0 .85rem; font-size: .9rem; }
.ticket-info-panel dl { margin: 0; display: grid; }
.ticket-info-panel dl > div { display: flex; justify-content: space-between; gap: .7rem; padding: .55rem 0; border-bottom: 1px solid var(--border); }
.ticket-info-panel dt { color: var(--muted); font-size: .62rem; }
.ticket-info-panel dd { margin: 0; max-width: 58%; text-align: right; color: var(--text); font-size: .64rem; font-weight: 800; overflow-wrap: anywhere; }
.sync-error-box { margin-top: .75rem; padding: .65rem; border: 1px solid #f4c4c7; border-radius: 10px; background: #fff4f4; color: #9f2931; font-size: .62rem; line-height: 1.45; overflow-wrap: anywhere; }
.ticket-update-panel form { display: grid; gap: .65rem; }

@media (max-width: 1000px) {
  .desk-create-layout, .ticket-detail-grid { grid-template-columns: 1fr; }
  .desk-evidence-panel { position: static; }
  .ticket-side-column { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 700px) {
  .desk-stats { grid-template-columns: 1fr; }
  .desk-list-heading, .ticket-detail-header { align-items: stretch; flex-direction: column; }
  .desk-filter-form { justify-content: space-between; }
  .desk-filter-form select { flex: 1; min-width: 0; }
  .desk-ticket-row { flex-direction: column; }
  .desk-ticket-state { flex: 0 0 auto; flex-direction: row; align-items: center; justify-content: flex-start; flex-wrap: wrap; }
  .ticket-meta-row span:not(:first-child)::before, .ticket-meta-row time::before { display: none; }
  .ticket-detail-actions { justify-content: flex-start; }
  .ticket-detail-actions .button, .ticket-detail-actions form, .ticket-detail-actions form button { width: 100%; }
  .ticket-side-column { grid-template-columns: 1fr; }
  .ticket-linked-author, .timeline-title { flex-direction: column; gap: .15rem; }
}


/* NovaCore AI · Fase 5 */
.ai-page-header { align-items: center; }
.ai-status-banner { display: flex; align-items: center; gap: 1rem; padding: 1rem 1.1rem; margin-bottom: 1rem; border: 1px solid var(--border); border-radius: 17px; background: linear-gradient(120deg,#fff,rgba(91,103,241,.06)); }
.ai-status-banner.remote { background: linear-gradient(120deg,#fff,rgba(34,199,242,.09)); }
.ai-status-banner > div { flex: 1; }
.ai-status-banner strong { display: block; color: var(--ink); font-size: .92rem; }
.ai-status-banner p { margin: .18rem 0 0; font-size: .78rem; }
.ai-orb { width: 43px; height: 43px; border-radius: 14px; display: grid; place-items: center; color: #fff; background: linear-gradient(135deg,var(--primary),#22c7f2); box-shadow: 0 9px 24px rgba(91,103,241,.25); font-size: 1.2rem; flex: 0 0 auto; }
.ai-status-pill,.ai-mini-badge { border-radius: 999px; padding: .38rem .62rem; background: rgba(91,103,241,.1); color: var(--primary); font-size: .68rem; font-weight: 800; white-space: nowrap; }
.ai-home-grid { align-items: stretch; }
.ai-quick-panel textarea { min-height: 170px; }
.ai-quick-form .form-actions { justify-content: space-between; align-items: center; }
.ai-metrics-panel { display: flex; flex-direction: column; gap: .75rem; }
.ai-metric { padding: .8rem 0; border-bottom: 1px solid var(--border); display: flex; align-items: center; justify-content: space-between; }
.ai-metric span { color: var(--muted); font-size: .77rem; }
.ai-metric strong { font-size: 1rem; color: var(--ink); }
.ai-conversation-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .7rem; }
.ai-conversation-card { border: 1px solid var(--border); border-radius: 14px; padding: .8rem; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: .7rem; color: var(--ink); transition: .18s ease; }
.ai-conversation-card:hover { border-color: rgba(91,103,241,.5); transform: translateY(-1px); box-shadow: 0 8px 20px rgba(22,34,56,.06); }
.ai-conversation-card strong,.ai-conversation-card small { display: block; }
.ai-conversation-card small { color: var(--muted); font-size: .67rem; margin-top: .15rem; }
.ai-conversation-card b { color: var(--primary); font-size: .72rem; }
.ai-analysis-list { display: flex; flex-direction: column; }
.ai-analysis-row { display: grid; grid-template-columns: auto minmax(0,1fr) auto auto; gap: .75rem; align-items: center; padding: .75rem .25rem; border-bottom: 1px solid var(--border); color: var(--ink); }
.ai-analysis-row:last-child { border-bottom: 0; }
.ai-analysis-icon { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 11px; color: var(--primary); background: rgba(91,103,241,.09); }
.ai-analysis-copy strong,.ai-analysis-copy small { display: block; }
.ai-analysis-copy small { color: var(--muted); font-size: .68rem; margin-top: .12rem; }
.ai-analysis-row time { color: var(--muted); font-size: .67rem; }
.ai-analyze-layout { display: grid; grid-template-columns: minmax(0,1fr) 330px; gap: 1rem; align-items: start; }
.ai-action-panel { position: sticky; top: 82px; display: flex; flex-direction: column; gap: .9rem; }
.ai-privacy-box { padding: .8rem; border-radius: 13px; border: 1px solid rgba(34,199,242,.25); background: rgba(34,199,242,.06); }
.ai-privacy-box strong { font-size: .77rem; color: var(--ink); }
.ai-privacy-box p { margin: .25rem 0 0; font-size: .7rem; }
.ai-action-explain { padding: .8rem; border-radius: 13px; background: var(--surface-alt,#f6f8fb); }
.ai-action-explain strong { font-size: .77rem; color: var(--ink); }
.ai-action-explain p { margin: .25rem 0 0; font-size: .7rem; }
.button-block { width: 100%; justify-content: center; }
.ai-result-grid { display: grid; grid-template-columns: minmax(0,1fr) 330px; gap: 1rem; align-items: start; }
.ai-result-heading { display: flex; gap: .8rem; align-items: center; padding-bottom: 1rem; border-bottom: 1px solid var(--border); }
.ai-result-heading > div { flex: 1; }
.ai-result-heading small { color: var(--muted); font-size: .67rem; }
.ai-result-heading h2 { margin: .15rem 0 0; font-size: 1.1rem; }
.confidence-badge { font-size: .67rem; font-weight: 800; color: var(--primary); background: rgba(91,103,241,.09); padding: .42rem .6rem; border-radius: 999px; }
.ai-classification-row { display: grid; grid-template-columns: repeat(3,1fr); gap: .6rem; margin: 1rem 0; }
.ai-classification-row > span { border: 1px solid var(--border); border-radius: 12px; padding: .7rem; }
.ai-classification-row small,.ai-classification-row strong { display: block; }
.ai-classification-row small { color: var(--muted); font-size: .62rem; }
.ai-classification-row strong { margin-top: .25rem; font-size: .78rem; }
.ai-result-section { padding: .9rem 0; border-top: 1px solid var(--border); }
.ai-result-section h3 { margin: 0 0 .55rem; font-size: .84rem; }
.ai-result-section p,.ai-proposed-text { font-size: .78rem; line-height: 1.65; white-space: pre-line; }
.ai-proposed-text { border-left: 3px solid var(--primary); padding: .65rem .75rem; background: rgba(91,103,241,.04); border-radius: 0 9px 9px 0; }
.ai-check-list,.ai-step-list { margin: 0; padding-left: 1.2rem; }
.ai-check-list li,.ai-step-list li { margin: .42rem 0; color: var(--muted); font-size: .76rem; line-height: 1.5; }
.ai-article-pills { display: flex; flex-wrap: wrap; gap: .4rem; }
.ai-article-pills span { padding: .38rem .55rem; border-radius: 999px; background: rgba(34,199,242,.09); color: #087a96; font-size: .67rem; font-weight: 700; }
.ai-review-panel { position: sticky; top: 82px; }
.ai-review-panel > p { font-size: .75rem; }
.ai-review-panel form,.ai-review-panel > .button { margin-top: .65rem; }
.ai-risk-list { display: flex; flex-direction: column; gap: .55rem; margin: 1rem 0; }
.ai-risk-list > div { display: grid; grid-template-columns: 25px 1fr; gap: .5rem; align-items: start; }
.ai-risk-list span { width: 24px; height: 24px; border-radius: 8px; display: grid; place-items: center; background: rgba(245,158,11,.12); color: #b66a00; font-weight: 900; }
.ai-risk-list p { margin: 0; font-size: .7rem; line-height: 1.45; }
.ai-meta { margin-top: 1rem; padding-top: .8rem; border-top: 1px solid var(--border); display: flex; flex-direction: column; gap: .45rem; }
.ai-meta span { display: flex; justify-content: space-between; color: var(--muted); font-size: .65rem; }
.knowledge-list { display: flex; flex-direction: column; }
.knowledge-row { display: grid; grid-template-columns: auto minmax(0,1fr) auto; align-items: center; gap: .8rem; padding: .9rem .2rem; border-bottom: 1px solid var(--border); }
.knowledge-row.inactive { opacity: .62; }
.knowledge-icon { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 12px; background: rgba(91,103,241,.09); color: var(--primary); }
.knowledge-title { display: flex; align-items: center; gap: .5rem; }
.knowledge-title h2 { margin: 0; font-size: .87rem; }
.knowledge-row p { margin: .2rem 0; font-size: .73rem; }
.knowledge-row small { color: var(--muted); font-size: .65rem; }
.knowledge-form { max-width: 880px; }
.ai-header-button { color: var(--primary); background: rgba(91,103,241,.08); }

@media (max-width: 900px) {
  .ai-analyze-layout,.ai-result-grid { grid-template-columns: 1fr; }
  .ai-action-panel,.ai-review-panel { position: static; }
  .ai-conversation-grid { grid-template-columns: 1fr; }
}
@media (max-width: 620px) {
  .ai-status-banner { align-items: flex-start; flex-wrap: wrap; }
  .ai-status-pill { margin-left: 54px; }
  .ai-analysis-row { grid-template-columns: auto 1fr auto; }
  .ai-analysis-row time { display: none; }
  .ai-classification-row { grid-template-columns: 1fr; }
  .knowledge-row { grid-template-columns: auto minmax(0,1fr); }
  .knowledge-row > .button { grid-column: 2; justify-self: start; }
  .mobile-nav a { font-size: .58rem; }
}

/* NovaCore Meet · Fase 6 */
.meet-page { display: grid; gap: 1rem; }
.meet-security-note { display: flex; align-items: center; gap: .7rem; padding: .72rem .85rem; border: 1px solid rgba(34,199,242,.22); border-radius: 14px; background: rgba(34,199,242,.06); }
.meet-security-note > span { width: 35px; height: 35px; display: grid; place-items: center; border-radius: 11px; background: #fff; }
.meet-security-note strong,.meet-security-note small { display: block; }
.meet-security-note strong { color: var(--text); font-size: .72rem; }
.meet-security-note small { margin-top: .12rem; color: var(--muted); font-size: .58rem; }
.meet-grid { display: grid; grid-template-columns: minmax(0,1.05fr) minmax(340px,.95fr); gap: 1rem; align-items: start; }
.meet-contacts-card,.meet-history-card { overflow: hidden; }
.compact-search { display: flex; align-items: center; gap: .35rem; min-width: 230px; padding: .48rem .62rem; border: 1px solid var(--border); border-radius: 10px; background: #fff; }
.compact-search span { color: var(--muted); }
.compact-search input { width: 100%; border: 0; outline: 0; background: transparent; color: var(--text); font-size: .66rem; }
.meet-user-list,.call-history-list { display: grid; border-top: 1px solid var(--border); }
.meet-user-row,.call-history-row { display: flex; align-items: center; gap: .72rem; padding: .78rem .9rem; border-bottom: 1px solid var(--border); }
.meet-user-row:last-child,.call-history-row:last-child { border-bottom: 0; }
.meet-user-row:hover,.call-history-row:hover { background: #fafbfe; }
.meet-user-copy,.call-history-copy { min-width: 0; flex: 1; }
.meet-user-copy strong,.meet-user-copy span,.call-history-copy strong,.call-history-copy span { display: block; }
.meet-user-copy strong,.call-history-copy strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--text); font-size: .72rem; }
.meet-user-copy span,.call-history-copy span { margin-top: .15rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--muted); font-size: .59rem; }
.meet-user-actions { display: flex; gap: .35rem; }
.call-history-icon { width: 38px; height: 38px; flex: 0 0 auto; display: grid; place-items: center; border-radius: 12px; background: #eef1f6; color: #687386; font-size: .85rem; }
.call-history-icon.status-completed,.call-history-icon.status-active { background: #ddf8eb; color: #13714d; }
.call-history-icon.status-missed,.call-history-icon.status-rejected,.call-history-icon.status-failed { background: #fee7e7; color: #a52f34; }
.call-history-icon.status-ringing { background: #e9ecff; color: var(--primary); }
.call-history-meta { flex: 0 0 auto; text-align: right; }
.call-history-meta time,.call-history-meta small { display: block; color: var(--muted); font-size: .56rem; }
.call-history-meta small { margin-top: .18rem; font-weight: 800; }
.empty-state-inline { padding: 2rem 1rem; text-align: center; }
.empty-state-inline strong { display: block; color: var(--text); font-size: .75rem; }
.empty-state-inline p { margin: .3rem 0 0; color: var(--muted); font-size: .65rem; }

.incoming-call-modal { position: fixed; inset: 0; z-index: 3000; display: grid; place-items: center; padding: 1rem; background: rgba(4,10,22,.68); backdrop-filter: blur(7px); opacity: 0; transition: opacity .2s ease; }
.incoming-call-modal[hidden] { display: none; }
.incoming-call-modal.visible { opacity: 1; }
.incoming-call-card { width: min(360px,100%); padding: 1.5rem; border: 1px solid rgba(255,255,255,.12); border-radius: 24px; background: linear-gradient(160deg,#131d34,#0b1220); color: #fff; text-align: center; box-shadow: 0 28px 80px rgba(0,0,0,.38); transform: translateY(12px) scale(.98); transition: transform .2s ease; }
.incoming-call-modal.visible .incoming-call-card { transform: translateY(0) scale(1); }
.incoming-call-brand { color: #aab4cc; font-size: .62rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.incoming-call-avatar { width: 88px; height: 88px; margin: 1.15rem auto .8rem; display: grid; place-items: center; border: 3px solid rgba(34,199,242,.6); border-radius: 28px; background: linear-gradient(135deg,var(--primary),#22c7f2); font-size: 1.4rem; font-weight: 900; box-shadow: 0 12px 35px rgba(34,199,242,.18); }
.incoming-call-card h2 { margin: 0; font-size: 1.25rem; }
.incoming-call-card p { margin: .35rem 0 1.3rem; color: #aeb7c9; font-size: .72rem; }
.incoming-call-actions { display: flex; justify-content: center; gap: 2rem; }
.incoming-call-button { border: 0; background: transparent; color: #fff; cursor: pointer; }
.incoming-call-button > span { width: 58px; height: 58px; display: grid; place-items: center; margin: 0 auto .38rem; border-radius: 50%; color: #fff; font-size: 1.15rem; }
.incoming-call-button small { font-size: .62rem; font-weight: 800; }
.incoming-call-button.reject > span { background: #d92d3a; transform: rotate(135deg); }
.incoming-call-button.accept > span { background: #19a66f; }
.incoming-call-button:disabled { opacity: .55; cursor: wait; }

.runtime-toast { position: fixed; z-index: 4000; right: 1rem; bottom: 1rem; max-width: min(360px,calc(100vw - 2rem)); padding: .75rem .9rem; border: 1px solid var(--border); border-radius: 12px; background: #fff; color: var(--text); box-shadow: 0 15px 40px rgba(14,24,43,.18); font-size: .68rem; font-weight: 750; opacity: 0; transform: translateY(12px); transition: .2s ease; }
.runtime-toast.show { opacity: 1; transform: translateY(0); }
.runtime-toast.danger { border-color: #f1b9bd; background: #fff4f4; color: #a52f34; }
.runtime-toast.warning { border-color: #f1d092; background: #fff8ec; color: #8b5700; }

.call-room { min-height: calc(100vh - var(--topbar-height) - 2rem); }
.call-stage { position: relative; min-height: calc(100vh - var(--topbar-height) - 2rem); overflow: hidden; border-radius: 22px; background: radial-gradient(circle at 50% 15%,#273657,#0a1120 58%); box-shadow: 0 20px 55px rgba(11,18,32,.22); }
.remote-video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; background: #07101e; }
.audio-mode .remote-video { opacity: 0; pointer-events: none; }
.audio-mode .local-video-wrap { display: none; }
.remote-placeholder { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 1rem; color: #fff; text-align: center; transition: opacity .2s ease; }
.remote-placeholder.video-connected { opacity: 0; pointer-events: none; }
.call-avatar { width: 120px; height: 120px; display: grid; place-items: center; overflow: hidden; border: 4px solid rgba(255,255,255,.2); border-radius: 38px; background: linear-gradient(135deg,var(--primary),#22c7f2); font-size: 1.8rem; font-weight: 900; box-shadow: 0 20px 55px rgba(0,0,0,.25); }
.call-avatar img { width: 100%; height: 100%; object-fit: cover; }
.remote-placeholder h1 { margin: 1rem 0 .28rem; font-size: clamp(1.3rem,3vw,2rem); }
.remote-placeholder p { max-width: 650px; margin: 0; color: #b7c1d4; font-size: .78rem; }
.call-duration { margin-top: .65rem; color: #fff; font-size: .85rem; letter-spacing: .08em; }
.local-video-wrap { position: absolute; z-index: 3; top: 1rem; right: 1rem; width: min(220px,24vw); aspect-ratio: 16/10; overflow: hidden; border: 2px solid rgba(255,255,255,.24); border-radius: 16px; background: #111b2f; box-shadow: 0 12px 35px rgba(0,0,0,.35); }
.local-video-wrap[hidden] { display: none; }
.local-video { width: 100%; height: 100%; object-fit: cover; transform: scaleX(-1); }
.local-video-wrap > span { position: absolute; left: .5rem; bottom: .42rem; padding: .2rem .38rem; border-radius: 6px; background: rgba(0,0,0,.48); color: #fff; font-size: .52rem; font-weight: 800; }
.call-network-state { position: absolute; z-index: 4; top: 1rem; left: 1rem; max-width: calc(100% - 270px); padding: .42rem .58rem; border-radius: 9px; background: rgba(5,12,24,.62); color: #d4dbea; font-size: .58rem; backdrop-filter: blur(5px); }
.call-controls { position: absolute; z-index: 5; left: 50%; bottom: 1.25rem; transform: translateX(-50%); display: flex; align-items: center; gap: .65rem; padding: .58rem .75rem; border: 1px solid rgba(255,255,255,.12); border-radius: 20px; background: rgba(7,14,27,.75); backdrop-filter: blur(12px); }
.call-control { min-width: 70px; border: 0; background: transparent; color: #fff; cursor: pointer; }
.call-control > span { width: 46px; height: 46px; display: grid; place-items: center; margin: 0 auto .25rem; border-radius: 15px; background: rgba(255,255,255,.12); font-size: 1rem; transition: .16s ease; }
.call-control small { color: #d6dceb; font-size: .53rem; font-weight: 750; }
.call-control:hover > span,.call-control.active > span { background: rgba(91,103,241,.8); }
.call-control.off > span { background: #d58a12; }
.call-control.danger > span { background: #d92d3a; transform: rotate(135deg); }
.call-control.danger:hover > span { background: #ef3847; }

@media (max-width: 1000px) {
  .meet-grid { grid-template-columns: 1fr; }
  .call-stage,.call-room { min-height: calc(100dvh - var(--topbar-height) - var(--mobile-nav-height,64px) - 1.2rem); }
}
@media (max-width: 700px) {
  .meet-security-note { width: 100%; }
  .panel-card-header { align-items: stretch; flex-direction: column; }
  .compact-search { min-width: 0; width: 100%; }
  .meet-user-row { gap: .55rem; padding: .72rem; }
  .meet-user-actions .icon-button { width: 36px; height: 36px; }
  .call-history-row { padding: .72rem; }
  .call-history-meta { display: none; }
  .call-stage { border-radius: 16px; }
  .local-video-wrap { width: 112px; top: .65rem; right: .65rem; border-radius: 12px; }
  .call-network-state { top: .65rem; left: .65rem; max-width: calc(100% - 140px); }
  .call-controls { width: calc(100% - 1rem); bottom: .55rem; justify-content: center; gap: .15rem; padding: .45rem .3rem; border-radius: 16px; }
  .call-control { min-width: 62px; }
  .call-control > span { width: 42px; height: 42px; border-radius: 14px; }
  .call-avatar { width: 98px; height: 98px; border-radius: 30px; }
  .incoming-call-card { border-radius: 20px; }
}

/* NovaCore Meet · Fase 7 */
.hero-actions { display:flex; align-items:center; justify-content:flex-end; gap:.75rem; flex-wrap:wrap; }
.meeting-overview-card { overflow:hidden; }
.meeting-room-list { display:grid; border-top:1px solid var(--border); }
.meeting-room-row { display:grid; grid-template-columns:auto minmax(0,1fr) auto auto; gap:.75rem; align-items:center; padding:.8rem .9rem; border-bottom:1px solid var(--border); }
.meeting-room-row:last-child { border-bottom:0; }
.meeting-room-row:hover { background:#fafbfe; }
.meeting-room-icon { width:42px; height:42px; display:grid; place-items:center; border-radius:13px; background:linear-gradient(135deg,rgba(91,103,241,.12),rgba(34,199,242,.16)); color:var(--primary); font-weight:900; }
.meeting-room-copy { min-width:0; }
.meeting-room-copy strong,.meeting-room-copy span { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.meeting-room-copy strong { color:var(--text); font-size:.74rem; }
.meeting-room-copy span { margin-top:.16rem; color:var(--muted); font-size:.58rem; }
.meeting-room-state { display:flex; gap:.35rem; align-items:center; }
.meeting-room-row > time { color:var(--muted); font-size:.55rem; }
.button.small { min-height:32px; padding:.42rem .62rem; font-size:.57rem; }
.readonly-field { min-height:44px; display:flex; align-items:center; padding:0 .75rem; border:1px solid var(--border); border-radius:12px; background:#f7f8fb; color:var(--muted); font-size:.66rem; }
.meeting-invite-selector { margin-top:1rem; border:1px solid var(--border); border-radius:16px; overflow:hidden; }
.panel-card-header.embedded { border-bottom:1px solid var(--border); }
.meeting-user-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.55rem; padding:.75rem; max-height:420px; overflow:auto; }
.meeting-user-choice { position:relative; display:flex; align-items:center; gap:.65rem; padding:.65rem; border:1px solid var(--border); border-radius:14px; background:#fff; cursor:pointer; transition:.16s ease; }
.meeting-user-choice:hover { border-color:rgba(91,103,241,.42); background:#fafaff; }
.meeting-user-choice input { position:absolute; opacity:0; pointer-events:none; }
.meeting-user-choice:has(input:checked) { border-color:var(--primary); box-shadow:0 0 0 2px rgba(91,103,241,.11); background:#f7f7ff; }
.meeting-user-choice-copy { min-width:0; flex:1; }
.meeting-user-choice-copy strong,.meeting-user-choice-copy small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.meeting-user-choice-copy strong { color:var(--text); font-size:.68rem; }
.meeting-user-choice-copy small { margin-top:.12rem; color:var(--muted); font-size:.55rem; }
.meeting-user-check { width:25px; height:25px; display:grid; place-items:center; border:1px solid var(--border); border-radius:8px; color:transparent; font-size:.65rem; }
.meeting-user-choice:has(input:checked) .meeting-user-check { border-color:var(--primary); background:var(--primary); color:#fff; }
.form-help { display:block; padding:0 .8rem .75rem; color:var(--muted); font-size:.58rem; }
.meeting-invite-card > small { display:block; margin:-.7rem 0 1.15rem; color:#8fdff4; font-size:.6rem; }

.meeting-room { min-height:calc(100vh - var(--topbar-height) - 2rem); display:grid; grid-template-columns:minmax(0,1fr); gap:.8rem; }
.meeting-room.panel-open { grid-template-columns:minmax(0,1fr) 330px; }
.meeting-stage { position:relative; min-width:0; min-height:calc(100vh - var(--topbar-height) - 2rem); display:flex; flex-direction:column; overflow:hidden; border-radius:22px; background:radial-gradient(circle at 50% 0,#25365a,#09101f 62%); box-shadow:0 20px 55px rgba(11,18,32,.22); }
.meeting-stage-header { display:flex; justify-content:space-between; gap:1rem; align-items:flex-start; padding:1rem 1.1rem .8rem; color:#fff; }
.meeting-stage-header h1 { margin:.2rem 0 0; font-size:1.05rem; }
.meeting-stage-header p { margin:.25rem 0 0; color:#b9c3d8; font-size:.6rem; }
.meeting-stage-header .eyebrow { color:#7ddff5; }
.meeting-stage-meta { display:flex; gap:.5rem; align-items:center; }
.meeting-stage-meta span,.meeting-stage-meta strong { padding:.38rem .55rem; border:1px solid rgba(255,255,255,.12); border-radius:10px; background:rgba(5,12,24,.42); color:#e6ebf5; font-size:.58rem; }
.meeting-video-grid { flex:1; min-height:0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); grid-auto-rows:minmax(180px,1fr); gap:.55rem; padding:0 .75rem 6.2rem; overflow:auto; }
.meeting-video-tile { position:relative; min-height:180px; overflow:hidden; border:1px solid rgba(255,255,255,.1); border-radius:16px; background:#121c31; }
.meeting-video-tile video { width:100%; height:100%; object-fit:cover; background:#0c1425; }
.meeting-video-tile.local video { transform:scaleX(-1); }
.meeting-tile-placeholder { position:absolute; inset:0; display:grid; place-content:center; justify-items:center; gap:.45rem; padding:1rem; background:radial-gradient(circle at 50% 30%,#253a62,#101a2e 68%); color:#fff; text-align:center; transition:opacity .2s ease; }
.meeting-video-tile.connected:not(.camera-off) .meeting-tile-placeholder { opacity:0; pointer-events:none; }
.meeting-tile-placeholder > span { width:72px; height:72px; display:grid; place-items:center; border-radius:24px; background:linear-gradient(135deg,var(--primary),#22c7f2); font-size:1.1rem; font-weight:900; }
.meeting-tile-placeholder strong { font-size:.72rem; }
.meeting-tile-placeholder small { color:#aab6cc; font-size:.55rem; }
.meeting-tile-label { position:absolute; z-index:3; left:.55rem; right:.55rem; bottom:.5rem; display:flex; justify-content:space-between; align-items:center; padding:.32rem .45rem; border-radius:8px; background:rgba(4,10,20,.58); color:#fff; backdrop-filter:blur(7px); }
.meeting-tile-label span { max-width:85%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:.56rem; font-weight:750; }
.meeting-tile-label i { color:#2bd48f; font-style:normal; }
.meeting-controls { position:absolute; z-index:6; left:50%; bottom:1rem; transform:translateX(-50%); display:flex; align-items:center; justify-content:center; gap:.25rem; padding:.5rem .6rem; border:1px solid rgba(255,255,255,.12); border-radius:20px; background:rgba(7,14,27,.78); backdrop-filter:blur(12px); }
.meeting-side-panel { min-width:0; height:calc(100vh - var(--topbar-height) - 2rem); overflow:hidden; border:1px solid var(--border); border-radius:18px; background:#fff; box-shadow:0 14px 45px rgba(15,23,42,.08); }
.meeting-side-panel[hidden] { display:none; }
.meeting-side-panel > header { display:flex; justify-content:space-between; align-items:center; padding:.85rem; border-bottom:1px solid var(--border); }
.meeting-side-panel > header h2 { margin:.12rem 0 0; font-size:.85rem; }
.meeting-side-panel > section { height:calc(100% - 72px); }
.meeting-participant-list { height:100%; overflow:auto; }
.meeting-participant-row { display:flex; align-items:center; gap:.55rem; padding:.65rem .75rem; border-bottom:1px solid var(--border); }
.meeting-participant-row > div { min-width:0; flex:1; }
.meeting-participant-row strong,.meeting-participant-row small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.meeting-participant-row strong { color:var(--text); font-size:.64rem; }
.meeting-participant-row small { margin-top:.12rem; color:var(--muted); font-size:.52rem; }
.danger-soft { color:#bd3640 !important; background:#fff0f1 !important; }
.meeting-chat-list { height:calc(100% - 62px); overflow:auto; padding:.7rem; }
.meeting-chat-message { margin-bottom:.55rem; padding:.55rem .62rem; border-radius:12px; background:#f5f7fb; }
.meeting-chat-message strong { display:block; color:var(--primary); font-size:.57rem; }
.meeting-chat-message p { margin:.22rem 0; color:var(--text); font-size:.62rem; line-height:1.45; white-space:pre-wrap; overflow-wrap:anywhere; }
.meeting-chat-message time { color:var(--muted); font-size:.48rem; }
.meeting-chat-form { height:62px; display:flex; gap:.45rem; align-items:center; padding:.55rem; border-top:1px solid var(--border); }
.meeting-chat-form input { min-width:0; flex:1; height:40px; padding:0 .65rem; border:1px solid var(--border); border-radius:11px; }

@media (min-width:1400px) {
  .meeting-video-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media (max-width:900px) {
  .meeting-user-grid { grid-template-columns:1fr; }
  .meeting-room-row { grid-template-columns:auto minmax(0,1fr) auto; }
  .meeting-room-row > time { display:none; }
  .meeting-room.panel-open { grid-template-columns:1fr; }
  .meeting-side-panel { position:fixed; z-index:1200; inset:var(--topbar-height) 0 var(--mobile-nav-height,64px) auto; width:min(360px,100%); height:auto; border-radius:18px 0 0 18px; }
  .meeting-stage,.meeting-room { min-height:calc(100dvh - var(--topbar-height) - var(--mobile-nav-height,64px) - 1rem); }
  .meeting-video-grid { grid-template-columns:1fr; grid-auto-rows:minmax(170px,45vh); padding:.25rem .5rem 5.5rem; }
  .meeting-stage-header { padding:.75rem; }
  .meeting-stage-header h1 { font-size:.88rem; }
  .meeting-stage-meta span { display:none; }
  .meeting-controls { width:calc(100% - .8rem); bottom:.45rem; gap:.05rem; padding:.4rem .2rem; overflow-x:auto; }
  .meeting-controls .call-control { min-width:58px; }
  .meeting-room-state { flex-direction:column; align-items:stretch; }
}
.meeting-room.audio-mode .meeting-video-tile.connected .meeting-tile-placeholder { opacity:1; pointer-events:auto; }
.meeting-room.audio-mode .meeting-video-tile video { opacity:0; }
.meeting-panel-actions { padding:.6rem .7rem; border-bottom:1px solid var(--border); }
.meeting-participant-actions { display:flex; gap:.25rem; }
.meeting-invite-dialog { width:min(620px,calc(100% - 1.2rem)); max-height:85vh; padding:0; border:0; border-radius:20px; background:transparent; box-shadow:0 24px 80px rgba(8,15,30,.3); }
.meeting-invite-dialog::backdrop { background:rgba(4,10,22,.66); backdrop-filter:blur(6px); }
.meeting-invite-dialog .form-card { margin:0; max-height:85vh; overflow:auto; }
.meeting-user-grid.compact { max-height:360px; }
.meeting-video-tile.hand-raised { border-color:#f6b83f; box-shadow:0 0 0 2px rgba(246,184,63,.28); }
.meeting-video-tile.hand-raised::after { content:"✋"; position:absolute; z-index:5; top:.55rem; right:.55rem; width:34px; height:34px; display:grid; place-items:center; border-radius:11px; background:#f6b83f; box-shadow:0 6px 18px rgba(0,0,0,.22); }

/* NovaCore 0.8 · Operations, security and CRM core */
.nav-item.future-nav small{margin-left:auto;font-size:.65rem;padding:.15rem .35rem;border-radius:999px;background:rgba(255,255,255,.1);color:#b9c7e6}.future-module,.future-card{border-style:dashed}.module-badge.planned,.status-pill.planned{background:#eef0ff;color:#545fd4}.status-pill,.health-badge{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:.28rem .58rem;font-size:.75rem;font-weight:700;text-transform:capitalize;white-space:nowrap}.status-pill.completed,.health-badge.healthy{background:#e7f8f0;color:#157454}.status-pill.failed,.health-badge.critical{background:#feecec;color:#ba3038}.status-pill.running,.health-badge.warning{background:#fff5db;color:#936400}.status-pill.revoked{background:#eef1f5;color:#667085}.stat-icon.amber{background:#fff2d7;color:#b56d00}.stat-icon.red{background:#feecec;color:#c33842}.stat-grid.compact{grid-template-columns:repeat(4,minmax(0,1fr))}.disk-progress{height:14px;border-radius:999px;background:#e8edf5;overflow:hidden;margin:1.25rem 0 .75rem}.disk-progress span{display:block;height:100%;background:linear-gradient(90deg,#5b67f1,#22c7f2);border-radius:inherit}.disk-legend{display:flex;justify-content:space-between;gap:1rem;color:#667085;font-size:.85rem;flex-wrap:wrap}.table-subtitle{display:block;color:#667085;margin-top:.2rem}.truncate-cell{max-width:270px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.table-actions{display:flex;gap:.45rem;justify-content:flex-end;flex-wrap:wrap}.button.small{padding:.48rem .7rem;font-size:.78rem}.button-danger{background:#c83944;color:#fff;border:1px solid #c83944}.button-danger:hover{background:#a92e38}.alert{padding:1rem 1.1rem;border-radius:14px;margin-bottom:1rem;line-height:1.55}.alert.warning{background:#fff7df;color:#72540e;border:1px solid #f1d68a}.alert.danger{background:#fff0f1;color:#8c2830;border:1px solid #f0b7bc}.cleanup-options{display:grid;gap:.75rem}.cleanup-option{display:flex;gap:.8rem;align-items:flex-start;padding:.9rem;border:1px solid #dfe5ef;border-radius:14px;background:#fff;cursor:pointer}.cleanup-option:hover{border-color:#7a84f4}.cleanup-option input{margin-top:.25rem}.cleanup-option span{display:grid;gap:.22rem}.cleanup-option small{color:#667085}.check-row{display:flex;gap:.65rem;align-items:center}.field-error{color:#bd303a}.crm-core-hero>div:first-child{display:flex;gap:1rem;align-items:flex-start}.definition-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin:1.25rem 0 0}.definition-grid div{padding:1rem;border-radius:14px;background:#f6f8fc}.definition-grid dt{font-size:.75rem;color:#667085}.definition-grid dd{margin:.35rem 0 0;font-weight:750;color:#172033}.roadmap-list{display:grid;gap:1rem}.roadmap-list>div{display:flex;gap:.8rem}.roadmap-list b{width:2rem;height:2rem;border-radius:50%;display:grid;place-items:center;background:#eef0ff;color:#5964e8;flex:0 0 auto}.roadmap-list p{margin:.2rem 0 0;color:#667085}.check-list{display:grid;gap:.75rem;padding-left:1.2rem;color:#49566d}.numbered-plan{display:grid;gap:.9rem;padding-left:1.4rem}.numbered-plan li{padding-left:.25rem}.numbered-plan span{display:block;color:#667085;margin-top:.2rem}
@media(max-width:1100px){.stat-grid.compact{grid-template-columns:repeat(2,minmax(0,1fr))}.definition-grid{grid-template-columns:1fr}}
@media(max-width:700px){.stat-grid.compact{grid-template-columns:1fr}.disk-legend{display:grid}.table-actions{justify-content:flex-start}.crm-core-hero>div:first-child{display:grid}.cleanup-option{padding:.8rem}}

/* Fase 9 · PWA, conectividad y notificaciones */
.notification-bell { position: relative; text-decoration: none; }
.notification-bell b { position: absolute; top: -5px; right: -5px; min-width: 18px; height: 18px; padding: 0 4px; border-radius: 999px; background: #e5484d; color: #fff; font-size: 10px; line-height: 18px; text-align: center; }
.offline-banner, .update-banner { position: fixed; left: 50%; transform: translateX(-50%); z-index: 3000; border-radius: 12px; box-shadow: 0 12px 35px rgba(11,18,32,.2); }
.offline-banner { bottom: calc(82px + env(safe-area-inset-bottom)); background: #172033; color: #fff; padding: 10px 16px; font-size: 13px; }
.update-banner { bottom: 24px; display: flex; align-items: center; gap: 16px; background: #fff; color: #172033; padding: 12px 14px 12px 18px; border: 1px solid #d9deea; }
.update-banner button { border: 0; border-radius: 9px; padding: 9px 12px; background: #5b67f1; color: #fff; font-weight: 700; cursor: pointer; }
.profile-stack { display: grid; gap: 20px; }
.pwa-settings .pwa-actions { display: flex; flex-wrap: wrap; gap: 10px; margin: 18px 0 12px; }
.notification-center { padding: 0; overflow: hidden; }
.notification-row { border-bottom: 1px solid #e8ebf2; }
.notification-row:last-child { border-bottom: 0; }
.notification-row button { width: 100%; border: 0; background: #fff; display: grid; grid-template-columns: 42px minmax(0,1fr) auto; gap: 12px; align-items: center; text-align: left; padding: 16px 18px; color: #172033; cursor: pointer; }
.notification-row.unread button { background: #f4f6ff; }
.notification-row button:hover { background: #f8f9fc; }
.notification-kind { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 12px; background: #e9edff; color: #5b67f1; font-weight: 800; }
.notification-row strong, .notification-row small { display: block; }
.notification-row small { margin-top: 4px; color: #667085; }
.notification-row time { color: #8a94a6; font-size: 12px; white-space: nowrap; }
.offline-page { min-height: 100vh; padding: 32px; display: grid; place-items: center; align-content: center; gap: 32px; background: #f5f7fb; }
.offline-page > img { width: min(260px, 70vw); }
.offline-card { max-width: 520px; background: #fff; border-radius: 22px; padding: 36px; text-align: center; box-shadow: 0 20px 60px rgba(11,18,32,.09); }
.offline-symbol { display: grid; place-items: center; width: 64px; height: 64px; margin: 0 auto 16px; border-radius: 18px; background: #e9edff; color: #5b67f1; font-size: 30px; }
.is-offline [data-requires-online] { opacity: .55; pointer-events: none; }
@media (max-width: 720px) {
  .notification-row button { grid-template-columns: 38px minmax(0,1fr); }
  .notification-row time { grid-column: 2; }
  .update-banner { width: calc(100% - 24px); bottom: calc(78px + env(safe-area-inset-bottom)); }
  .offline-banner { width: calc(100% - 24px); text-align: center; }
}

/* NovaCore 1.0 RC · estabilización, diagnóstico y piloto */
.module-badge.rc{background:#e7f8f0;color:#157454}.pilot-module{border-color:#b8ead5}.pilot-layout{display:grid;grid-template-columns:minmax(320px,.85fr) minmax(0,1.15fr);gap:1.2rem;align-items:start}.pilot-report-list,.pilot-admin-list{display:grid;gap:.9rem}.pilot-report-list{padding:1rem}.pilot-report-card{padding:1rem;border:1px solid var(--border);border-radius:16px;background:#fff}.pilot-report-card h3,.pilot-admin-card h2{margin:.65rem 0 .35rem}.pilot-report-card>p,.pilot-admin-card>p{white-space:pre-wrap;overflow-wrap:anywhere;color:var(--muted)}.pilot-report-head{display:flex;justify-content:space-between;align-items:center;gap:.7rem;flex-wrap:wrap}.pilot-report-head>div{display:flex;gap:.4rem;flex-wrap:wrap}.pilot-report-head time{font-size:.72rem;color:var(--muted)}.severity-pill,.module-chip{display:inline-flex;align-items:center;border-radius:999px;padding:.28rem .58rem;font-size:.72rem;font-weight:750}.severity-pill.low{background:#edf8f3;color:#147453}.severity-pill.medium{background:#fff5db;color:#916300}.severity-pill.high{background:#fff0e2;color:#a64e08}.severity-pill.critical{background:#feecec;color:#b52f39}.module-chip{background:#eef1f6;color:#536078}.status-pill.reported{background:#eef0ff;color:#535fcf}.status-pill.reviewing{background:#e5f6ff;color:#147393}.status-pill.planned{background:#fff5db;color:#8b6200}.status-pill.resolved,.status-pill.closed{background:#e7f8f0;color:#157454}.pilot-admin-note{margin-top:.8rem;padding:.8rem;border-radius:12px;background:#f4f6ff}.pilot-admin-note p{margin:.25rem 0 0}.pilot-admin-card details{margin:.75rem 0}.pilot-admin-card pre{white-space:pre-wrap;overflow-wrap:anywhere;padding:.8rem;border-radius:12px;background:#f6f8fc;font:inherit}.pilot-manage-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;gap:.6rem;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border)}.pilot-manage-form textarea{grid-column:1/-2}.filter-bar{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap;margin-bottom:1rem}.filter-bar select{min-width:180px}.page-actions{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap}.page-actions form{margin:0}.diagnostic-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}.diagnostic-check{display:flex;gap:.75rem;align-items:flex-start;padding:.85rem;border:1px solid var(--border);border-radius:14px;background:#fff}.diagnostic-check>span{width:30px;height:30px;display:grid;place-items:center;border-radius:10px;font-weight:850;flex:0 0 auto}.diagnostic-check.healthy>span{background:#e7f8f0;color:#157454}.diagnostic-check.warning>span{background:#fff5db;color:#916300}.diagnostic-check.critical>span{background:#feecec;color:#b52f39}.diagnostic-check strong{display:block}.diagnostic-check p{margin:.2rem 0 0;color:var(--muted);font-size:.82rem;line-height:1.45}.health-badge.warning{background:#fff5db;color:#936400}.health-badge.critical{background:#feecec;color:#ba3038}.resolved-row{opacity:.62}.request-id{margin-top:1rem;color:var(--muted)}.request-id code{display:inline-block;padding:.25rem .45rem;border-radius:7px;background:#eef1f6;color:var(--text);word-break:break-all}.pilot-admin-link{border-color:#c6cbed;background:#f8f8ff}
@media(max-width:900px){.pilot-layout{grid-template-columns:1fr}.diagnostic-grid{grid-template-columns:1fr}.pilot-manage-form{grid-template-columns:1fr}.pilot-manage-form textarea{grid-column:auto}.page-actions{width:100%}.page-actions .button,.page-actions form,.page-actions form button{width:100%}}

/* Fase 11: Integraciones operativas */
.integration-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}.integration-card{border:1px solid var(--border,#dfe5ef);border-left:4px solid #94a3b8;border-radius:14px;padding:16px;background:#fff;display:flex;flex-direction:column;gap:8px}.integration-card.healthy{border-left-color:#22a06b}.integration-card.warning{border-left-color:#f59e0b}.integration-card.critical{border-left-color:#e5484d}.integration-card-head{display:flex;justify-content:space-between;gap:10px;align-items:center}.integration-card p{margin:0;color:#667085}.integration-card small{color:#7b8495;overflow-wrap:anywhere}.two-column-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.config-list{display:grid;gap:10px;margin:0 0 18px}.config-list>div{display:flex;justify-content:space-between;gap:16px;border-bottom:1px solid #edf0f5;padding-bottom:8px}.config-list dt{color:#667085}.config-list dd{margin:0;font-weight:600;text-align:right;overflow-wrap:anywhere}.ice-result{min-height:76px;border:1px dashed #cbd5e1;border-radius:14px;padding:16px;background:#f8fafc}.ice-result p{margin:10px 0 0;color:#667085}@media(max-width:840px){.two-column-grid{grid-template-columns:1fr}.integration-card-head{align-items:flex-start;flex-direction:column}.config-list>div{align-items:flex-start;flex-direction:column}.config-list dd{text-align:left}}

/* Phase 12: pilot campaigns and release gates */
.page-actions,.pilot-toolbar,.gate-actions{display:flex;gap:.65rem;align-items:center;flex-wrap:wrap}.pilot-toolbar{margin:-.5rem 0 1.25rem}.campaign-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem}.campaign-card{display:block;color:inherit;text-decoration:none;transition:transform .18s ease,border-color .18s ease}.campaign-card:hover{transform:translateY(-2px);border-color:#9aa5ff}.campaign-card h2{margin:.75rem 0 .35rem}.campaign-progress{height:8px;border-radius:999px;background:#e8ebf5;overflow:hidden;margin:1rem 0 .65rem}.campaign-progress span{display:block;height:100%;background:linear-gradient(90deg,#5b67f1,#22c7f2);border-radius:inherit}.campaign-stats{display:flex;gap:.75rem;align-items:baseline;flex-wrap:wrap;color:#667085;font-size:.86rem}.campaign-stats strong{font-size:1.35rem;color:#172033}.metric-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.campaign-assign{margin:1rem 0}.tester-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.7rem;margin:1rem 0}.tester-card{display:flex;align-items:center;gap:.7rem;padding:.75rem;border:1px solid #e1e5ef;border-radius:12px;background:#fff;cursor:pointer}.tester-card:has(input:checked){border-color:#5b67f1;background:#f4f5ff}.tester-card input{width:18px;height:18px}.tester-card span:last-child{display:grid}.tester-card small{color:#667085}.scenario-list{display:grid;gap:.85rem}.scenario-card{border:1px solid #e3e7f0;border-radius:14px;padding:1rem;background:#fbfcff}.scenario-head{display:flex;justify-content:space-between;gap:.75rem;align-items:center;flex-wrap:wrap}.scenario-head>div{display:flex;gap:.45rem;align-items:center;flex-wrap:wrap}.scenario-code{display:inline-flex;font:700 .75rem/1.2 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.04em;color:#3641b7;background:#eef0ff;border-radius:7px;padding:.28rem .45rem}.priority-chip{font-size:.72rem;padding:.25rem .45rem;border-radius:999px;background:#eef2f6;color:#475467}.priority-chip.required{background:#fff0f0;color:#b42318}.execution-chips{display:flex;gap:.4rem;flex-wrap:wrap;margin-top:.8rem}.execution-chip{font-size:.75rem;border-radius:999px;padding:.3rem .5rem;background:#eef2f6}.execution-chip.passed{background:#e8f7ef;color:#067647}.execution-chip.failed,.execution-chip.blocked{background:#fff0f0;color:#b42318}.execution-chip.pending{background:#fff7e6;color:#b54708}.release-gate{display:flex;justify-content:space-between;gap:1.25rem;align-items:flex-start;margin-top:1rem}.gate-result{margin-top:1rem;padding:.9rem;border-radius:12px;display:grid;gap:.25rem}.gate-result.ready{background:#e8f7ef;color:#067647}.gate-result.not_ready{background:#fff7e6;color:#93370d}.gate-result ul{margin:.5rem 0 0;padding-left:1.1rem}.test-campaign{margin-bottom:1rem}.test-list{display:grid;gap:.5rem}.test-row{display:flex;justify-content:space-between;gap:1rem;align-items:center;border:1px solid #e4e7ec;border-radius:12px;padding:.85rem 1rem;text-decoration:none;color:inherit;background:#fff}.test-row:hover{border-color:#9aa5ff}.test-row h3{margin:.35rem 0 .2rem}.test-row.passed{border-left:4px solid #12b76a}.test-row.failed,.test-row.blocked{border-left:4px solid #f04438}.execution-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,.8fr);gap:1rem}.instruction-panel h2,.instruction-panel h3{margin-top:0}.instruction-panel h3{margin-top:1.2rem}.preline{white-space:pre-line}.target-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.65rem;margin-top:1.1rem}.target-grid span{display:grid;gap:.25rem;background:#f5f7fb;border-radius:10px;padding:.75rem}.target-grid strong{font-size:.75rem;color:#667085}.form-note{background:#f5f7fb;border-radius:10px;padding:.75rem;margin-bottom:1rem;font-size:.86rem}.status-pill.draft{background:#eef2f6;color:#475467}.status-pill.active{background:#eaf2ff;color:#175cd3}.status-pill.completed{background:#e8f7ef;color:#067647}.status-pill.paused{background:#fff7e6;color:#b54708}.status-pill.passed{background:#e8f7ef;color:#067647}.status-pill.failed,.status-pill.blocked{background:#fff0f0;color:#b42318}.status-pill.pending{background:#fff7e6;color:#b54708}.check-card{display:flex;gap:.7rem;align-items:flex-start;border:1px solid #e1e5ef;border-radius:12px;padding:.9rem;cursor:pointer}.check-card input{margin-top:.2rem}.check-card span{display:grid;gap:.2rem}.check-card small{color:#667085}.narrow{max-width:820px}
@media(max-width:900px){.metric-grid.four{grid-template-columns:repeat(2,minmax(0,1fr))}.execution-layout{grid-template-columns:1fr}.release-gate{display:grid}.target-grid{grid-template-columns:1fr}.test-row{align-items:flex-start}}
@media(max-width:560px){.metric-grid.four{grid-template-columns:1fr 1fr}.tester-grid{grid-template-columns:1fr}.campaign-grid{grid-template-columns:1fr}.test-row{display:grid}.page-actions{width:100%}.page-actions .button{flex:1;text-align:center}}


/* Fase 13 · Producción estable */
.health-dot{width:.72rem;height:.72rem;border-radius:50%;flex:0 0 auto;background:#98a2b3;box-shadow:0 0 0 4px rgba(152,162,179,.12)}
.health-dot.healthy{background:var(--green);box-shadow:0 0 0 4px rgba(34,160,107,.13)}
.health-dot.warning{background:var(--amber);box-shadow:0 0 0 4px rgba(245,158,11,.14)}
.health-dot.critical{background:var(--red);box-shadow:0 0 0 4px rgba(229,72,77,.13)}
.check-list .check-row{padding:.82rem .2rem;border-bottom:1px solid var(--border);list-style:none}
.check-list .check-row:last-child{border-bottom:0}
.check-row>div{flex:1}.check-row p{margin:.2rem 0 0;color:var(--muted);font-size:.78rem;line-height:1.45}
.full-width{width:100%}.button:disabled{opacity:.5;cursor:not-allowed}
.maintenance-page span{color:var(--amber)}

/* Module-specific complements for the shared v3.1 design system */
.narrow-page{max-width:980px;margin-inline:auto}
.form-card{padding:1.25rem}
.desk-symbol{background:linear-gradient(135deg,#5864ee,#22bde9)}
.ai-symbol{background:linear-gradient(135deg,#6558e8,#9a5cf0 55%,#22c7f2)}
.meet-symbol{background:linear-gradient(135deg,#4256e7,#16afd8)}
.form-step{width:34px;height:34px;flex:0 0 auto;display:grid;place-items:center;border-radius:11px;color:var(--primary);background:#eef0ff;font-size:.8rem;font-weight:900}
.button.primary{background:linear-gradient(135deg,var(--primary),#7755e7);color:#fff;box-shadow:0 8px 22px rgba(91,103,241,.2)}
.button.secondary{background:#fff;border-color:var(--border);color:var(--text)}
.avatar.medium{width:42px;height:42px}
.message-actions{align-items:center}
.message-actions button{flex:0 0 28px;width:28px;height:28px;padding:0;display:inline-grid;place-items:center;line-height:1}
.message-actions button:hover{background:#eef0ff;box-shadow:inset 0 0 0 1px #dfe2ff}
.composer-action,.send-button{line-height:1;padding:0}
.composer-action:hover{border-color:#adb5f6;color:var(--primary);background:#f5f6ff}
.send-button:hover{background:var(--primary-dark);transform:translateY(-1px)}

/* Desk */
.desk-home-hero { background:linear-gradient(135deg,#fff,#f6f7ff 55%,#eafaff); }
.desk-stat { position:relative; overflow:hidden; }
.desk-stat::after { content:""; position:absolute; width:80px; height:80px; right:-35px; bottom:-45px; border-radius:50%; background:rgba(91,103,241,.06); }
.desk-list-panel { border-radius:18px; }
.desk-list-heading { margin:0; padding:1.1rem 1.2rem; }
.desk-filter-form { padding:.36rem; border:1px solid var(--border); border-radius:12px; background:#f8f9fc; }
.desk-filter-form label { padding-left:.4rem; }
.desk-filter-form select { border:0; background:#fff; box-shadow:0 1px 2px rgba(16,24,40,.04); }
.desk-ticket-row { position:relative; display:grid; grid-template-columns:42px minmax(0,1fr) auto 24px; align-items:center; padding:1rem 1.15rem; }
.desk-ticket-row:hover { background:linear-gradient(90deg,#fafaff,#f7fbfd); }
.desk-row-icon { width:40px; height:40px; display:grid; place-items:center; border-radius:12px; background:#eef0ff; color:var(--primary); font-size:.64rem; font-weight:900; }
.desk-row-icon.priority-critical { background:#feecec; color:#b52f39; }
.desk-row-icon.priority-high { background:#fff0e2; color:#a64e08; }
.desk-row-icon.priority-low { background:#e8f7ef; color:#147453; }
.desk-row-arrow { color:#9aa3b4; font-weight:900; transition:.16s ease; }
.desk-ticket-row:hover .desk-row-arrow { color:var(--primary); transform:translateX(3px); }
.desk-create-layout { grid-template-columns:minmax(0,1.15fr) minmax(310px,.72fr); }
.desk-form-panel { padding:0; }
.desk-form-panel > .form-grid,.desk-form-panel > .desk-form-tip,.desk-form-panel > .form-actions { margin-inline:1.25rem; }
.desk-form-panel > .form-grid { margin-top:1.2rem; }
.desk-form-panel > .form-actions { margin-bottom:1.2rem; }
.desk-form-tip { display:flex; gap:.7rem; align-items:flex-start; margin-top:1rem; padding:.8rem .9rem; border:1px solid #d8eee6; border-radius:13px; background:#f3fbf7; }
.desk-form-tip > span { width:26px; height:26px; display:grid; place-items:center; flex:0 0 auto; border-radius:8px; background:#dff5ea; color:#16805b; font-weight:900; }
.desk-form-tip strong { font-size:.75rem; }
.desk-form-tip p { margin:.15rem 0 0; font-size:.68rem; }
.desk-guidance-card { padding:1.2rem; position:sticky; top:calc(var(--topbar-height) + 1rem); }
.guidance-icon { width:48px; height:48px; display:grid; place-items:center; border-radius:15px; background:linear-gradient(135deg,#eef0ff,#e9fbff); color:var(--primary); font-size:1.2rem; }
.desk-guidance-card h2 { margin:1rem 0 .55rem; }
.desk-guidance-card ul { margin:0; padding-left:1.2rem; color:var(--muted); font-size:.76rem; line-height:1.65; }
.ai-assist-link { display:grid; grid-template-columns:35px 1fr auto; align-items:center; gap:.65rem; margin-top:1rem; padding:.8rem; border:1px solid #dfe2ff; border-radius:13px; background:#f7f7ff; }
.ai-assist-link > span { width:35px; height:35px; display:grid; place-items:center; border-radius:11px; color:#fff; background:linear-gradient(135deg,var(--primary),#a05be9); }
.ai-assist-link strong,.ai-assist-link small { display:block; }
.ai-assist-link strong { font-size:.72rem; }
.ai-assist-link small { margin-top:.15rem; color:var(--muted); font-size:.61rem; }
.ai-assist-link b { color:var(--primary); }
.evidence-help { padding:.8rem 1rem !important; }
.ticket-delete-note { margin-top:.8rem; padding:.7rem; border-radius:10px; background:#fff7e6; color:#8b6200; font-size:.66rem; line-height:1.45; }

/* AI */
.ai-home-hero { background:linear-gradient(135deg,#fff,#f7f5ff 58%,#ebfbff); }
.ai-ticket-layout { display:grid; grid-template-columns:minmax(0,1.3fr) minmax(280px,.7fr); gap:1rem; align-items:stretch; }
.ai-ticket-composer { padding:1.25rem; background:linear-gradient(160deg,#fff 55%,#faf9ff); }
.ai-composer-head { display:flex; gap:.9rem; align-items:flex-start; padding-bottom:1rem; border-bottom:1px solid var(--border); }
.ai-composer-icon { width:48px; height:48px; flex:0 0 auto; display:grid; place-items:center; border-radius:15px; color:#fff; background:linear-gradient(135deg,var(--primary),#9a5cf0 62%,#22c7f2); box-shadow:0 10px 24px rgba(91,103,241,.22); }
.ai-composer-head h2 { margin:.1rem 0 .28rem; font-size:1.08rem; }
.ai-composer-head p { margin:0; font-size:.75rem; }
.ai-description-field { margin-top:1rem; }
.ai-description-field textarea { min-height:190px; background:#fcfcff; }
.ai-privacy-inline { display:flex; gap:.55rem; align-items:flex-start; margin-top:.8rem; padding:.72rem .8rem; border-radius:12px; background:#f5f7fb; }
.ai-privacy-inline > span { color:var(--primary); font-weight:900; }
.ai-privacy-inline p { margin:0; font-size:.67rem; line-height:1.5; }
.ai-module-overview { padding-bottom:1rem; }
.ai-overview-metrics { display:grid; grid-template-columns:repeat(3,1fr); gap:.5rem; padding:1rem; }
.ai-overview-metrics > div { min-width:0; padding:.75rem .55rem; border:1px solid var(--border); border-radius:12px; text-align:center; background:#fbfcff; }
.ai-overview-metrics span,.ai-overview-metrics strong { display:block; }
.ai-overview-metrics span { color:var(--muted); font-size:.58rem; }
.ai-overview-metrics strong { margin-top:.3rem; font-size:.95rem; }
.ai-safe-card { margin:0 1rem; padding:.85rem; border:1px solid rgba(34,199,242,.25); border-radius:13px; background:rgba(34,199,242,.06); }
.ai-safe-card strong { font-size:.73rem; }
.ai-safe-card p { margin:.25rem 0 0; font-size:.66rem; }
.ai-conversation-modern { padding:1rem; }

/* Crear reunión */
.meeting-create-hero { background:linear-gradient(135deg,#fff,#f5f7ff 58%,#e9fbff); }
.meeting-create-layout { display:grid; grid-template-columns:minmax(300px,.75fr) minmax(0,1.25fr); gap:1rem; align-items:start; }
.meeting-config-card { padding:0; position:sticky; top:calc(var(--topbar-height) + 1rem); }
.meeting-config-card > .form-grid,.meeting-config-card > .meeting-feature-strip { margin-inline:1.2rem; }
.meeting-config-card > .form-grid { margin-top:1rem; }
.meeting-feature-strip { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.5rem; margin-block:1rem 1.2rem; }
.meeting-feature-strip span { display:flex; align-items:center; gap:.45rem; padding:.58rem; border-radius:10px; background:#f6f8fc; color:#5f687a; font-size:.63rem; font-weight:700; }
.meeting-feature-strip b { color:var(--primary); }
.meeting-invite-card-form { padding-bottom:1rem; }
.meeting-search { margin:1rem 1rem .2rem; width:calc(100% - 2rem); max-width:none; }
.meeting-user-grid-modern { grid-template-columns:repeat(2,minmax(0,1fr)); max-height:480px; }
.meeting-user-grid-modern .meeting-user-choice { padding:.75rem; }
.meeting-user-grid-modern .meeting-user-choice-copy strong { font-size:.72rem; }
.meeting-user-grid-modern .meeting-user-choice-copy small { font-size:.57rem; }
.meeting-selection-footer { display:flex; justify-content:space-between; gap:1rem; align-items:center; padding:.7rem 1rem 0; color:var(--muted); font-size:.62rem; }
.meeting-selection-footer small { padding:0; color:var(--primary); font-weight:800; }
.meeting-invite-card-form > .form-actions { margin:1rem; }
.readonly-field b { margin-right:.3rem; color:var(--primary); }

/* Llamada: cámara opcional */
.local-video-wrap.media-unavailable { display:grid; place-items:center; background:linear-gradient(135deg,#192641,#10192c); }
.local-video-wrap.media-unavailable::before { content:"Solo audio"; color:#cad3e5; font-size:.65rem; font-weight:800; }
.local-video-wrap.media-unavailable .local-video { display:none; }
.call-control:disabled { opacity:.55; cursor:wait; }

@media (max-width: 1050px) {
  .ai-ticket-layout,.meeting-create-layout { grid-template-columns:1fr; }
  .meeting-config-card,.desk-guidance-card { position:static; }
}
@media (max-width: 900px) {
  .page-hero { align-items:flex-start; flex-direction:column; padding:1.25rem; }
  .page-hero-copy { align-items:flex-start; }
  .desk-ticket-row { grid-template-columns:38px minmax(0,1fr) 20px; }
  .desk-ticket-state { grid-column:2; flex-direction:row; align-items:center; justify-content:flex-start; flex-wrap:wrap; }
  .desk-row-arrow { grid-column:3; grid-row:1/3; }
  .desk-create-layout { grid-template-columns:1fr; }
  .desk-evidence-panel { position:static; }
}
@media (max-width: 620px) {
  .page-hero-copy { gap:.75rem; }
  .hero-symbol { width:50px; height:50px; border-radius:16px; font-size:1.15rem; }
  .page-hero h1 { font-size:1.5rem; }
  .form-grid.two-columns,.form-grid.two { grid-template-columns:1fr; }
  .field.full,.field.full-width,.full-width { grid-column:auto; }
  .form-actions .button { flex:1; }
  .desk-ticket-row { padding:.85rem; }
  .desk-row-icon { width:34px; height:34px; }
  .desk-ticket-line { align-items:flex-start; flex-direction:column; gap:.28rem; }
  .ticket-meta-row span:not(:first-child)::before,.ticket-meta-row time::before { display:none; }
  .ai-overview-metrics { grid-template-columns:1fr; }
  .meeting-user-grid-modern { grid-template-columns:1fr; }
  .meeting-selection-footer { align-items:flex-start; flex-direction:column; }
  .meeting-feature-strip { grid-template-columns:1fr; }
}
.icon-button.primary:hover { border-color:var(--primary-dark); background:var(--primary-dark); color:#fff; }
.attachment-composer-preview[data-uploading="true"]::after { content:attr(aria-label); flex:0 0 auto; align-self:center; color:var(--primary); font-size:.62rem; font-weight:800; padding:.35rem .5rem; }
.send-button.is-loading { animation:nova-send-pulse .9s ease-in-out infinite alternate; }
@keyframes nova-send-pulse { from { opacity:.55; transform:scale(.96); } to { opacity:1; transform:scale(1); } }

/* Messenger, notifications and contextual AI */
.call-action-button { border-radius:12px; }
.call-action-button[data-call-type="audio"] { color:#3567d6; background:#eef4ff; border-color:#dce8ff; }
.call-action-button[data-call-type="audio"]:hover { color:#fff; background:linear-gradient(135deg,#3976e8,#5b67f1); border-color:transparent; }
.call-action-button[data-call-type="video"] { background:linear-gradient(135deg,#5b67f1,#8a5de8); }
.composer-action .ui-icon,.send-button .ui-icon { width:20px; height:20px; }
.send-button { transition:transform .18s ease,box-shadow .18s ease,background .18s ease; }
.send-button:hover { box-shadow:0 8px 20px rgba(91,103,241,.28); }

.chat-panel { position:relative; overflow:hidden; }
.messenger-ai-drawer[hidden] { display:none !important; }
.messenger-ai-drawer { position:absolute; z-index:35; top:0; right:0; bottom:0; width:min(430px,92%); display:grid; grid-template-rows:auto auto minmax(0,1fr) auto; background:rgba(255,255,255,.98); backdrop-filter:blur(18px); border-left:1px solid #e3e6f1; box-shadow:-18px 0 50px rgba(19,30,54,.16); animation:messenger-ai-in .2s ease-out; }
@keyframes messenger-ai-in { from { opacity:0; transform:translateX(24px); } to { opacity:1; transform:none; } }
.messenger-ai-head { display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:.8rem; align-items:start; padding:1rem; border-bottom:1px solid var(--border); background:linear-gradient(135deg,#fff,#f7f6ff); }
.messenger-ai-brand { width:42px; height:42px; display:grid; place-items:center; border-radius:14px; color:#fff; background:linear-gradient(135deg,var(--primary),#8c5de8 62%,#22c7f2); box-shadow:0 10px 22px rgba(91,103,241,.22); }
.messenger-ai-brand .ui-icon { width:22px; height:22px; }
.messenger-ai-head h3 { margin:.05rem 0 .18rem; font-size:1rem; }
.messenger-ai-head p { margin:0; color:var(--muted); font-size:.66rem; line-height:1.45; }
.messenger-ai-modes { display:grid; grid-template-columns:1fr 1fr; gap:.45rem; padding:.75rem 1rem; border-bottom:1px solid var(--border); background:#fbfcff; }
.messenger-ai-modes button { border:1px solid #e1e5ef; border-radius:11px; padding:.62rem .8rem; background:#fff; color:#687287; font-weight:800; font-size:.68rem; cursor:pointer; transition:.18s ease; }
.messenger-ai-modes button:hover,.messenger-ai-modes button.active { color:var(--primary); border-color:#cfd3ff; background:#f0f1ff; box-shadow:0 6px 15px rgba(91,103,241,.09); }
.messenger-ai-thread { min-height:0; overflow:auto; padding:1rem; display:flex; flex-direction:column; gap:.8rem; background:linear-gradient(180deg,#fafbff,#f5f7fb); }
.messenger-ai-welcome { margin:auto; max-width:280px; text-align:center; color:var(--muted); }
.messenger-ai-welcome > span { width:52px; height:52px; display:grid; place-items:center; margin:0 auto .7rem; border-radius:17px; color:var(--primary); background:#eceeff; }
.messenger-ai-welcome strong { display:block; color:var(--text); margin-bottom:.3rem; }
.messenger-ai-welcome p { margin:0; font-size:.67rem; line-height:1.55; }
.messenger-ai-message { max-width:92%; padding:.8rem .9rem; border-radius:15px; font-size:.7rem; line-height:1.5; box-shadow:0 7px 18px rgba(22,31,55,.06); }
.messenger-ai-message.user { align-self:flex-end; color:#fff; background:linear-gradient(135deg,var(--primary),#7858e8); border-bottom-right-radius:5px; }
.messenger-ai-message.assistant { align-self:flex-start; color:var(--text); background:#fff; border:1px solid #e6e9f2; border-bottom-left-radius:5px; }
.messenger-ai-message h4 { margin:0 0 .35rem; font-size:.74rem; }
.messenger-ai-message p { margin:.2rem 0; }
.messenger-ai-message ul { margin:.4rem 0 .1rem; padding-left:1.05rem; }
.messenger-ai-message .button { margin-top:.55rem; }
.messenger-ai-form { padding:.85rem 1rem 1rem; border-top:1px solid var(--border); background:#fff; }
.messenger-ai-form textarea { min-height:82px; max-height:150px; resize:vertical; border-radius:13px; background:#fafbff; }
.messenger-ai-form-footer { display:flex; gap:.75rem; align-items:center; justify-content:space-between; margin-top:.65rem; }
.messenger-ai-form-footer small { color:var(--muted); font-size:.58rem; }
.messenger-ai-form-footer .button { display:inline-flex; align-items:center; gap:.42rem; }
.ai-header-button { color:#7358dc; background:#f1efff; border-color:#e3defe; }
.ai-header-button:hover { color:#fff; background:linear-gradient(135deg,#7358dc,#5b67f1); }

.system-notification-stack { position:fixed; z-index:1100; top:calc(var(--topbar-height,64px) + 14px); right:16px; width:min(380px,calc(100vw - 32px)); display:flex; flex-direction:column; gap:.65rem; pointer-events:none; }
.system-notification-card { pointer-events:auto; display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:.75rem; align-items:center; padding:.82rem .88rem; border:1px solid rgba(210,216,231,.9); border-radius:16px; background:rgba(255,255,255,.96); backdrop-filter:blur(18px); color:var(--text); box-shadow:0 16px 42px rgba(20,31,55,.18); cursor:pointer; animation:nova-notification-in .25s cubic-bezier(.2,.8,.2,1); }
@keyframes nova-notification-in { from { opacity:0; transform:translateY(-10px) scale(.98); } to { opacity:1; transform:none; } }
.system-notification-card.is-leaving { opacity:0; transform:translateX(20px); transition:.2s ease; }
.system-notification-icon { width:40px; height:40px; display:grid; place-items:center; border-radius:13px; color:#fff; background:linear-gradient(135deg,var(--primary),#7b58e8); box-shadow:0 8px 20px rgba(91,103,241,.24); }
.system-notification-icon .ui-icon { width:20px; height:20px; }
.system-notification-copy { min-width:0; }
.system-notification-copy strong,.system-notification-copy span { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.system-notification-copy strong { font-size:.73rem; }
.system-notification-copy span { margin-top:.18rem; color:var(--muted); font-size:.64rem; }
.system-notification-close { width:28px; height:28px; display:grid; place-items:center; border:0; border-radius:9px; background:#f3f5f9; color:#778196; cursor:pointer; }
.system-notification-close:hover { color:#d4384f; background:#fff0f2; }
.system-notification-card[data-kind="connect_group_invite"] .system-notification-icon,.system-notification-card[data-kind="meet_room"] .system-notification-icon { background:linear-gradient(135deg,#6b55dd,#22aee8); }
.system-notification-card[data-kind="meet_call"] .system-notification-icon { background:linear-gradient(135deg,#18a874,#24c7a4); }
.system-notification-card[data-kind^="desk"] .system-notification-icon { background:linear-gradient(135deg,#e48725,#f5b33c); }

@media (max-width:760px) {
  .messenger-ai-drawer { position:fixed; inset:0; width:100%; z-index:1200; }
  .system-notification-stack { top:12px; right:10px; width:calc(100vw - 20px); }
  .chat-header-actions { gap:.22rem; }
  .chat-header-actions .icon-button { width:34px; height:34px; }
}

/* Profile popover and Messenger viewport behavior */
.profile-menu-wrap { position:relative; }
.profile-menu-trigger { border:0; cursor:pointer; transition:.18s ease; }
.profile-menu-trigger:hover,.profile-menu-trigger.active { box-shadow:0 0 0 4px rgba(91,103,241,.14); transform:translateY(-1px); }
.profile-popover[hidden] { display:none !important; }
.profile-popover { position:absolute; z-index:1300; top:calc(100% + 10px); right:0; width:min(310px,calc(100vw - 24px)); overflow:hidden; border:1px solid #e0e5f0; border-radius:17px; background:rgba(255,255,255,.98); backdrop-filter:blur(18px); box-shadow:0 22px 55px rgba(18,29,53,.2); animation:profile-popover-in .16s ease-out; }
@keyframes profile-popover-in { from { opacity:0; transform:translateY(-6px) scale(.98); } to { opacity:1; transform:none; } }
.profile-popover-head { display:flex; align-items:center; gap:.7rem; padding:.9rem; border-bottom:1px solid var(--border); background:linear-gradient(135deg,#fbfcff,#f3f2ff); }
.profile-popover-head > div:last-child { min-width:0; }
.profile-popover-head strong,.profile-popover-head span { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.profile-popover-head strong { font-size:.76rem; }
.profile-popover-head span { margin-top:.14rem; color:var(--muted); font-size:.61rem; }
.profile-popover > a,.profile-popover form button { width:100%; display:grid; grid-template-columns:auto minmax(0,1fr); gap:.7rem; align-items:center; padding:.78rem .9rem; border:0; background:#fff; color:var(--text); text-align:left; cursor:pointer; }
.profile-popover > a:hover,.profile-popover form button:hover { background:#f5f7ff; color:var(--primary); }
.profile-popover form { margin:0; border-top:1px solid var(--border); }
.profile-popover svg { color:var(--primary); }
.profile-popover a span,.profile-popover button span { min-width:0; }
.profile-popover a strong,.profile-popover a small,.profile-popover button strong,.profile-popover button small { display:block; }
.profile-popover a strong,.profile-popover button strong { font-size:.69rem; }
.profile-popover a small,.profile-popover button small { margin-top:.12rem; color:var(--muted); font-size:.57rem; }

body.module-connect { overflow:hidden; }
body.module-connect .main-content { height:100dvh; min-height:0; overflow:hidden; padding:calc(var(--topbar-height) + .75rem) .85rem .75rem; }
body.module-connect .connect-shell { height:100%; min-height:0; max-height:100%; }
.message-row.notification-focus .message-bubble { animation:message-focus-pulse 1.7s ease; box-shadow:0 0 0 4px rgba(91,103,241,.18),0 12px 28px rgba(91,103,241,.14); }
@keyframes message-focus-pulse { 0%,100% { transform:none; } 30% { transform:translateY(-2px); } }
.remote-placeholder .remote-media-state { display:inline-flex; margin-top:.55rem; padding:.3rem .55rem; border-radius:999px; background:rgba(255,255,255,.1); color:#c9d3e6; font-size:.58rem; font-weight:750; }
.call-stage.remote-camera-off .remote-video { opacity:0; }
.call-stage.remote-camera-off .remote-placeholder { opacity:1; pointer-events:auto; }
.call-stage.remote-camera-on .remote-video { opacity:1; }

@media (max-width:900px) {
  body.module-connect .main-content { height:100dvh; padding:calc(var(--topbar-height) + .55rem) .55rem calc(64px + env(safe-area-inset-bottom) + .55rem); }
  body.module-connect .connect-shell { height:100%; min-height:0; }
  .profile-popover { position:fixed; top:calc(var(--topbar-height) - 2px); right:.6rem; }
}

.call-action-button:disabled { opacity:.45; cursor:not-allowed; filter:grayscale(.25); box-shadow:none; transform:none !important; }
.call-action-button:disabled:hover { color:inherit; background:#eef1f6; border-color:#e1e6ef; }
.presence-help { margin:-.35rem 0 1rem; padding:.75rem .85rem; border-radius:11px; background:rgba(229,72,77,.07); border:1px solid rgba(229,72,77,.14); color:#667085; font-size:.74rem; line-height:1.5; }
.presence-help strong { color:#a92f36; }


/* NovaCore v1.6.4 · Centro compacto de notificaciones */
.notification-menu-wrap{position:relative;display:flex;align-items:center}
.notification-bell{border:0;cursor:pointer}
.notification-bell.active{color:var(--primary);background:#eef0ff;box-shadow:0 0 0 3px rgba(91,103,241,.12)}
.notification-popover[hidden]{display:none!important}
.notification-popover{position:absolute;z-index:1320;top:calc(100% + 11px);right:-10px;width:min(390px,calc(100vw - 24px));overflow:hidden;border:1px solid #dfe4ee;border-radius:19px;background:rgba(255,255,255,.985);backdrop-filter:blur(20px);box-shadow:0 24px 65px rgba(15,27,51,.22);animation:notification-popover-in .16s ease-out}
@keyframes notification-popover-in{from{opacity:0;transform:translateY(-7px) scale(.98)}to{opacity:1;transform:none}}
.notification-popover::before{content:"";position:absolute;top:-6px;right:25px;width:12px;height:12px;border-left:1px solid #dfe4ee;border-top:1px solid #dfe4ee;background:#fff;transform:rotate(45deg)}
.notification-popover-head{position:relative;z-index:1;display:flex;justify-content:space-between;gap:.8rem;align-items:center;padding:.88rem .95rem;border-bottom:1px solid var(--border);background:linear-gradient(135deg,#fbfcff,#f4f3ff)}
.notification-popover-head>div{min-width:0;display:grid;gap:.14rem}
.notification-popover-head strong{font-size:.82rem;color:var(--text)}
.notification-popover-head span{font-size:.61rem;color:var(--muted)}
.notification-mark-all{border:0;border-radius:9px;padding:.42rem .56rem;background:#eceeff;color:#4c58d8;font:700 .58rem/1.2 inherit;cursor:pointer;white-space:nowrap}
.notification-mark-all:hover{background:#dfe3ff;color:#3543c3}
.notification-mark-all:disabled{opacity:.5;cursor:wait}
.notification-popover-list{max-height:min(440px,60vh);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}
.notification-popover-item{position:relative;width:100%;display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:.68rem;align-items:center;padding:.76rem .86rem;border:0;border-bottom:1px solid #edf0f5;background:#fff;color:var(--text);text-align:left;cursor:pointer}
.notification-popover-item:last-child{border-bottom:0}
.notification-popover-item:hover{background:#f7f8ff}
.notification-popover-item.unread{background:#f2f4ff}
.notification-popover-item.unread::after{content:"";position:absolute;top:50%;right:.48rem;width:6px;height:6px;border-radius:50%;background:var(--primary);transform:translateY(-50%)}
.notification-popover-icon{width:39px;height:39px;display:grid;place-items:center;border-radius:13px;background:#e9edff;color:#5b67f1}
.notification-popover-icon svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.notification-popover-icon.kind-meet_call,.notification-popover-icon.kind-meet_room{background:#e7f8f1;color:#14815f}
.notification-popover-icon.kind-connect_group_invite{background:#f0eaff;color:#7154d6}
.notification-popover-icon.kind-desk_ticket{background:#fff1df;color:#c97915}
.notification-popover-copy{min-width:0;display:grid;gap:.2rem}
.notification-popover-copy strong,.notification-popover-copy span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.notification-popover-copy strong{font-size:.69rem}
.notification-popover-copy span{font-size:.59rem;color:var(--muted)}
.notification-popover-meta{align-self:start;padding-top:.12rem;color:#8b95a6;font-size:.52rem;white-space:nowrap}
.notification-popover-footer{padding:.62rem .8rem;border-top:1px solid var(--border);background:#fbfcfe;text-align:center}
.notification-popover-footer a{color:var(--primary);font-size:.62rem;font-weight:750;text-decoration:none}
.notification-popover-footer a:hover{text-decoration:underline}
.notification-popover-loading{height:155px;display:flex;align-items:center;justify-content:center;gap:.32rem}
.notification-popover-loading span{width:7px;height:7px;border-radius:50%;background:#8790f8;animation:notification-loading .9s infinite alternate}
.notification-popover-loading span:nth-child(2){animation-delay:.18s}.notification-popover-loading span:nth-child(3){animation-delay:.36s}
@keyframes notification-loading{to{opacity:.28;transform:translateY(-5px)}}
.notification-popover-empty,.notification-popover-error{min-height:175px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.4rem;padding:1rem;text-align:center;color:var(--muted)}
.notification-popover-empty svg{width:30px;height:30px;fill:none;stroke:#8d97b5;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.notification-popover-empty strong,.notification-popover-error strong{color:var(--text);font-size:.72rem}
.notification-popover-empty span{font-size:.6rem}
.notification-popover-error button{border:0;border-radius:9px;padding:.48rem .72rem;background:var(--primary);color:#fff;font-size:.61rem;font-weight:700;cursor:pointer}
@media(max-width:640px){
  .notification-popover{position:fixed;top:calc(var(--topbar-height,64px) - 2px);right:.55rem;left:.55rem;width:auto;max-height:calc(100dvh - var(--topbar-height,64px) - var(--mobile-nav-height,64px) - .65rem)}
  .notification-popover::before{right:54px}
  .notification-popover-list{max-height:calc(100dvh - var(--topbar-height,64px) - var(--mobile-nav-height,64px) - 145px)}
  .notification-popover-item{grid-template-columns:40px minmax(0,1fr);padding:.72rem .75rem}
  .notification-popover-meta{grid-column:2;padding:0}
}


/* NovaCore v1.7.0 · AI Gateway multiproveedor */
.ai-gateway-hero{background:linear-gradient(135deg,#fff,#f4f5ff 55%,#eafcff)}
.ai-gateway-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.85rem}
.ai-gateway-summary article{display:grid;gap:.22rem;padding:1rem;border:1px solid var(--border);border-radius:17px;background:#fff;box-shadow:0 10px 28px rgba(29,42,74,.06)}
.ai-gateway-summary span,.ai-gateway-summary small{color:var(--muted);font-size:.62rem}.ai-gateway-summary strong{font-size:1rem;color:var(--text)}
.ai-provider-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.ai-provider-card{display:grid;gap:1rem}.ai-provider-card.inactive{opacity:.78}
.ai-provider-head{display:flex;gap:.7rem;align-items:center}.ai-provider-head>div{min-width:0;flex:1}.ai-provider-head h2{margin:.08rem 0;font-size:.94rem}.ai-provider-head p{margin:0;font-size:.62rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ai-provider-logo{width:42px;height:42px;display:grid;place-items:center;border-radius:14px;background:#eef0ff;color:var(--primary);font-weight:850}.ai-provider-logo.provider-groq{background:#fff0e7;color:#d65319}.ai-provider-logo.provider-openrouter{background:#edf9f5;color:#13805e}.ai-provider-logo.provider-openai{background:#eef1f5;color:#2d3748}
.ai-provider-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem}.ai-provider-metrics div{padding:.65rem;border:1px solid #edf0f5;border-radius:12px;background:#fafbfe}.ai-provider-metrics span,.ai-provider-metrics strong{display:block}.ai-provider-metrics span{font-size:.56rem;color:var(--muted)}.ai-provider-metrics strong{margin-top:.15rem;font-size:.76rem}
.ai-provider-tags{display:flex;gap:.38rem;flex-wrap:wrap}.ai-provider-tags span{padding:.3rem .48rem;border-radius:999px;background:#f1f3f8;color:#687386;font-size:.54rem;font-weight:700}
.ai-routing-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}.ai-routing-grid div{padding:.8rem;border:1px solid var(--border);border-radius:13px;background:#fbfcff}.ai-routing-grid strong,.ai-routing-grid span{display:block}.ai-routing-grid strong{font-size:.7rem}.ai-routing-grid span{margin-top:.22rem;color:var(--muted);font-size:.61rem}
.ai-security-note{padding:.9rem 1rem;border:1px solid #dfe4ff;border-radius:15px;background:linear-gradient(135deg,#f8f9ff,#f0fbff)}.ai-security-note strong{font-size:.72rem}.ai-security-note p{margin:.2rem 0 0;font-size:.63rem}
.ai-admin-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(260px,.5fr);gap:1rem}.ai-feedback-summary{display:grid;gap:.65rem}.ai-feedback-summary div{display:flex;justify-content:space-between;padding:.75rem;border-radius:12px;background:#f7f8fc}.ai-feedback-summary span{font-size:.63rem;color:var(--muted)}
@media(max-width:1100px){.ai-provider-grid{grid-template-columns:1fr 1fr}.ai-gateway-summary{grid-template-columns:1fr 1fr}}
@media(max-width:720px){.ai-provider-grid,.ai-gateway-summary,.ai-routing-grid,.ai-admin-grid{grid-template-columns:1fr}}

/* NovaCore v1.8.0 · Cola persistente y caché de IA */
.ai-queue-panel{display:grid;gap:1rem}
.ai-queue-metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.7rem}
.ai-queue-metrics article{display:grid;gap:.16rem;padding:.8rem;border:1px solid #e8ebf3;border-radius:14px;background:linear-gradient(145deg,#fff,#f8f9fd)}
.ai-queue-metrics span,.ai-queue-metrics small{color:var(--muted);font-size:.56rem}.ai-queue-metrics strong{font-size:1rem;color:var(--text)}
.ai-job-progress,.ai-job-failed{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:1rem;align-items:center;padding:1.25rem}
.ai-job-progress-visual{position:relative;width:74px;height:74px;display:grid;place-items:center}
.ai-job-progress-visual .ai-orb{position:relative;z-index:2;width:44px;height:44px;display:grid;place-items:center;border-radius:15px;background:linear-gradient(135deg,#5966f2,#7f59dc);color:#fff;font-size:1.05rem;box-shadow:0 12px 28px rgba(91,103,241,.25)}
.ai-job-spinner{position:absolute;inset:0;border:3px solid #e7e9fb;border-top-color:#5b67f1;border-radius:50%;animation:ai-job-spin 1s linear infinite}
@keyframes ai-job-spin{to{transform:rotate(360deg)}}
.ai-job-progress-copy{display:grid;gap:.4rem}.ai-job-progress-copy h2{margin:0;font-size:1rem}.ai-job-progress-copy p{margin:0;color:var(--muted);font-size:.68rem}
.ai-job-progress-track{height:7px;overflow:hidden;border-radius:999px;background:#eceef7}.ai-job-progress-track span{display:block;width:22%;height:100%;border-radius:inherit;background:linear-gradient(90deg,#5b67f1,#55c6b3);transition:width .35s ease}
.ai-job-progress-meta{display:flex;gap:.7rem;flex-wrap:wrap}.ai-job-progress-meta span{font-size:.56rem;color:var(--muted)}.ai-job-progress-meta strong{color:var(--text)}
.ai-job-failed{border-color:#f0d2d6;background:linear-gradient(135deg,#fff,#fff7f8)}.ai-job-failed-icon{width:44px;height:44px;display:grid;place-items:center;border-radius:14px;background:#ffe3e7;color:#b6323e;font-size:1.1rem;font-weight:850}.ai-job-failed h2{margin:.15rem 0;font-size:.9rem}.ai-job-failed p{margin:0;color:var(--muted);font-size:.64rem}
.notification-popover-icon.kind-ai_job{background:#eeeaff;color:#6751cf}
@media(max-width:1050px){.ai-queue-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:720px){.ai-queue-metrics{grid-template-columns:1fr 1fr}.ai-job-progress,.ai-job-failed{grid-template-columns:auto minmax(0,1fr)}.ai-job-progress>form,.ai-job-failed>form{grid-column:1/-1}.ai-job-progress>form .button,.ai-job-failed>form .button{width:100%}}

/* NovaCore v1.9.0 · Meet bidireccional, asistente Messenger y memoria empresarial */
.messenger-ai-open { overflow:hidden; }
.messenger-ai-overlay[hidden] { display:none !important; }
.messenger-ai-overlay { position:absolute; z-index:80; inset:0; display:grid; place-items:center; padding:1rem; background:rgba(12,20,38,.48); backdrop-filter:blur(7px); animation:nova-ai-overlay-in .18s ease-out; }
@keyframes nova-ai-overlay-in { from { opacity:0; } to { opacity:1; } }
.messenger-ai-dialog { width:min(720px,calc(100% - 1rem)); max-height:calc(100% - 1rem); display:grid; grid-template-rows:auto auto minmax(210px,1fr) auto; overflow:hidden; border:1px solid rgba(223,227,240,.9); border-radius:24px; background:#fff; box-shadow:0 28px 90px rgba(10,20,42,.28); animation:nova-ai-dialog-in .2s ease-out; }
@keyframes nova-ai-dialog-in { from { opacity:0; transform:translateY(14px) scale(.98); } to { opacity:1; transform:none; } }
.messenger-ai-dialog .messenger-ai-head { padding:1rem 1.1rem; background:linear-gradient(135deg,#fff 10%,#f5f4ff 64%,#edfbff); }
.messenger-ai-dialog .messenger-ai-head h3 { font-size:1.05rem; }
.messenger-ai-dialog .messenger-ai-head p { font-size:.66rem; }
.messenger-ai-toolbar { display:grid; grid-template-columns:minmax(220px,.75fr) minmax(280px,1.25fr); gap:.75rem; align-items:center; padding:.75rem 1rem; border-bottom:1px solid var(--border); background:#fbfcff; }
.messenger-ai-toolbar .messenger-ai-modes { padding:0; border:0; background:transparent; }
.messenger-ai-context-toggle { display:flex; gap:.65rem; align-items:center; padding:.58rem .7rem; border:1px solid #e2e6f1; border-radius:13px; background:#fff; cursor:pointer; }
.messenger-ai-context-toggle input { position:absolute; opacity:0; pointer-events:none; }
.context-switch { position:relative; width:38px; height:22px; flex:0 0 auto; border-radius:999px; background:#dce1ea; transition:.18s ease; }
.context-switch::after { content:""; position:absolute; top:3px; left:3px; width:16px; height:16px; border-radius:50%; background:#fff; box-shadow:0 2px 6px rgba(26,37,61,.25); transition:.18s ease; }
.messenger-ai-context-toggle input:checked + .context-switch { background:linear-gradient(135deg,var(--primary),#7657e8); }
.messenger-ai-context-toggle input:checked + .context-switch::after { transform:translateX(16px); }
.messenger-ai-context-toggle > span:last-child { min-width:0; }
.messenger-ai-context-toggle strong,.messenger-ai-context-toggle small { display:block; }
.messenger-ai-context-toggle strong { color:var(--text); font-size:.63rem; }
.messenger-ai-context-toggle small { margin-top:.12rem; color:var(--muted); font-size:.54rem; line-height:1.35; }
.messenger-ai-dialog .messenger-ai-thread { padding:1.05rem 1.15rem; }
.messenger-ai-dialog .messenger-ai-welcome { max-width:420px; }
.messenger-ai-suggestions { display:flex; gap:.45rem; justify-content:center; flex-wrap:wrap; margin-top:.85rem; }
.messenger-ai-suggestions button { border:1px solid #dfe3f0; border-radius:999px; padding:.42rem .62rem; background:#fff; color:#5d6780; font-size:.57rem; font-weight:750; cursor:pointer; }
.messenger-ai-suggestions button:hover { color:var(--primary); border-color:#cdd2ff; background:#f2f3ff; }
.messenger-ai-dialog .messenger-ai-message { max-width:min(92%,560px); font-size:.71rem; }
.messenger-ai-message.user > span,.messenger-ai-message.assistant > span { display:block; margin-bottom:.25rem; font-size:.52rem; font-weight:800; opacity:.78; }
.messenger-ai-dialog .messenger-ai-form { padding:.8rem 1rem 1rem; }
.messenger-ai-composer { overflow:hidden; border:1px solid #dfe3ec; border-radius:16px; background:#fff; box-shadow:0 8px 24px rgba(27,40,70,.06); transition:.18s ease; }
.messenger-ai-composer:focus-within { border-color:#aeb7ff; box-shadow:0 0 0 4px rgba(91,103,241,.11),0 10px 28px rgba(27,40,70,.08); }
.messenger-ai-form textarea { width:100%; min-height:82px; max-height:155px; margin:0; padding:.8rem .9rem .45rem; border:0 !important; outline:0 !important; resize:vertical; background:#fff !important; color:#182236 !important; -webkit-text-fill-color:#182236 !important; caret-color:var(--primary); font:inherit; line-height:1.5; box-shadow:none !important; opacity:1 !important; }
.messenger-ai-form textarea::placeholder { color:#8b94a7 !important; -webkit-text-fill-color:#8b94a7 !important; opacity:1; }
.messenger-ai-form textarea.has-error { background:#fff8f8 !important; }
.messenger-ai-composer-meta { display:flex; justify-content:space-between; gap:1rem; padding:.35rem .75rem .52rem; color:var(--muted); font-size:.52rem; }
.messenger-ai-composer-meta b { color:var(--text); }
.messenger-ai-dialog .messenger-ai-form-footer small { display:inline-flex; align-items:center; gap:.35rem; }
.messenger-ai-dialog .messenger-ai-form-footer .button.is-loading { opacity:.72; cursor:wait; }

.ai-memory-hero { background:linear-gradient(135deg,#fff,#f4f5ff 58%,#eafcff); }
.ai-memory-warning { display:flex; gap:.75rem; align-items:flex-start; padding:.9rem 1rem; border:1px solid #f0d9a9; border-radius:16px; background:#fffaf0; color:#7b5816; }
.ai-memory-warning > span { width:36px; height:36px; display:grid; place-items:center; flex:0 0 auto; border-radius:11px; background:#fff1ca; }
.ai-memory-warning strong,.ai-memory-warning p { display:block; margin:0; }
.ai-memory-warning strong { font-size:.72rem; }
.ai-memory-warning p { margin-top:.18rem; font-size:.62rem; line-height:1.5; }
.ai-memory-layout { display:grid; grid-template-columns:minmax(0,1.55fr) minmax(280px,.45fr); gap:1rem; align-items:start; }
.ai-memory-editor,.ai-glossary-create { padding-bottom:1rem; }
.ai-memory-form,.ai-glossary-create form { padding:0 1rem; }
.ai-memory-form textarea,.ai-glossary-create textarea { min-height:120px; }
.ai-memory-form .field small { display:block; margin-top:.28rem; color:var(--muted); font-size:.55rem; line-height:1.4; }
.ai-memory-summary { position:sticky; top:calc(var(--topbar-height) + 1rem); }
.ai-memory-metrics { display:grid; grid-template-columns:1fr 1fr; gap:.55rem; }
.ai-memory-metrics div { padding:.7rem; border:1px solid #e9ecf4; border-radius:13px; background:#fafbfe; }
.ai-memory-metrics span,.ai-memory-metrics strong,.ai-memory-metrics small { display:block; }
.ai-memory-metrics span,.ai-memory-metrics small { color:var(--muted); font-size:.54rem; }
.ai-memory-metrics strong { margin:.15rem 0; color:var(--text); font-size:.82rem; }
.ai-memory-note { margin-top:.8rem; padding:.8rem; border-radius:13px; background:linear-gradient(135deg,#f4f5ff,#eefbff); }
.ai-memory-note strong { font-size:.66rem; }
.ai-memory-note p { margin:.2rem 0 0; color:var(--muted); font-size:.58rem; line-height:1.5; }
.glossary-layout { grid-template-columns:minmax(0,1.3fr) minmax(300px,.7fr); }
.ai-glossary-list { display:grid; gap:.55rem; }
.ai-glossary-row { display:grid; grid-template-columns:42px minmax(0,1fr) auto; gap:.7rem; align-items:center; padding:.72rem; border:1px solid #e7eaf2; border-radius:14px; background:#fff; color:inherit; text-decoration:none; transition:.18s ease; }
.ai-glossary-row:hover { transform:translateY(-1px); border-color:#ccd2ff; box-shadow:0 10px 24px rgba(40,52,86,.08); }
.ai-glossary-row.inactive { opacity:.62; }
.ai-glossary-symbol { width:42px; height:42px; display:grid; place-items:center; border-radius:13px; background:#eef0ff; color:var(--primary); font-size:.64rem; font-weight:850; }
.ai-glossary-row strong,.ai-glossary-row small,.ai-glossary-row em { display:block; }
.ai-glossary-row strong { font-size:.7rem; }
.ai-glossary-row small { margin-top:.16rem; color:var(--muted); font-size:.58rem; line-height:1.4; }
.ai-glossary-row em { margin-top:.2rem; color:#69738a; font-size:.52rem; font-style:normal; }
.ai-memory-history { display:grid; gap:.2rem; }
.ai-memory-history > div:not(.empty-state) { display:grid; grid-template-columns:18px minmax(0,1fr); gap:.55rem; padding:.6rem .2rem; }
.ai-history-dot { width:9px; height:9px; margin-top:.22rem; border:2px solid #fff; border-radius:50%; background:var(--primary); box-shadow:0 0 0 2px #dfe2ff; }
.ai-memory-history strong,.ai-memory-history small { display:block; }
.ai-memory-history strong { font-size:.65rem; }
.ai-memory-history small { margin-top:.15rem; color:var(--muted); font-size:.55rem; }

@media(max-width:900px){
  .messenger-ai-toolbar,.ai-memory-layout,.glossary-layout { grid-template-columns:1fr; }
  .ai-memory-summary { position:static; }
}
@media(max-width:760px){
  .messenger-ai-overlay { position:fixed; z-index:1300; inset:0; padding:0; align-items:end; }
  .messenger-ai-dialog { width:100%; max-height:94dvh; border-radius:24px 24px 0 0; grid-template-rows:auto auto minmax(180px,1fr) auto; }
  .messenger-ai-toolbar { padding:.65rem .75rem; }
  .messenger-ai-dialog .messenger-ai-head { padding:.8rem; }
  .messenger-ai-context-toggle { padding:.52rem .6rem; }
  .messenger-ai-dialog .messenger-ai-thread { padding:.8rem; }
}
@media(max-width:560px){
  .ai-memory-metrics { grid-template-columns:1fr; }
  .ai-glossary-row { grid-template-columns:38px minmax(0,1fr); }
  .ai-glossary-row .status-chip { grid-column:2; justify-self:start; }
}

/* NovaCore v2.0.0 · Fase IA 4 */
.ai-control-hero,.ai-analytics-hero{background:linear-gradient(135deg,#f8fbff 0%,#eef4ff 58%,#f7f4ff 100%)}
.ai-control-security{display:flex;align-items:center;gap:14px;padding:16px 18px;border:1px solid #cfe0ff;border-radius:18px;background:#f7faff;color:#18345f}
.ai-control-security>span{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:#e5efff;color:#2867d8;font-weight:900}.ai-control-security strong{display:block}.ai-control-security p{margin:3px 0 0;color:#60708a;font-size:.9rem}
.ai-control-section{overflow:hidden}.ai-control-form{display:grid;gap:20px}.ai-switch-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.ai-switch-card{display:flex;align-items:flex-start;gap:11px;padding:14px;border:1px solid #dce4f2;border-radius:15px;background:#fbfcff;cursor:pointer}.ai-switch-card.compact{padding:11px 12px}.ai-switch-card input{margin-top:3px;accent-color:#315fe8}.ai-switch-card strong,.ai-switch-card small{display:block}.ai-switch-card small{margin-top:3px;color:#748198;line-height:1.35}.ai-control-fields{align-items:end}.form-hint{color:#6e7a90;font-size:.88rem}
.ai-provider-settings-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.ai-provider-settings-card{display:grid;gap:16px}.ai-provider-settings-card.limit-reached{border-color:#f1b4b4;background:linear-gradient(180deg,#fffafa,#fff)}.ai-provider-settings-head{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px}.ai-provider-settings-head h2,.ai-provider-settings-head p{margin:0}.ai-provider-settings-head p{margin-top:3px;color:#758199;font-size:.84rem}.ai-budget-mini{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.ai-budget-mini>div{padding:10px;border-radius:12px;background:#f5f7fb}.ai-budget-mini span,.ai-budget-mini strong{display:block}.ai-budget-mini span{font-size:.73rem;color:#748198}.ai-budget-mini strong{margin-top:4px;font-size:.88rem;overflow-wrap:anywhere}.ai-provider-policy-form{display:grid;gap:14px}
.ai-route-settings-list{display:grid;gap:10px}.ai-route-settings-row{display:grid;grid-template-columns:minmax(150px,1.1fr) minmax(210px,2fr) minmax(100px,.7fr) minmax(100px,.7fr) auto auto;align-items:end;gap:10px;padding:13px;border:1px solid #e1e7f0;border-radius:14px;background:#fbfcfe}.ai-route-title{align-self:center}.ai-route-title strong,.ai-route-title small{display:block}.ai-route-title small{margin-top:3px;color:#8490a4}.ai-route-toggle{display:flex;align-items:center;gap:6px;align-self:center;color:#556176;font-size:.84rem}.ai-route-toggle input{accent-color:#315fe8}
.ai-control-bottom-grid{display:grid;grid-template-columns:2fr 1fr;gap:16px}.ai-config-history{display:grid;gap:9px}.ai-config-history article{display:flex;align-items:center;gap:11px;padding:11px 12px;border-radius:13px;background:#f7f9fc}.ai-config-history article>span{display:grid;place-items:center;width:32px;height:32px;border-radius:10px;background:#e8efff;color:#315fe8}.ai-config-history strong,.ai-config-history small{display:block}.ai-config-history small{margin-top:3px;color:#7b879b}.ai-reset-card{align-self:start}.ai-reset-card h2{margin:7px 0}.ai-reset-card p{color:#6f7c91;line-height:1.5}
.ai-period-tabs{display:flex;gap:8px;overflow:auto}.ai-period-tabs a{white-space:nowrap;padding:9px 14px;border:1px solid #dce4ef;border-radius:999px;background:#fff;color:#5d6980;text-decoration:none;font-weight:700;font-size:.85rem}.ai-period-tabs a.active{background:#203f9e;border-color:#203f9e;color:#fff}.ai-dashboard-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}.ai-dashboard-kpis article{padding:15px;border:1px solid #dfe6f0;border-radius:16px;background:#fff;box-shadow:0 8px 24px rgba(27,48,91,.05)}.ai-dashboard-kpis span,.ai-dashboard-kpis strong,.ai-dashboard-kpis small{display:block}.ai-dashboard-kpis span{font-size:.75rem;color:#728096;text-transform:uppercase;letter-spacing:.05em}.ai-dashboard-kpis strong{margin-top:7px;font-size:1.35rem;color:#19233a}.ai-dashboard-kpis small{margin-top:4px;color:#8490a4}
.ai-alert-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px}.ai-alert-strip article{display:flex;align-items:center;gap:11px;padding:12px 14px;border-radius:14px;border:1px solid}.ai-alert-strip article>span{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;font-weight:900}.ai-alert-strip strong,.ai-alert-strip small{display:block}.ai-alert-strip small{margin-top:2px}.ai-alert-strip .success{background:#f1fbf7;border-color:#bfe8d6;color:#176b50}.ai-alert-strip .warning{background:#fff9eb;border-color:#f0d894;color:#765711}.ai-alert-strip .danger{background:#fff2f2;border-color:#efbcbc;color:#8b2f2f}.ai-dashboard-main-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(280px,1fr);gap:16px}.ai-dashboard-main-grid.reverse{grid-template-columns:minmax(0,1.5fr) minmax(300px,1fr)}
.ai-bar-chart{display:flex;align-items:flex-end;gap:5px;height:240px;padding:20px 4px 0;border-bottom:1px solid #dce3ee;overflow-x:auto}.ai-bar-column{display:grid;grid-template-rows:18px 1fr 28px;align-items:end;justify-items:center;min-width:22px;height:100%;flex:1}.ai-bar-column i{display:block;width:min(18px,76%);min-height:2px;border-radius:7px 7px 2px 2px;background:linear-gradient(180deg,#4e7af1,#274ab3);transition:.2s}.ai-bar-column small{font-size:.64rem;color:#8792a5;transform:rotate(-45deg);transform-origin:center;white-space:nowrap}.ai-bar-value{font-size:.68rem;color:#5d6980}.ai-budget-progress-list{display:grid;gap:18px;margin:8px 0 20px}.ai-budget-progress-list span{display:flex;justify-content:space-between;gap:10px;margin-bottom:7px}.ai-budget-progress-list small{color:#758198}.ai-budget-progress-list progress,.ai-provider-ranking progress{width:100%;height:8px;accent-color:#315fe8;border:0}
.ai-provider-ranking{display:grid;gap:10px}.ai-provider-ranking article{display:grid;grid-template-columns:auto auto 1fr auto;align-items:center;gap:11px;padding:12px;border:1px solid #e2e8f1;border-radius:14px}.ai-rank-number{display:grid;place-items:center;width:28px;height:28px;border-radius:9px;background:#f0f3f8;color:#57647b;font-weight:800}.ai-rank-copy strong,.ai-rank-copy small{display:block}.ai-rank-copy small{margin:3px 0 7px;color:#78859a}.ai-provider-ranking article>b{font-size:1.1rem;color:#294cae}.ai-task-distribution{display:grid;gap:14px}.ai-task-distribution article{display:grid;grid-template-columns:1fr 1fr auto;align-items:center;gap:10px}.ai-task-distribution strong,.ai-task-distribution small{display:block}.ai-task-distribution small{margin-top:3px;color:#7d899c}.ai-task-distribution article>div{height:9px;border-radius:999px;background:#edf1f7;overflow:hidden}.ai-task-distribution i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#4c75ea,#7558d8)}.ai-task-distribution b{font-size:.82rem;color:#59667c}
@media(max-width:1180px){.ai-provider-settings-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ai-dashboard-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.ai-route-settings-row{grid-template-columns:1fr 1.6fr 1fr 1fr}.ai-route-toggle,.ai-route-settings-row .button{align-self:end}}
@media(max-width:780px){.ai-switch-grid,.ai-provider-settings-grid,.ai-control-bottom-grid,.ai-dashboard-main-grid,.ai-dashboard-main-grid.reverse{grid-template-columns:1fr}.ai-dashboard-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.ai-route-settings-row{grid-template-columns:1fr 1fr}.ai-route-title,.ai-route-settings-row .field:first-of-type{grid-column:1/-1}.ai-provider-settings-head{grid-template-columns:auto 1fr}.ai-provider-settings-head .status-chip{grid-column:1/-1;justify-self:start}.ai-budget-mini{grid-template-columns:1fr}.ai-bar-chart{height:210px}.ai-bar-column{min-width:26px}.ai-task-distribution article{grid-template-columns:1fr auto}.ai-task-distribution article>div{grid-column:1/-1;grid-row:2}.ai-control-form .form-actions{align-items:stretch}.form-hint{order:2}}

/* NovaCore v2.1.0 · Fase IA 5 e integración histórica retirada */
.integration-report-page{display:grid;gap:16px}.report-hero,.report-detail-hero{background:linear-gradient(135deg,#f8fbff,#eef3ff 58%,#f7f2ff)}
.report-builder-grid{grid-template-columns:minmax(0,1.25fr) minmax(310px,.75fr)}.report-builder-panel,.report-flow-panel,.report-history-panel{overflow:hidden}.report-builder-form{display:grid;gap:16px;padding:0 18px 18px}.report-ai-toggle{display:flex;align-items:flex-start;gap:12px;padding:14px;border:1px solid #dfe6f2;border-radius:15px;background:#fafcff;cursor:pointer}.report-ai-toggle input{margin-top:3px;accent-color:#315fe8}.report-ai-toggle strong,.report-ai-toggle small{display:block}.report-ai-toggle small{margin-top:4px;color:#748198;line-height:1.4}.report-flow-panel{padding:20px}.report-flow-panel h2{margin:7px 0 14px}.report-flow-list{display:grid;gap:11px;margin:0;padding:0;list-style:none}.report-flow-list li{display:grid;grid-template-columns:31px 1fr;gap:10px;align-items:center;color:#5f6c82}.report-flow-list b{display:grid;place-items:center;width:31px;height:31px;border-radius:10px;background:#eaf0ff;color:#315fe8}.report-portal-state{display:grid;gap:3px;margin-top:17px;padding:13px;border-radius:14px;border:1px solid}.report-portal-state.ready{background:#f1fbf7;border-color:#bfe8d6;color:#176b50}.report-portal-state.warning{background:#fff9eb;border-color:#f0d894;color:#765711}.report-portal-state span{font-size:.84rem;line-height:1.4}.report-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;padding:0 18px 18px}.report-card{display:grid;gap:10px;padding:16px;border:1px solid #e0e6f0;border-radius:17px;background:#fff;color:inherit;text-decoration:none;box-shadow:0 8px 24px rgba(30,49,91,.045);transition:.18s ease}.report-card:hover{transform:translateY(-2px);border-color:#cbd5f7;box-shadow:0 13px 30px rgba(30,49,91,.09)}.report-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.report-card-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:#edf1ff;color:#315fe8;font-weight:900}.report-card h3,.report-card p{margin:0}.report-card h3{font-size:1rem}.report-card p{color:#6f7c91;line-height:1.45}.report-card dl{display:grid;gap:7px;margin:0}.report-card dl div{display:flex;justify-content:space-between;gap:12px}.report-card dt{color:#8390a4}.report-card dd{margin:0;text-align:right;font-weight:700}.report-card-open{color:#315fe8;font-weight:800}.report-empty{grid-column:1/-1}
.report-progress-banner{display:flex;align-items:center;gap:13px;padding:15px 17px;border:1px solid #d7e2ff;border-radius:16px;background:#f5f8ff}.report-progress-banner strong,.report-progress-banner p{display:block;margin:0}.report-progress-banner p{margin-top:3px;color:#6f7c91}.report-spinner{width:32px;height:32px;flex:0 0 auto;border:3px solid #dfe6ff;border-top-color:#315fe8;border-radius:50%;animation:ai-job-spin .9s linear infinite}.report-metric-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.report-content-grid{grid-template-columns:minmax(0,1.45fr) minmax(300px,.55fr)}.report-summary-text{padding:0 18px 20px;color:#344056;white-space:pre-wrap;line-height:1.7}.report-sync-panel{padding:18px}.report-sync-panel h2{margin:0 0 12px}.report-delivery-note{margin:-4px 0 14px;padding:10px 12px;border-radius:12px;background:#fff8e8;color:#765711;line-height:1.4}.report-job-box{display:grid;gap:5px;margin-top:14px;padding:13px;border-radius:13px;background:#f4f7fc}.report-job-box span,.report-job-box small{color:#718096}.report-breakdown-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;padding:0 18px 18px}.report-breakdown-card{padding:14px;border:1px solid #e2e8f1;border-radius:15px;background:#fbfcfe}.report-breakdown-card h3{margin:0 0 10px;font-size:.92rem}.report-breakdown-list{display:grid;gap:7px}.report-breakdown-list>div{display:flex;justify-content:space-between;gap:12px;padding-bottom:7px;border-bottom:1px solid #edf0f5}.report-breakdown-list>div:last-child{border-bottom:0}.report-breakdown-list span{color:#68758a}.report-footer-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:0 18px 18px}.report-footer-metrics>div{display:flex;justify-content:space-between;gap:12px;padding:13px;border-radius:13px;background:#f4f7fc}.report-footer-metrics span{color:#6d7a90}.report-footer-metrics strong{color:#1f2d46}
.integration-outbox-stats{grid-template-columns:repeat(4,minmax(0,1fr))}.integration-queue-panel{overflow:hidden}.integration-queue-summary{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;padding:0 18px 18px}.integration-queue-summary>div{padding:12px;border:1px solid #e2e8f1;border-radius:13px;background:#f8fafe}.integration-queue-summary span,.integration-queue-summary strong{display:block}.integration-queue-summary span{color:#758198;font-size:.78rem}.integration-queue-summary strong{margin-top:5px;font-size:1.2rem}.integration-job-actions{display:flex;gap:6px;flex-wrap:wrap}.integration-job-actions form{margin:0}.button-small{min-height:31px;padding:6px 10px;font-size:.78rem}.status-pill.retry_wait,.status-pill.queued{background:#fff3d6;color:#7d5a0b}.status-pill.processing,.status-pill.sending,.status-pill.generating{background:#eaf0ff;color:#3154ad}.status-pill.completed,.status-pill.sent,.status-pill.ready,.status-pill.success{background:#e9f8f1;color:#176b50}.status-pill.failed,.status-pill.error{background:#ffebed;color:#a4323e}.status-pill.cancelled{background:#eef0f4;color:#667085}.sync-queued{color:#8a650e!important}
@media(max-width:1100px){.report-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.report-breakdown-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.integration-queue-summary{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:780px){.report-builder-grid,.report-content-grid{grid-template-columns:1fr}.report-card-grid,.report-metric-grid,.integration-outbox-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.report-footer-metrics{grid-template-columns:1fr}.report-detail-hero .page-actions{width:100%}.report-detail-hero .page-actions>*{width:100%}.report-detail-hero .page-actions .button{width:100%}.integration-queue-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.report-card-grid,.report-metric-grid,.report-breakdown-grid,.integration-outbox-stats,.integration-queue-summary{grid-template-columns:1fr}.report-card-grid,.report-breakdown-grid,.report-footer-metrics{padding-left:12px;padding-right:12px}}
.notification-popover-icon.kind-integration_job{background:#e8f4ff;color:#2167ad}.system-notification-card.kind-integration_job .system-notification-icon{background:#e8f4ff;color:#2167ad}

/* NovaCore v2.2.0 · Activos TI Fase 1 y Soporte NovaCore */
.assets-symbol{background:linear-gradient(135deg,#4657df,#14a9c7)}
.assets-stats{grid-template-columns:repeat(4,minmax(0,1fr))}
.assets-filter-bar{display:grid;grid-template-columns:minmax(240px,1.3fr) repeat(2,minmax(170px,.65fr)) auto;gap:.75rem;align-items:end;padding:1rem 1.1rem;border-bottom:1px solid var(--border);background:#fbfcff}
.assets-filter-actions{display:flex;gap:.5rem;align-items:center;padding-bottom:.02rem}
.assets-table-link{color:var(--text);font-weight:850;text-decoration:none}.assets-table-link:hover{color:var(--primary)}
.asset-status,.request-type-pill{display:inline-flex;align-items:center;width:max-content;border-radius:999px;padding:.3rem .58rem;font-size:.68rem;font-weight:850;white-space:nowrap}
.asset-status-info{background:#eef0ff;color:#4f5bca}.asset-status-success{background:#e8f7ef;color:#087647}.asset-status-warning{background:#fff6df;color:#956500}.asset-status-danger{background:#feecef;color:#b52f3d}.asset-status-muted{background:#eef1f5;color:#667085}
.request-type-incident{background:#fff1e8;color:#a64f0b}.request-type-request{background:#eaf2ff;color:#175fc2}
.desk-filter-multi{flex-wrap:wrap}.desk-filter-multi select{min-width:150px}
.assets-form>.panel-card-header{margin:-1.25rem -1.25rem 1.25rem}.assets-form-section{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin:1.35rem 0 1rem;padding-top:1.25rem;border-top:1px solid var(--border)}.assets-form-section h2{margin:.15rem 0 0}
.assets-detail-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(280px,.55fr);gap:1rem;align-items:start}
.asset-data-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin:0;padding:1.1rem 1.2rem}.asset-data-grid>div{padding:.78rem .2rem;border-bottom:1px solid #eef1f6}.asset-data-grid>div:nth-last-child(-n+2){border-bottom:0}.asset-data-grid dt{color:#667085;font-size:.68rem;font-weight:850;text-transform:uppercase;letter-spacing:.04em}.asset-data-grid dd{margin:.28rem 0 0;color:var(--text);font-size:.83rem;font-weight:720;overflow-wrap:anywhere}
.asset-notes{margin:0 1.2rem 1.2rem;padding:1rem;border-radius:13px;background:#f7f8fc}.asset-notes p{margin:.35rem 0 0;white-space:pre-wrap;overflow-wrap:anywhere}
.asset-history{padding:.35rem 1.2rem 1rem}.asset-history article{display:grid;grid-template-columns:16px minmax(0,1fr);gap:.65rem;padding:.9rem 0;border-bottom:1px solid #eef1f6}.asset-history article:last-child{border-bottom:0}.asset-history-dot{width:10px;height:10px;margin-top:.3rem;border-radius:50%;background:var(--primary);box-shadow:0 0 0 4px rgba(91,103,241,.12)}.asset-history header{display:flex;justify-content:space-between;gap:1rem}.asset-history time,.asset-history small{color:var(--muted);font-size:.68rem}.asset-history p{margin:.25rem 0}.asset-history small{display:block;margin-top:.18rem}
.assets-side-card>.panel-card-header{border-bottom:1px solid var(--border)}.asset-side-list{padding:.35rem 1.1rem 1rem}.asset-side-list>div{display:flex;justify-content:space-between;gap:1rem;padding:.72rem 0;border-bottom:1px solid #eef1f6}.asset-side-list>div:last-child{border-bottom:0}.asset-side-list span{color:var(--muted);font-size:.76rem}.asset-side-list strong{color:var(--text)}
.assets-phase-note{padding:1.15rem;background:linear-gradient(135deg,#f8f8ff,#eefbff)}.assets-phase-note>span{display:inline-flex;padding:.28rem .55rem;border-radius:999px;background:#eef0ff;color:var(--primary);font-size:.7rem;font-weight:850}.assets-phase-note h2{margin:.75rem 0 .35rem}.assets-phase-note p{margin:0;font-size:.8rem}
@media(max-width:980px){.assets-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.assets-filter-bar{grid-template-columns:repeat(2,minmax(0,1fr))}.assets-search-field{grid-column:1/-1}.assets-detail-grid{grid-template-columns:1fr}.assets-side{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.assets-stats,.assets-filter-bar,.asset-data-grid,.assets-side{grid-template-columns:1fr}.assets-search-field{grid-column:auto}.assets-filter-actions{width:100%}.assets-filter-actions .button{flex:1}.asset-data-grid>div,.asset-data-grid>div:nth-last-child(-n+2){border-bottom:1px solid #eef1f6}.asset-data-grid>div:last-child{border-bottom:0}.asset-history header{display:grid;gap:.2rem}.desk-filter-multi label{display:none}.desk-filter-multi select{min-width:0;flex:1}}

/* NovaCore v2.6.0 · Activos TI Fase 5 */
.assets-subnav{display:flex;gap:5px;align-items:center;overflow-x:auto;padding:8px;margin:0 0 18px;background:#fff;border:1px solid var(--border);border-radius:15px;box-shadow:0 8px 24px rgba(24,39,75,.04);scrollbar-width:thin}.assets-subnav a{flex:0 0 auto;padding:9px 12px;border-radius:10px;color:#647087;font-size:.82rem;font-weight:700;text-decoration:none;white-space:nowrap}.assets-subnav a:hover{background:#f2f5fb;color:#27344c}.assets-subnav a.active{background:#202a44;color:#fff}.assets-subnav .superadmin-link{margin-left:auto;border:1px solid #e3d9ff;color:#6447b7}.assets-subnav .superadmin-link.active{border-color:#202a44;color:#fff}.assets-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px}.asset-kpi{display:flex;gap:13px;align-items:flex-start;min-height:130px;padding:17px;border:1px solid #e4e9f2;border-radius:17px;background:#fff;color:inherit;text-decoration:none;box-shadow:0 8px 22px rgba(24,39,75,.04);transition:transform .16s ease,border-color .16s ease}.asset-kpi:hover{transform:translateY(-2px);border-color:#c7d0e2}.asset-kpi-icon{display:grid;place-items:center;flex:0 0 40px;width:40px;height:40px;border-radius:12px;background:#edf1ff;color:#4354d9;font-size:1.05rem;font-weight:800}.asset-kpi div{min-width:0}.asset-kpi small,.asset-kpi strong,.asset-kpi p{display:block}.asset-kpi small{color:#758198;font-size:.76rem;font-weight:700}.asset-kpi strong{margin-top:4px;color:#18223a;font-size:1.65rem;line-height:1}.asset-kpi p{margin:8px 0 0;color:#7a8598;font-size:.77rem;line-height:1.35}.assets-dashboard-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.asset-compact-list{display:grid;padding:0 18px 16px}.asset-compact-list>a{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:11px;align-items:center;padding:11px 0;border-bottom:1px solid #edf0f5;color:inherit;text-decoration:none}.asset-compact-list>a:last-child{border-bottom:0}.asset-compact-list>a:hover strong{color:#4354d9}.asset-list-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:#f0f3fa;color:#48566f}.asset-compact-list strong,.asset-compact-list small{display:block}.asset-compact-list strong{color:#26334a;font-size:.88rem}.asset-compact-list small{margin-top:3px;color:#778399;font-size:.75rem}.asset-compact-list time{color:#8791a3;font-size:.72rem;white-space:nowrap}.phase-boundary-card{display:flex;justify-content:space-between;gap:25px;align-items:center;padding:20px}.phase-boundary-card h2{margin:5px 0 7px}.phase-boundary-card p{max-width:760px;margin:0;color:#68758a}.phase-chip-list{display:flex;max-width:430px;gap:7px;flex-wrap:wrap;justify-content:flex-end}.phase-chip-list span,.phase-badge{display:inline-flex;align-items:center;padding:7px 10px;border-radius:999px;background:#f0f3f9;color:#5e6d84;font-size:.72rem;font-weight:700}.phase-badge.secure{background:#efeaff;color:#6247b2}.module-notice{display:flex;gap:8px;align-items:center;padding:13px 15px;border:1px solid #dfe5f1;border-radius:13px;background:#f8faff;color:#68758a;font-size:.82rem}.module-notice strong{color:#2a3750}.compact-filter{display:flex;gap:10px;align-items:end;padding:14px;border:1px solid var(--border);border-radius:14px;background:#fff}.compact-filter label{display:grid;gap:5px;color:#66748a;font-size:.78rem;font-weight:700}.compact-filter select{min-width:190px}.row-warning{background:#fffaf0}.assets-report-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-control-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.locked-control{position:relative;padding:19px}.locked-control h2{margin:13px 0 7px;font-size:1rem}.locked-control p{min-height:57px;margin:0;color:#68758a;font-size:.82rem;line-height:1.45}.control-phase{display:inline-flex;padding:5px 8px;border-radius:999px;background:#f0ebff;color:#6248ac;font-size:.68rem;font-weight:800}.locked-control-state{margin-top:15px;padding-top:12px;border-top:1px solid #edf0f5;color:#8b95a7;font-size:.74rem;font-weight:700}.permission-matrix{overflow:hidden}.permission-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0}.permission-columns>div{padding:18px}.permission-columns>div+div{border-left:1px solid #e9edf4}.permission-columns h3{margin:0 0 7px;color:#24324a}.permission-columns p{margin:0;color:#6d788d;line-height:1.5}.audit-detail{color:#6b778d;font-size:.77rem}.superadmin-hero{border-color:#ddd2ff}
@media(max-width:1180px){.assets-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-control-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:820px){.assets-subnav{margin-left:-2px;margin-right:-2px}.assets-subnav .superadmin-link{margin-left:0}.assets-dashboard-grid,.assets-report-grid,.permission-columns{grid-template-columns:1fr}.permission-columns>div+div{border-left:0;border-top:1px solid #e9edf4}.phase-boundary-card{align-items:flex-start;flex-direction:column}.phase-chip-list{justify-content:flex-start;max-width:none}.admin-control-grid{grid-template-columns:1fr}.module-notice{align-items:flex-start;flex-direction:column}}
@media(max-width:540px){.assets-kpi-grid{grid-template-columns:1fr}.asset-kpi{min-height:auto}.compact-filter{align-items:stretch;flex-direction:column}.compact-filter select{width:100%;min-width:0}.asset-compact-list>a{grid-template-columns:auto minmax(0,1fr)}.asset-compact-list time{grid-column:2}.phase-badge{align-self:flex-start}}
.asset-kpi-future{border-style:dashed;background:#fafbfe}.asset-qr-card{display:grid;grid-template-columns:220px minmax(0,1fr);gap:28px;align-items:center;padding:30px;border:1px solid #dce3ef;border-radius:20px;background:#fff;box-shadow:0 15px 35px rgba(23,38,72,.08)}.asset-qr-card img{width:220px;height:220px;object-fit:contain}.asset-qr-card span{color:#5161d8;font-size:.76rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.asset-qr-card h1{margin:7px 0 4px;color:#18233a;font-size:2rem}.asset-qr-card h2{margin:0 0 8px;color:#2d3a52}.asset-qr-card p,.asset-qr-card small{color:#68758a}.qr-download{display:flex;justify-content:center}
@media(max-width:650px){.asset-qr-card{grid-template-columns:1fr;text-align:center}.asset-qr-card img{margin:auto;max-width:100%}}
@media print{body{background:#fff!important}.sidebar,.topbar,.mobile-nav,.assets-subnav,.no-print{display:none!important}.main-content{margin:0!important;padding:0!important}.asset-qr-card{max-width:170mm;margin:15mm auto;border:1px solid #000;box-shadow:none;break-inside:avoid}}

/* NovaCore v2.6.0 · Activos TI Fase 5 */
.agent-security-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:14px}.agent-token-form,.agent-api-contract{overflow:hidden}.agent-token-form form{padding:0 18px 18px}.agent-token-form .button{justify-self:start}.agent-secret-card{display:grid;gap:12px;padding:20px;border:1px solid #cfc3ff;border-radius:18px;background:linear-gradient(135deg,#f7f4ff,#eefbff);box-shadow:0 10px 28px rgba(59,51,128,.08)}.agent-secret-card h2{margin:5px 0 5px}.agent-secret-card p{margin:0;color:#66748a}.agent-secret-card code{display:block;overflow-wrap:anywhere;padding:14px 15px;border:1px dashed #9d8adf;border-radius:12px;background:#fff;color:#382a75;font-size:.9rem;font-weight:800;user-select:all}.agent-secret-card small{color:#6d7890}.agent-endpoint-list{display:grid;margin:0;padding:0 18px 18px}.agent-endpoint-list>div{display:grid;grid-template-columns:54px minmax(0,1fr);gap:10px;padding:11px 0;border-bottom:1px solid #edf0f5}.agent-endpoint-list>div:last-child{border-bottom:0}.agent-endpoint-list dt{display:inline-flex;justify-content:center;align-items:flex-start;color:#4859d6;font-size:.7rem;font-weight:900}.agent-endpoint-list dd{display:grid;gap:4px;margin:0}.agent-endpoint-list code{color:#26344b;font-weight:800}.agent-endpoint-list span{color:#788398;font-size:.75rem}.module-notice.success{border-color:#c9eadb;background:#f4fcf8}.module-notice.success strong{color:#196b4d}.phase-active{border-color:#c8d9ff;background:linear-gradient(180deg,#fff,#f8faff)}.phase-active .locked-control-state{color:#287a5a}.agent-inline-error{display:block;max-width:240px;margin-top:4px;color:#a44b4b;font-size:.68rem}.text-button.danger{color:#b34242}.status-pill.revoked{background:#ffe8e8;color:#a53636}.status-pill.completed{background:#edf1f7;color:#5d687b}.status-pill.warning{background:#fff1d6;color:#9a6208}
@media(max-width:900px){.agent-security-grid{grid-template-columns:1fr}}

.agent-row-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.agent-row-actions form{margin:0}.text-button:disabled{cursor:not-allowed;opacity:.5}.agent-build-note{border-color:#d7e2ff;background:#f7f9ff}

/* NovaCore v2.6.0 · Activos TI Fase 5 */
.intake-hero{background:linear-gradient(135deg,#f8fbff 0%,#edf4ff 52%,#f7f3ff 100%)}
.intake-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.intake-kpis article{padding:16px 18px;border:1px solid #dfe7f2;border-radius:17px;background:#fff;box-shadow:0 10px 28px rgba(29,52,96,.05)}.intake-kpis span,.intake-kpis strong,.intake-kpis small{display:block}.intake-kpis span{font-size:.76rem;text-transform:uppercase;letter-spacing:.05em;color:#718099}.intake-kpis strong{margin-top:7px;font-size:1.55rem;color:#17223b}.intake-kpis small{margin-top:3px;color:#8490a3}
.intake-card-list{display:grid;gap:12px;padding:0 18px 18px}.intake-device-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(215px,.42fr) auto;gap:18px;align-items:center;padding:16px;border:1px solid #dfe7f2;border-radius:18px;background:#fff}.intake-device-card.has-duplicate{border-color:#efcf8b;background:linear-gradient(90deg,#fffdf8,#fff)}.intake-device-main{display:flex;align-items:flex-start;gap:14px;min-width:0}.intake-device-icon{display:grid;place-items:center;flex:0 0 46px;width:46px;height:46px;border-radius:14px;background:#e9f0ff;color:#315fe8;font-size:1.25rem;font-weight:900}.intake-device-copy{min-width:0}.intake-device-title{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.intake-device-title>a{font-weight:850;color:#18233b;text-decoration:none;font-size:1rem}.intake-device-copy>p{margin:4px 0 10px;color:#6f7c90;font-size:.87rem}.intake-device-meta{display:grid;grid-template-columns:repeat(3,minmax(120px,1fr));gap:7px 14px}.intake-device-meta span{display:block;color:#66748a;font-size:.78rem;min-width:0;overflow-wrap:anywhere}.intake-device-meta b{display:block;color:#8a95a7;font-size:.66rem;text-transform:uppercase;letter-spacing:.04em;margin-bottom:2px}.intake-suggestion-mini{display:flex;align-items:center;gap:11px;padding:12px;border-radius:15px;background:#f6f8fc}.intake-suggestion-mini small,.intake-suggestion-mini strong,.intake-suggestion-mini span{display:block}.intake-suggestion-mini small{color:#7a879b;font-size:.7rem}.intake-suggestion-mini strong{margin-top:2px;color:#1e2a41}.intake-suggestion-mini div>span{margin-top:2px;color:#78859a;font-size:.76rem}.intake-score{display:grid!important;place-items:center;flex:0 0 45px;width:45px;height:45px;border-radius:50%;background:#e8edf5;color:#637088;font-weight:900;font-size:.8rem}.intake-score.medium{background:#fff0cf;color:#976400}.intake-score.high{background:#dff6e8;color:#187448}.intake-score.large{width:64px;height:64px;flex-basis:64px;font-size:1rem}.intake-device-actions{display:grid;gap:7px}.intake-device-actions .button{white-space:nowrap}
.intake-review-layout{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(300px,.72fr);gap:18px}.intake-decision-column{align-self:start;position:sticky;top:82px}.intake-tech-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.intake-disk-list{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px;padding-top:14px;border-top:1px solid #e8edf4}.intake-disk-list strong{width:100%;color:#28334a}.intake-disk-list span{padding:7px 10px;border-radius:999px;background:#f1f4f9;color:#5d6a80;font-size:.78rem}.intake-match-card{display:flex;align-items:center;gap:16px;padding:16px;border:1px solid #dce5f3;border-radius:17px;background:linear-gradient(135deg,#fbfcff,#f4f8ff)}.intake-match-card small,.intake-match-card h3,.intake-match-card p{display:block;margin:0}.intake-match-card small{color:#75829a;font-size:.74rem}.intake-match-card h3{margin-top:3px;color:#17223a}.intake-match-card p{margin-top:3px;color:#69768b;font-size:.84rem}.intake-reasons{display:grid;gap:7px;margin:13px 0;padding-left:20px;color:#56647a;font-size:.86rem}.intake-duplicate-list{display:grid;gap:8px}.intake-duplicate-list article{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;align-items:center;padding:12px 13px;border-radius:14px;background:#f8f9fc}.intake-duplicate-list strong,.intake-duplicate-list span{display:block}.intake-duplicate-list span{margin-top:3px;color:#768399;font-size:.78rem}.intake-duplicate-list b{color:#946300}.intake-decision-card{border-color:#ccdafa;box-shadow:0 14px 34px rgba(33,65,135,.08)}.intake-assignment-form{margin-bottom:10px}.intake-risk-card{border-color:#ead7a7}.intake-danger-card{border-color:#efcaca}.intake-danger-card details{border-top:1px solid #eceff4;padding:10px 0}.intake-danger-card details:first-of-type{border-top:0}.intake-danger-card summary{cursor:pointer;font-weight:800;color:#5d687d}.intake-danger-card details form{margin-top:10px}.button-danger{background:#b4232f!important;border-color:#b4232f!important;color:#fff!important}.status-pill.warning{background:#fff0cf;color:#976400}.status-pill.danger{background:#fde5e8;color:#a52634}.module-notice.neutral{background:#f6f8fc;border-color:#dce4ef;color:#45536a}
@media(max-width:1120px){.intake-device-card{grid-template-columns:minmax(0,1fr) minmax(200px,.45fr)}.intake-device-actions{grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr))}.intake-review-layout{grid-template-columns:1fr}.intake-decision-column{position:static}.intake-tech-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:820px){.intake-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.intake-device-card{grid-template-columns:1fr}.intake-device-meta{grid-template-columns:repeat(2,minmax(0,1fr))}.intake-device-actions{grid-column:auto}.intake-suggestion-mini{justify-content:flex-start}}
@media(max-width:560px){.intake-kpis{grid-template-columns:1fr 1fr;gap:9px}.intake-kpis article{padding:13px}.intake-device-main{align-items:flex-start}.intake-device-icon{width:40px;height:40px;flex-basis:40px}.intake-device-meta{grid-template-columns:1fr}.intake-device-actions{grid-template-columns:1fr}.intake-tech-grid{grid-template-columns:1fr}.intake-duplicate-list article{grid-template-columns:1fr auto}.intake-duplicate-list article .text-button{grid-column:1/-1}.intake-review-hero .page-actions{width:100%}}

/* NovaCore v3.0.0 · Login estable en producción */
.assignment-form-card{max-width:980px;margin:0 auto;width:100%}.form-grid.two-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.form-grid .field-wide{grid-column:1/-1}.field small{display:block;margin-top:5px;color:#7b879a;font-size:.75rem}.assignment-filter{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr)) auto auto;gap:12px;align-items:end;padding:16px}.assignment-filter label,.stack-form label{display:grid;gap:6px}.assignment-filter label>span,.stack-form label>span{font-size:.78rem;font-weight:800;color:#5d687c}.assignment-filter select,.stack-form select,.stack-form input,.stack-form textarea{width:100%}.assignment-overdue{display:block;margin-top:5px;color:#a52634;font-size:.72rem;font-weight:800}.assignment-detail-layout{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(310px,.75fr);gap:18px;align-items:start}.assignment-actions-column{position:sticky;top:82px}.assignment-action-card{padding:0}.assignment-action-card details{padding:16px}.assignment-action-card summary{cursor:pointer;color:#23314a;font-weight:900;list-style:none}.assignment-action-card summary::-webkit-details-marker{display:none}.assignment-action-card summary:after{content:'+';float:right;color:#66758e}.assignment-action-card details[open] summary:after{content:'–'}.stack-form{display:grid;gap:12px;margin-top:14px;padding-top:14px;border-top:1px solid #e8edf4}.assignment-condition-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:14px}.assignment-condition-grid article{padding:14px;border:1px solid #e2e8f1;border-radius:14px;background:#fafbfe}.assignment-condition-grid strong{display:block;color:#293650}.assignment-condition-grid p,.assignment-condition-grid ul{margin:7px 0 0;color:#657287;font-size:.86rem}.assignment-condition-grid ul{padding-left:18px}.assignment-acta-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.assignment-acta-grid article{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px;border:1px solid #e4eaf3;border-radius:14px;background:#fafbfe}.assignment-acta-grid strong,.assignment-acta-grid span{display:block}.assignment-acta-grid span{margin-top:3px;color:#768399;font-size:.75rem}.person-assets-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.person-assets-summary article{padding:16px}.person-assets-summary small,.person-assets-summary strong{display:block}.person-assets-summary small{color:#78859a}.person-assets-summary strong{margin-top:5px;color:#1d2940}.person-linked-item{display:flex;justify-content:space-between;gap:10px;padding:11px 0;border-bottom:1px solid #edf0f5}.person-linked-item:last-child{border-bottom:0}.person-linked-item span{color:#748198;font-size:.8rem}.assets-two-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.acta-toolbar{display:flex;justify-content:space-between;max-width:900px;margin:0 auto 16px}.assignment-acta-document{max-width:900px;margin:0 auto;padding:48px 54px;background:#fff;color:#172033;border:1px solid #dfe5ee;border-radius:6px;box-shadow:0 16px 48px rgba(30,46,76,.08)}.assignment-acta-document>header{display:flex;justify-content:space-between;gap:30px;padding-bottom:22px;border-bottom:3px solid #273b70}.assignment-acta-document header div>*{display:block}.acta-brand{color:#405fc4;font-size:1.25rem;font-weight:1000;letter-spacing:.12em}.assignment-acta-document header small{margin-top:4px;color:#738097}.acta-folio{text-align:right}.acta-folio span{font-size:.76rem;font-weight:800;text-transform:uppercase;color:#5e6b80}.acta-folio strong{margin-top:4px;color:#17223a}.acta-intro{padding:28px 0 12px}.acta-intro h1{margin:0;font-size:1.65rem}.acta-intro p{color:#657288}.assignment-acta-document section{margin-top:24px}.assignment-acta-document section h2{padding-bottom:8px;border-bottom:1px solid #dce2eb;font-size:1rem}.acta-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.acta-grid div{padding:10px;background:#f7f8fb;border-radius:8px}.acta-grid dt{color:#727e91;font-size:.7rem;text-transform:uppercase;font-weight:800}.acta-grid dd{margin:4px 0 0;font-weight:700}.acta-condition{margin-top:10px;padding:12px;border:1px solid #e1e6ef;border-radius:8px}.acta-condition p{margin:6px 0 0}.acta-accessories{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.acta-accessories article{padding:12px;background:#f7f8fb;border-radius:8px}.acta-signatures{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:90px;margin-top:70px!important}.acta-signatures div{text-align:center}.acta-signatures span{display:block;border-top:1px solid #303a4d;margin-bottom:8px}.acta-signatures strong,.acta-signatures small{display:block}.acta-signatures small{margin-top:3px;color:#748096}.assignment-acta-document footer{display:flex;justify-content:space-between;margin-top:44px;padding-top:12px;border-top:1px solid #dce2eb;color:#7a8597;font-size:.72rem}
@media(max-width:1050px){.assignment-detail-layout{grid-template-columns:1fr}.assignment-actions-column{position:static}.assignment-filter{grid-template-columns:repeat(2,minmax(0,1fr))}.person-assets-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.form-grid.two-columns,.assignment-condition-grid,.assignment-acta-grid,.assets-two-columns,.acta-grid,.acta-accessories{grid-template-columns:1fr}.assignment-filter{grid-template-columns:1fr}.person-assets-summary{grid-template-columns:1fr 1fr}.assignment-acta-document{padding:24px 18px}.assignment-acta-document>header{display:block}.acta-folio{text-align:left;margin-top:18px}.acta-signatures{gap:28px}.acta-toolbar{padding:0 4px}}
@media print{body.acta-page .app-shell>aside,body.acta-page .topbar,body.acta-page .acta-toolbar,body.acta-page .flash-stack{display:none!important}body.acta-page .app-shell,body.acta-page .main-content{display:block!important;padding:0!important;margin:0!important;background:#fff!important}.assignment-acta-document{max-width:none;border:0;box-shadow:none;padding:20mm 16mm;margin:0}.assignment-acta-document footer{position:fixed;bottom:8mm;left:16mm;right:16mm}}

/* NovaCore v3.0.0 · Activos TI Fase 7 · Soporte integrado */
.asset-ticket-context .asset-data-grid,
.asset-support-overview .asset-support-stats {
  margin-top: 1rem;
}
.asset-support-strip,
.asset-repeat-alert {
  display: flex;
  gap: .75rem;
  align-items: center;
  justify-content: space-between;
  margin-top: 1rem;
  padding: .85rem 1rem;
  border-radius: 14px;
  background: var(--surface-soft, #f5f7fb);
  border: 1px solid var(--border-color, #e3e8f0);
}
.asset-support-columns {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}
.asset-support-columns h3 {
  margin: 0 0 .75rem;
  font-size: .95rem;
}
.asset-support-row,
.asset-support-ticket {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding: .85rem 0;
  border-bottom: 1px solid var(--border-color, #e3e8f0);
  color: inherit;
  text-decoration: none;
}
.asset-support-row:last-child,
.asset-support-ticket:last-child {
  border-bottom: 0;
}
.asset-support-row span,
.asset-support-ticket span {
  min-width: 0;
  display: grid;
  gap: .22rem;
}
.asset-support-row small,
.asset-support-ticket small,
.empty-inline {
  color: var(--text-muted, #64748b);
}
.asset-support-row.static,
.asset-support-ticket.static {
  cursor: default;
}
.asset-support-stats {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(135px, 1fr));
  gap: .75rem;
}
.asset-support-stats > div {
  display: grid;
  gap: .25rem;
  padding: .9rem;
  border-radius: 14px;
  background: var(--surface-soft, #f5f7fb);
  border: 1px solid var(--border-color, #e3e8f0);
}
.asset-support-stats span {
  color: var(--text-muted, #64748b);
  font-size: .8rem;
}
.asset-support-stats strong {
  font-size: 1.2rem;
}
.ticket-solution-panel {
  border-left: 4px solid #22c55e;
}
[data-other-asset-field][hidden],
[data-request-kind-field][hidden] {
  display: none !important;
}
@media (max-width: 820px) {
  .asset-support-columns,
  .asset-support-stats {
    grid-template-columns: 1fr;
  }
  .asset-support-strip,
  .asset-repeat-alert {
    align-items: flex-start;
    flex-direction: column;
  }
}

/* NovaCore v3.0.0 · Activos TI Fase 8 · IA para soporte e inventario */
.ai-assets-page .ai-ticket-layout { align-items: start; }
.ai-assets-entry { border-left: 4px solid var(--primary, #6d28d9); }
.ai-example-list { display: grid; gap: .65rem; }
.ai-example-query {
  width: 100%; text-align: left; padding: .8rem .9rem; border-radius: 12px;
  border: 1px solid var(--border-color, #e3e8f0); background: var(--surface-soft, #f5f7fb);
  color: inherit; cursor: pointer; font: inherit;
}
.ai-example-query:hover { border-color: var(--primary, #6d28d9); transform: translateY(-1px); }
.ai-asset-context-card { border: 1px solid var(--border-color, #e3e8f0); border-radius: 16px; padding: 1rem; background: var(--surface-soft, #f8fafc); }
.ai-asset-context-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(145px, 1fr)); gap: .7rem; margin: .75rem 0; }
.ai-asset-context-grid span { display: grid; gap: .2rem; padding: .7rem; background: var(--surface, #fff); border-radius: 12px; }
.ai-asset-context-grid small { color: var(--text-muted, #64748b); }
.ai-inventory-results { display: grid; gap: .6rem; margin-top: .8rem; }
.ai-inventory-result-row {
  display: grid; grid-template-columns: minmax(220px, 2fr) repeat(3, minmax(90px, 1fr));
  gap: .75rem; align-items: center; padding: .85rem; border-radius: 13px;
  border: 1px solid var(--border-color, #e3e8f0); color: inherit; text-decoration: none;
}
.ai-inventory-result-row:hover { border-color: var(--primary, #6d28d9); }
.ai-inventory-result-row span { min-width: 0; display: grid; gap: .15rem; }
.ai-inventory-result-row small { color: var(--text-muted, #64748b); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
@media (max-width: 820px) {
  .ai-inventory-result-row { grid-template-columns: 1fr 1fr; }
  .ai-inventory-result-row > span:first-child { grid-column: 1 / -1; }
}


/* NovaCore v3.0.0 · Activos TI Fase 9 · Migración histórica */
.migration-guide-grid{align-items:stretch}
.migration-step-list{margin:0;padding-left:1.35rem;display:grid;gap:.7rem;color:var(--text-muted)}
.migration-step-list code,.migration-command code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}
.migration-command{margin:0;max-width:100%;overflow:auto;padding:1rem;border-radius:14px;background:#111827;color:#e5e7eb;white-space:pre-wrap;line-height:1.55}
.migration-retirement-warning{border-left:4px solid #f59e0b}
.migration-error-card{border-left:4px solid #dc2626}
.migration-error-card pre{overflow:auto;white-space:pre-wrap}
@media(max-width:760px){.migration-command{font-size:.78rem}.migration-guide-grid{grid-template-columns:1fr}}

/* NovaCore v3.0.0 · Campañas de inventario físico */
.inventory-progress{height:8px;min-width:120px;background:#e5e7eb;border-radius:999px;overflow:hidden;margin:.35rem 0}
.inventory-progress.large{height:14px;width:100%}
.inventory-progress span{display:block;height:100%;background:linear-gradient(90deg,#7c3aed,#06b6d4);border-radius:inherit}
.inventory-inline-form{display:flex;gap:.45rem;align-items:center;min-width:420px}
.inventory-inline-form select,.inventory-inline-form input{min-width:110px}
.inventory-inline-form input{flex:1}
.physical-inventory-asset-actions .asset-support-ticket{align-items:center}
@media(max-width:760px){.inventory-inline-form{min-width:600px}.physical-inventory-asset-actions .asset-support-ticket{align-items:flex-start;gap:.8rem}}

/* NovaCore v3.2.0 · Fase 3 · Cierre de mensajería */
.message-search-results {
  margin: 0 1rem .75rem;
  max-height: 280px;
  overflow-y: auto;
  display: grid;
  gap: .35rem;
  padding: .45rem;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 12px 28px rgba(16,24,40,.08);
}
.message-search-result {
  display: grid;
  gap: .15rem;
  padding: .65rem .7rem;
  border-radius: 9px;
  color: var(--text);
  text-decoration: none;
}
.message-search-result:hover { background: #f1f3fb; }
.message-search-result strong { font-size: .72rem; }
.message-search-result span { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; color: var(--muted); font-size: .67rem; }
.message-search-result time { color: #8b93a5; font-size: .58rem; }
.message-search-empty { margin: 0; padding: .8rem; color: var(--muted); text-align: center; font-size: .7rem; }
.offline-queue-status {
  padding: .42rem 1rem;
  border-bottom: 1px solid #d8c9ff;
  background: #f2edff;
  color: #5b21b6;
  text-align: center;
  font-size: .66rem;
  font-weight: 750;
}
.message-status { cursor: help; }
@media (max-width: 900px) {
  .message-search-results { max-height: 220px; }
}


/* NovaCore v3.3.0 · Fase 4 · Estabilidad de llamadas y video */
.call-network-state { max-width: min(92vw, 680px); text-wrap: balance; }
.call-control[disabled] { opacity: .55; cursor: wait; }
.meeting-video-tile.waiting [data-participant-state] { text-wrap: balance; }
/* NovaCore v3.4.0 · Fase 5 · Cambio de cámara móvil */
.camera-switch-control[hidden] { display:none !important; }
.camera-switch-control.is-switching > span { animation:nova-camera-switch-spin .85s linear infinite; }
.camera-switch-control:disabled:not(.is-switching) { opacity:.45; cursor:not-allowed; }
@keyframes nova-camera-switch-spin { to { transform:rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .camera-switch-control.is-switching > span { animation:none; } }

/* NovaCore v3.5.0 · Fase 6 · Pantalla móvil estable */
.local-screen-preview-wrap { position:absolute; z-index:3; top:calc(1rem + min(220px,24vw) * .66 + .65rem); right:1rem; width:min(220px,24vw); aspect-ratio:16/10; overflow:hidden; border:2px solid rgba(125,223,245,.75); border-radius:16px; background:#08111f; box-shadow:0 12px 35px rgba(0,0,0,.35); }
.local-screen-preview-wrap[hidden],.meeting-local-screen-preview[hidden],.screen-share-state[hidden],.meeting-screen-share-state[hidden] { display:none !important; }
.local-screen-preview { width:100%; height:100%; object-fit:contain; background:#050a12; }
.local-screen-preview-wrap > span { position:absolute; left:.5rem; bottom:.42rem; padding:.2rem .38rem; border-radius:6px; background:rgba(0,0,0,.58); color:#fff; font-size:.52rem; font-weight:800; }
.screen-share-state,.meeting-screen-share-state { position:absolute; z-index:6; left:50%; top:1rem; transform:translateX(-50%); max-width:min(680px,calc(100% - 2rem)); padding:.5rem .72rem; border:1px solid rgba(255,255,255,.14); border-radius:11px; background:rgba(5,12,24,.82); color:#e8edf7; font-size:.6rem; font-weight:750; text-align:center; text-wrap:balance; backdrop-filter:blur(8px); box-shadow:0 8px 28px rgba(0,0,0,.22); }
.screen-share-state[data-tone="success"],.meeting-screen-share-state[data-tone="success"] { border-color:rgba(73,209,145,.48); color:#b8f3d4; }
.screen-share-state[data-tone="warning"],.meeting-screen-share-state[data-tone="warning"] { border-color:rgba(246,184,63,.5); color:#ffe2a3; }
.screen-share-control.unsupported > span { background:rgba(246,184,63,.2); color:#ffe2a3; }
.screen-share-control.is-starting > span { animation:nova-screen-share-pulse 1s ease-in-out infinite; }
.call-stage.screen-sharing .local-video-wrap { border-color:rgba(91,103,241,.75); }
.meeting-local-screen-preview { position:absolute; z-index:4; right:.5rem; bottom:2.35rem; width:min(42%,180px) !important; height:auto !important; aspect-ratio:16/10; object-fit:contain !important; border:2px solid rgba(125,223,245,.78); border-radius:11px; background:#050a12; box-shadow:0 9px 24px rgba(0,0,0,.35); transform:none !important; }
.meeting-video-tile.local.is-screen-sharing { border-color:rgba(125,223,245,.7); box-shadow:0 0 0 2px rgba(125,223,245,.15); }
.meeting-video-tile.screen-sharing { border-color:rgba(125,223,245,.58); }
.meeting-video-tile.screen-sharing .meeting-tile-label::after { content:"Pantalla"; margin-left:.35rem; padding:.12rem .3rem; border-radius:6px; background:rgba(34,199,242,.18); color:#9cecff; font-size:.45rem; font-weight:800; }
@keyframes nova-screen-share-pulse { 50% { transform:scale(.92); opacity:.72; } }
@media (max-width:700px) {
  .local-screen-preview-wrap { top:calc(.65rem + 112px * .625 + .5rem); right:.65rem; width:112px; border-radius:12px; }
  .screen-share-state { top:.65rem; left:.65rem; transform:none; max-width:calc(100% - 140px); text-align:left; }
  .call-controls { padding-bottom:calc(.45rem + env(safe-area-inset-bottom)); }
  .screen-share-control { min-width:58px; }
}
@media (max-width:900px) {
  .meeting-screen-share-state { top:auto; bottom:5.45rem; max-width:calc(100% - 1rem); }
  .meeting-local-screen-preview { width:38% !important; bottom:2.15rem; }
  .meeting-controls { padding-bottom:calc(.4rem + env(safe-area-inset-bottom)); }
}
@media (prefers-reduced-motion:reduce) { .screen-share-control.is-starting > span { animation:none; } }


/* NovaCore v3.6.0 · Fase 7 · PWA, Push y ciclo de vida móvil */
.update-banner{display:flex;align-items:center;justify-content:center;gap:.75rem;top:calc(12px + env(safe-area-inset-top));max-width:min(92vw,620px);padding:.65rem .75rem .65rem 1rem;background:#fff;color:#172033;border:1px solid #d8def0}.update-banner button{border:0;border-radius:10px;background:#5b67f1;color:#fff;padding:.55rem .8rem;font:inherit;font-weight:750;cursor:pointer}.update-banner button:hover{background:#4854d9}.update-banner[hidden]{display:none}.is-offline .notification-bell{opacity:.72}.pwa-settings .status-chip{max-width:100%;text-align:center}.runtime-toast.warning{background:#7a5310;color:#fff}@media(max-width:620px){.update-banner{width:calc(100% - 24px);align-items:stretch;flex-direction:column;text-align:center}.update-banner button{width:100%}}

/* NovaCore v3.8.0 · Fase 9 · Migración histórica cerrada */

/* NovaCore v4.1.0 · Fase 10 · Release Candidate web base */
.release-stage-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem;margin:0 0 1rem}.release-stage{display:flex;align-items:flex-start;gap:.75rem;padding:1rem;border:1px solid var(--border);border-radius:16px;background:#fff}.release-stage>span{display:grid;place-items:center;width:2rem;height:2rem;flex:0 0 auto;border-radius:50%;background:#eef1f6;color:#667085;font-weight:850}.release-stage strong{display:block;color:var(--text)}.release-stage p{margin:.25rem 0 0;color:var(--muted);font-size:.78rem;line-height:1.45}.release-stage.ready{border-color:#9edfc3;background:#f4fbf7}.release-stage.ready>span{background:#dff6eb;color:#147454}.release-stage.blocked{border-color:#f0bdc1;background:#fff7f7}.release-stage.blocked>span{background:#feecec;color:#b62d37}.release-stage.pending{opacity:.78}.release-action-panel form{display:grid;gap:.8rem}.release-action-panel label{display:grid;gap:.4rem}.form-help{display:block;margin-top:-.35rem;color:var(--muted);line-height:1.45}.release-checks{padding-left:0}.legacy-disposition{padding:1rem;border:1px solid var(--border);border-radius:14px;background:#f8fafc}.legacy-disposition.healthy{border-color:#b5e5ce;background:#f3fbf7}.legacy-disposition.critical{border-color:#f0c3c6;background:#fff8f8}.legacy-disposition>p{color:var(--muted);line-height:1.55}.legacy-note{margin:.9rem 0;padding:.8rem;border-radius:11px;background:#fff;border:1px solid var(--border)}.legacy-note p{margin:.25rem 0 0;white-space:pre-line}.retirement-warning{padding:.75rem;border-radius:10px;background:#fff3d8;color:#79580e!important;font-weight:650}.inline-reset-form{margin-top:.6rem}.release-channel{display:inline-flex;padding:.25rem .5rem;border-radius:999px;background:#eef2f6;color:#475467;font-size:.72rem;font-weight:800}.release-channel.rc{background:#eef0ff;color:#4f5bcf}.release-channel.stable{background:#e7f8f0;color:#157454}.status-pill.candidate{background:#eef0ff;color:#4f5bcf}.status-pill.approved,.status-pill.deployed{background:#e7f8f0;color:#157454}.candidate-summary{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap;margin:.7rem 0 1rem;padding:.8rem;border-radius:12px;background:#f5f7fb}.candidate-summary small{width:100%;color:var(--muted)}.candidate-summary strong{font-size:1.1rem}@media(max-width:900px){.release-stage-grid{grid-template-columns:1fr}.release-stage{padding:.85rem}.release-action-panel{order:initial}}

/* NovaCore v4.1.0 · Fase 11 · Arquitectura y núcleo CRM */
.crm-subnav {
  display: flex;
  align-items: center;
  gap: .5rem;
  margin: 0 0 1rem;
  padding: .35rem;
  border: 1px solid var(--border, #dfe5ee);
  border-radius: 16px;
  background: rgba(255,255,255,.78);
  backdrop-filter: blur(12px);
}
.crm-subnav a {
  padding: .62rem .9rem;
  border-radius: 12px;
  color: var(--text-muted, #64748b);
  font-weight: 700;
  text-decoration: none;
}
.crm-subnav a.active { background: #111827; color: #fff; }
.crm-subnav-status {
  margin-left: auto;
  padding: .45rem .75rem;
  border-radius: 999px;
  font-size: .78rem;
  font-weight: 800;
}
.crm-subnav-status.is-active { color: #047857; background: #d1fae5; }
.crm-subnav-status.is-paused { color: #92400e; background: #fef3c7; }
.crm-runtime-banner {
  display: flex;
  justify-content: space-between;
  gap: 1.25rem;
  align-items: center;
  padding: 1.35rem;
  margin-bottom: 1rem;
  border-radius: 22px;
  border: 1px solid #dbe3ef;
  background: linear-gradient(135deg, #fff 0%, #f8fafc 100%);
  box-shadow: 0 12px 30px rgba(15, 23, 42, .06);
}
.crm-runtime-banner.is-active {
  border-color: rgba(16,185,129,.28);
  background: linear-gradient(135deg, #ecfdf5 0%, #f8fafc 55%, #eff6ff 100%);
}
.crm-runtime-banner.is-locked {
  border-color: rgba(245,158,11,.26);
  background: linear-gradient(135deg, #fffbeb 0%, #fff 55%, #f8fafc 100%);
}
.crm-runtime-banner h2 { margin: .25rem 0 .45rem; }
.crm-runtime-banner p { margin: 0; max-width: 820px; color: var(--text-muted, #64748b); }
.crm-runtime-actions { display: flex; align-items: center; gap: .65rem; flex-wrap: wrap; justify-content: flex-end; }
.crm-stat-grid { margin-bottom: 1rem; }
.crm-core-grid { align-items: start; }
.crm-capability-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; }
.crm-capability-card {
  display: flex;
  gap: .8rem;
  padding: .9rem;
  border: 1px solid #e5eaf1;
  border-radius: 16px;
  background: #fff;
}
.crm-capability-card strong { display: block; margin-bottom: .2rem; }
.crm-capability-card p { margin: 0; color: var(--text-muted, #64748b); font-size: .88rem; }
.crm-capability-icon {
  display: grid;
  place-items: center;
  width: 32px;
  height: 32px;
  flex: 0 0 32px;
  border-radius: 10px;
  font-weight: 900;
}
.crm-capability-icon.ready { color: #047857; background: #d1fae5; }
.crm-capability-icon.planned { color: #7c3aed; background: #ede9fe; }
.crm-contract-panel .definition-grid.single { grid-template-columns: 1fr; }
.crm-contract-panel .panel-note { margin: 1rem 0 0; padding: .8rem; border-radius: 12px; background: #f1f5f9; color: #475569; font-size: .86rem; }
.crm-roadmap-panel { margin-top: 1rem; }
.roadmap-list.horizontal { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; }
.crm-settings-layout { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(300px, .9fr); gap: 1rem; align-items: start; }
.crm-settings-form .check-row,
.crm-field-form .check-row { align-self: center; }
.crm-activation-panel { position: sticky; top: 84px; }
.safe-activation-form { border-color: rgba(16,185,129,.22); background: #f0fdf4; }
.confirmation-code { display: block; margin: .55rem 0; padding: .6rem .7rem; border-radius: 10px; background: #0f172a; color: #f8fafc; overflow-wrap: anywhere; }
.crm-fields-panel { margin-top: 1rem; }
.crm-fields-layout { display: grid; grid-template-columns: minmax(320px, .9fr) minmax(0, 1.1fr); gap: 1rem; align-items: start; }
.crm-field-form { padding: 1rem; border: 1px solid #e5eaf1; border-radius: 18px; background: #f8fafc; }
.crm-field-list { display: grid; gap: .65rem; }
.crm-field-item { display: flex; justify-content: space-between; gap: 1rem; align-items: center; padding: .8rem .9rem; border: 1px solid #e5eaf1; border-radius: 15px; background: #fff; }
.crm-field-item.is-disabled { opacity: .62; background: #f8fafc; }
.crm-field-item strong { display: block; margin: .15rem 0; }
.crm-field-item code { display: inline-block; margin-right: .45rem; color: #6d28d9; }
.crm-field-item small { color: #64748b; }
.field-entity { display: inline-flex; padding: .18rem .45rem; border-radius: 999px; background: #ede9fe; color: #6d28d9; font-size: .72rem; font-weight: 800; }
@media (max-width: 980px) {
  .crm-settings-layout,
  .crm-fields-layout { grid-template-columns: 1fr; }
  .crm-activation-panel { position: static; }
}
@media (max-width: 720px) {
  .crm-runtime-banner { align-items: flex-start; flex-direction: column; }
  .crm-runtime-actions { justify-content: flex-start; }
  .crm-capability-grid,
  .roadmap-list.horizontal { grid-template-columns: 1fr; }
  .crm-subnav { overflow-x: auto; }
  .crm-subnav-status { white-space: nowrap; }
  .crm-field-item { align-items: flex-start; flex-direction: column; }
}

/* NovaCore v4.1.0 · Fase 12 · Clientes, contactos y leads */
.crm-quick-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.8rem;margin:0 0 1rem}.crm-quick-actions>a{display:flex;align-items:center;gap:.8rem;min-height:92px;padding:1rem;border:1px solid #e1e7f0;border-radius:18px;background:#fff;color:var(--text);text-decoration:none;box-shadow:0 8px 22px rgba(15,23,42,.04);transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.crm-quick-actions>a:hover{transform:translateY(-2px);border-color:#c9ccff;box-shadow:0 13px 28px rgba(67,56,202,.1)}.crm-quick-actions>a>span{display:grid;place-items:center;width:42px;height:42px;flex:0 0 42px;border-radius:14px;background:#eef0ff;color:#5b5bd6;font-size:1.15rem;font-weight:900}.crm-quick-actions>a div{min-width:0}.crm-quick-actions>a strong{display:block}.crm-quick-actions>a p{margin:.2rem 0 0;color:var(--muted);font-size:.78rem;line-height:1.35}.crm-quick-actions>a>b{margin-left:auto;color:#7b7fe9}.crm-filter-panel{margin-bottom:1rem}.crm-filter-grid{display:grid;grid-template-columns:minmax(230px,1.5fr) repeat(5,minmax(130px,1fr));gap:.7rem;align-items:end}.crm-filter-grid label{display:grid;gap:.35rem}.crm-filter-grid label>span{font-size:.72rem;font-weight:800;color:#536174}.crm-filter-actions{display:flex;gap:.5rem;align-items:center;grid-column:1/-1}.crm-table td>small,.crm-table td>span+small,.crm-import-table td>small{display:block;margin-top:.18rem;color:var(--muted);font-size:.72rem}.crm-record-link{display:flex;flex-direction:column;gap:.15rem;min-width:170px;text-decoration:none}.crm-record-link strong{color:var(--text)}.crm-record-link span{color:var(--muted);font-size:.75rem}.crm-tag-list{display:flex;align-items:center;flex-wrap:wrap;gap:.3rem}.crm-tag-list>span{display:inline-flex;max-width:150px;padding:.18rem .48rem;border-radius:999px;background:#f0efff;color:#5c4ecf;font-size:.68rem;font-weight:750;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.crm-entity-form{display:grid;gap:1rem}.crm-form-section{padding:.2rem}.crm-form-section+.crm-form-section{padding-top:1rem;border-top:1px solid var(--border)}.crm-form-section-head{display:flex;align-items:center;justify-content:space-between;gap:.8rem;margin-bottom:.8rem}.crm-form-section-head h3{margin:.15rem 0 0}.crm-detail-grid{align-items:start}.crm-detail-panel .definition-grid .full{grid-column:1/-1}.crm-contact-stack{display:grid;gap:.55rem}.crm-contact-stack>a{display:flex;flex-direction:column;position:relative;padding:.75rem .85rem;border:1px solid var(--border);border-radius:13px;background:#fff;text-decoration:none}.crm-contact-stack>a strong{color:var(--text)}.crm-contact-stack>a span{margin-top:.16rem;color:var(--muted);font-size:.77rem}.crm-contact-stack>a small{position:absolute;top:.65rem;right:.65rem;padding:.16rem .4rem;border-radius:999px;background:#e8f7ef;color:#12704f;font-size:.65rem;font-weight:800}.crm-contact-card,.crm-convert-panel{text-align:center}.crm-avatar-large{display:grid;place-items:center;width:86px;height:86px;margin:0 auto .8rem;border-radius:24px;background:linear-gradient(145deg,#5d5fef,#8b5cf6);color:#fff;font-size:1.7rem;font-weight:900;box-shadow:0 16px 34px rgba(93,95,239,.22)}.crm-contact-card h2,.crm-convert-panel h2{margin:.2rem 0}.crm-contact-card p,.crm-convert-panel p{color:var(--muted)}.crm-contact-card>div{display:flex;justify-content:center;gap:.5rem;flex-wrap:wrap}.crm-convert-icon{display:grid;place-items:center;width:64px;height:64px;margin:0 auto .7rem;border-radius:20px;background:#eef0ff;color:#5d5fef;font-size:1.5rem;font-weight:900}.crm-convert-icon.success{background:#e4f8ed;color:#167554}.crm-convert-panel form{display:grid;gap:.7rem;margin-top:1rem;text-align:left}.crm-convert-panel form label{display:grid;gap:.35rem}.crm-history-panel{margin-top:1rem}.crm-history-list{display:grid;gap:.1rem}.crm-history-list article{display:grid;grid-template-columns:20px 1fr;gap:.65rem;position:relative;padding:.65rem 0}.crm-history-list article:not(:last-child)::before{content:"";position:absolute;left:7px;top:24px;bottom:-6px;width:2px;background:#e6e9f2}.crm-history-dot{position:relative;z-index:1;width:16px;height:16px;margin-top:.15rem;border:4px solid #e5e7ff;border-radius:50%;background:#6667e8}.crm-history-list strong{display:block}.crm-history-list p{margin:.16rem 0;color:var(--muted);font-size:.74rem}.crm-history-list details{margin-top:.4rem}.crm-history-list summary{cursor:pointer;color:#5d5fef;font-size:.72rem;font-weight:750}.crm-history-list pre{max-height:220px;overflow:auto;padding:.65rem;border-radius:10px;background:#111827;color:#e5e7eb;font-size:.68rem}.crm-import-layout{align-items:start}.crm-import-form input[type=file]{padding:.65rem;border:1px dashed #bfc7d7;border-radius:12px;background:#f8fafc}.crm-import-help>p{color:var(--muted);line-height:1.55}.crm-template-list{display:grid;gap:.55rem}.crm-template-list>a{display:flex;flex-direction:column;padding:.75rem;border:1px solid var(--border);border-radius:13px;background:#fff;text-decoration:none}.crm-template-list strong{color:var(--text)}.crm-template-list span{margin-top:.2rem;color:var(--muted);font-size:.75rem}.warning-box{margin-top:.8rem;padding:.8rem;border-radius:13px;background:#fff8e8;border:1px solid #f2d59a}.warning-box p{margin:.25rem 0 0;color:#79580e;font-size:.78rem}.crm-import-status{display:flex;align-items:end;justify-content:space-between;gap:1rem;margin-bottom:1rem}.crm-import-status h2{margin:.15rem 0}.crm-import-status p{margin:0;color:var(--muted)}.crm-import-confirm{display:flex;align-items:end;gap:.6rem}.crm-import-confirm label{display:grid;gap:.35rem;min-width:260px}.crm-import-table{min-width:1050px}.crm-import-table tr.is-error{background:#fff7f7}.crm-import-table tr.is-warning{background:#fffdf4}.crm-row-data{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.25rem;min-width:300px;margin:0}.crm-row-data div{min-width:0}.crm-row-data dt{color:#6b7280;font-size:.62rem;text-transform:uppercase}.crm-row-data dd{margin:0;overflow-wrap:anywhere;font-size:.72rem}.crm-row-warning,.crm-row-error{margin:.15rem 0;font-size:.72rem;line-height:1.35}.crm-row-warning{color:#8a5b00}.crm-row-error{color:#b4232d}.preline{white-space:pre-line}.button.compact{padding:.42rem .62rem;font-size:.72rem}.empty-state.compact{padding:1rem;min-height:auto}.crm-form-section select[multiple]{min-height:112px}.status-pill.planned{background:#f2f3f7;color:#5f6673}@media(max-width:1250px){.crm-filter-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.crm-search-field{grid-column:span 2}.crm-quick-actions{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:780px){.crm-quick-actions,.crm-filter-grid{grid-template-columns:1fr}.crm-search-field{grid-column:auto}.crm-filter-actions{grid-column:auto}.crm-import-status{align-items:stretch;flex-direction:column}.crm-import-confirm{align-items:stretch;flex-direction:column}.crm-import-confirm label{min-width:0}.crm-row-data{grid-template-columns:1fr}.crm-subnav a{white-space:nowrap}}

/* NovaCore CRM · Fase 13 · Pipeline */
.crm-view-toggle{display:inline-flex;margin-left:auto;padding:.22rem;border:1px solid var(--border);border-radius:12px;background:#f8fafc}.crm-view-toggle a{padding:.42rem .72rem;border-radius:9px;color:var(--muted);font-size:.75rem;font-weight:800;text-decoration:none}.crm-view-toggle a.active{background:#111827;color:#fff}.crm-pipeline-board{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(285px,320px);gap:.9rem;overflow-x:auto;padding:.15rem .1rem 1rem;scroll-snap-type:x proximity}.crm-pipeline-column{display:flex;flex-direction:column;min-height:540px;border:1px solid #e3e8f1;border-radius:20px;background:#f7f9fc;scroll-snap-align:start;box-shadow:0 10px 26px rgba(15,23,42,.04)}.crm-pipeline-column>header{display:flex;justify-content:space-between;align-items:flex-start;gap:.7rem;padding:1rem 1rem .65rem}.crm-pipeline-column>header>div{display:grid;grid-template-columns:auto 1fr;gap:.18rem .5rem;align-items:center}.crm-pipeline-column>header strong{font-size:.9rem}.crm-pipeline-column>header small{grid-column:2;color:var(--muted);font-size:.67rem}.crm-pipeline-column>header>b{display:grid;place-items:center;min-width:28px;height:28px;padding:0 .4rem;border-radius:999px;background:#fff;color:#4b5563;font-size:.75rem}.crm-stage-dot{width:10px;height:10px;border-radius:999px;background:#7c3aed;box-shadow:0 0 0 4px rgba(124,58,237,.12)}.color-slate .crm-stage-dot,.crm-stage-badge.color-slate:before{background:#64748b}.color-cyan .crm-stage-dot,.crm-stage-badge.color-cyan:before{background:#0891b2}.color-violet .crm-stage-dot,.crm-stage-badge.color-violet:before{background:#7c3aed}.color-amber .crm-stage-dot,.crm-stage-badge.color-amber:before{background:#d97706}.color-green .crm-stage-dot,.crm-stage-badge.color-green:before{background:#059669}.color-red .crm-stage-dot,.crm-stage-badge.color-red:before{background:#dc2626}.crm-stage-summary{display:flex;justify-content:space-between;gap:.5rem;padding:0 1rem .75rem;color:#475569;font-size:.7rem}.crm-stage-summary small{color:var(--muted)}.crm-pipeline-dropzone{display:grid;align-content:start;gap:.65rem;min-height:420px;padding:.7rem;border-top:1px solid #e7ebf2;border-radius:0 0 20px 20px;transition:background .16s ease,box-shadow .16s ease}.crm-pipeline-dropzone.is-over{background:#eef2ff;box-shadow:inset 0 0 0 2px #818cf8}.crm-opportunity-card{display:grid;gap:.55rem;padding:.8rem;border:1px solid #e1e6ee;border-radius:15px;background:#fff;box-shadow:0 7px 18px rgba(15,23,42,.055);cursor:default;transition:transform .16s ease,box-shadow .16s ease,opacity .16s ease}.crm-opportunity-card[draggable=true]{cursor:grab}.crm-opportunity-card[draggable=true]:active{cursor:grabbing}.crm-opportunity-card:hover{transform:translateY(-1px);box-shadow:0 12px 24px rgba(15,23,42,.08)}.crm-opportunity-card.is-dragging{opacity:.45}.crm-opportunity-card>a{display:grid;gap:.16rem;text-decoration:none}.crm-opportunity-card>a strong{color:var(--text);font-size:.85rem;line-height:1.3}.crm-opportunity-card>a small{color:var(--muted);font-size:.7rem}.crm-opportunity-card-head,.crm-opportunity-amount,.crm-opportunity-meta{display:flex;justify-content:space-between;gap:.55rem;align-items:center}.crm-opportunity-card-head>span:first-child{font-size:.65rem;font-weight:850;color:#6b7280}.crm-opportunity-card .status-pill{font-size:.58rem;padding:.18rem .4rem}.crm-opportunity-amount b{font-size:.83rem}.crm-opportunity-amount span{padding:.2rem .42rem;border-radius:999px;background:#eef0ff;color:#5b52c6;font-size:.66rem;font-weight:800}.crm-opportunity-meta{color:var(--muted);font-size:.64rem}.crm-stage-empty{display:grid;place-items:center;min-height:92px;border:1px dashed #d7dde7;border-radius:14px;color:#8a94a5;font-size:.72rem}.crm-stage-badge{display:inline-flex;align-items:center;gap:.4rem;padding:.28rem .52rem;border-radius:999px;background:#f1f5f9;color:#334155;font-size:.7rem;font-weight:800}.crm-stage-badge:before{content:"";width:7px;height:7px;border-radius:50%;background:#7c3aed}.crm-move-dialog{width:min(520px,calc(100vw - 2rem));padding:0;border:0;border-radius:20px;box-shadow:0 28px 80px rgba(15,23,42,.3)}.crm-move-dialog::backdrop{background:rgba(15,23,42,.52);backdrop-filter:blur(3px)}.crm-move-dialog form{display:grid;gap:1rem;padding:1.15rem}.crm-move-dialog header{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}.crm-move-dialog header h2{margin:.2rem 0 0}.crm-move-dialog label{display:grid;gap:.38rem}.crm-move-dialog label>span{font-size:.74rem;font-weight:800;color:#526075}.crm-pipeline-settings-grid{align-items:start}.crm-stage-settings-list{display:grid;gap:.8rem}.crm-stage-setting{position:relative;padding:1rem;border:1px solid var(--border);border-left:5px solid #7c3aed;border-radius:16px;background:#fff}.crm-stage-setting.color-slate{border-left-color:#64748b}.crm-stage-setting.color-cyan{border-left-color:#0891b2}.crm-stage-setting.color-amber{border-left-color:#d97706}.crm-stage-setting.color-green{border-left-color:#059669}.crm-stage-setting.color-red{border-left-color:#dc2626}.crm-stage-setting-form{grid-template-columns:1.3fr .65fr .75fr .75fr repeat(3,auto);align-items:end}.crm-stage-setting-actions{display:flex;align-items:end}.crm-stage-reorder{position:absolute;top:.55rem;right:.55rem;display:flex;gap:.25rem}.crm-loss-reason-layout{display:grid;grid-template-columns:minmax(280px,.7fr) minmax(0,1.3fr);gap:1rem}.crm-inline-form{display:flex;gap:.55rem;align-items:center}.crm-inline-form input{flex:1}.crm-loss-reason-list{display:flex;flex-wrap:wrap;gap:.5rem}.crm-loss-reason-list>span{display:inline-flex;align-items:center;gap:.45rem;padding:.4rem .55rem;border:1px solid var(--border);border-radius:999px;background:#fff;font-size:.72rem;font-weight:750}.crm-loss-reason-list>span.is-disabled{opacity:.55;background:#f1f5f9}.crm-loss-reason-list form{display:inline}.crm-loss-reason-list button{padding:0;border:0;background:transparent;color:#635bce;font-size:.65rem;font-weight:800;cursor:pointer}.crm-stage-history{display:grid;gap:.75rem}.crm-stage-history article{display:flex;gap:.75rem;align-items:flex-start;padding:.75rem;border-bottom:1px solid var(--border)}.crm-stage-history article:last-child{border-bottom:0}.crm-stage-history strong{display:block}.crm-stage-history p{margin:.2rem 0;color:var(--muted);font-size:.72rem}.crm-stage-history small{color:#475569}.single-column{grid-template-columns:1fr}.crm-close-fields{background:#fbfcff;border-radius:15px}@media(max-width:1200px){.crm-stage-setting-form{grid-template-columns:repeat(3,minmax(0,1fr))}.crm-stage-setting-actions{grid-column:1/-1}.crm-loss-reason-layout{grid-template-columns:1fr}}@media(max-width:780px){.crm-pipeline-board{grid-auto-columns:minmax(270px,88vw)}.crm-view-toggle{margin-left:0}.crm-stage-setting-form{grid-template-columns:1fr 1fr}.crm-stage-setting .check-row{align-self:center}.crm-stage-reorder{position:static;margin-top:.6rem}.crm-inline-form{align-items:stretch;flex-direction:column}.crm-opportunity-filters .crm-filter-actions{align-items:stretch;flex-direction:column}.crm-view-toggle{width:100%}.crm-view-toggle a{flex:1;text-align:center}}

/* NovaCore v4.3.0 · Fase 14 CRM Actividades */
.crm-activity-stats{grid-template-columns:repeat(4,minmax(0,1fr))}
.crm-activity-filter-panel{padding:1rem}
.crm-activity-filter{display:grid;grid-template-columns:repeat(5,minmax(145px,1fr));gap:.75rem;align-items:end}
.crm-activity-filter .wide{grid-column:span 2}.crm-activity-filter label{display:grid;gap:.35rem}.crm-activity-filter label>span{font-size:.68rem;font-weight:750;color:#566177}
.crm-activity-filter input,.crm-activity-filter select{width:100%}
.crm-activity-agenda{display:grid;gap:.75rem;margin-top:1rem}
.crm-activity-card{padding:0;overflow:hidden;border-left:4px solid #cfd5e4;transition:.18s ease}
.crm-activity-card:hover{transform:translateY(-1px);box-shadow:0 14px 34px rgba(30,42,75,.09)}
.crm-activity-card.priority-high{border-left-color:#e69a32}.crm-activity-card.priority-urgent{border-left-color:#cf3f4c}.crm-activity-card.overdue{background:linear-gradient(90deg,#fff7f7,#fff 24%)}
.crm-activity-main{display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:.85rem;align-items:center;padding:1rem;color:inherit;text-decoration:none}
.crm-activity-type{width:48px;height:48px;display:grid;place-items:center;border-radius:15px;font-size:1rem;font-weight:850;background:#eef0ff;color:#5964df}
.crm-activity-type.type-call{background:#e9f8ff;color:#14799b}.crm-activity-type.type-meeting{background:#efeaff;color:#6c4fc5}.crm-activity-type.type-note{background:#fff7dc;color:#966900}.crm-activity-type.type-reminder{background:#ffecef;color:#b93948}
.crm-activity-copy{min-width:0}.crm-activity-copy h2{margin:.35rem 0 .2rem;font-size:.94rem}.crm-activity-copy>p{margin:0;color:var(--muted);font-size:.7rem}
.crm-activity-badges,.crm-activity-meta{display:flex;gap:.45rem;align-items:center;flex-wrap:wrap}.crm-activity-meta{margin-top:.55rem;color:#68748a;font-size:.62rem}.crm-activity-meta span{display:inline-flex;gap:.25rem;align-items:center}
.crm-priority-chip,.crm-overdue-chip{display:inline-flex;align-items:center;border-radius:999px;padding:.25rem .5rem;font-size:.62rem;font-weight:800}.crm-priority-chip{background:#f1f3f7;color:#5f697d}.crm-priority-chip.high{background:#fff1dc;color:#9b5e0a}.crm-priority-chip.urgent,.crm-overdue-chip{background:#ffe8eb;color:#b33442}
.crm-activity-quick-actions{display:flex;gap:.45rem;justify-content:flex-end;padding:.65rem 1rem;border-top:1px solid var(--border);background:#fafbfe}.crm-activity-quick-actions form{margin:0}
.status-pill.pending{background:#fff5db;color:#8f6300}.status-pill.in_progress{background:#e6f5ff;color:#176f91}.status-pill.cancelled{background:#eef1f5;color:#667085}
.crm-activity-form{max-width:1080px;margin:0 auto;padding:0;overflow:hidden}.crm-activity-form-section{padding:1rem 1.15rem;border-bottom:1px solid var(--border)}.crm-activity-form-section .panel-heading{padding:0;margin-bottom:.9rem}.crm-activity-form .form-actions{padding:1rem 1.15rem}
.crm-activity-relations label.is-muted{opacity:.55}.crm-activity-relations label.is-muted select{background:#f4f5f8}.crm-activity-form-section.is-note .panel-heading p::after{content:" Las notas se registran como completadas y no requieren fecha."}
.crm-activity-link-panel{align-self:start}.crm-activity-linked-stack{display:grid;gap:.55rem}.crm-activity-linked-stack>a{display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:.65rem;align-items:center;padding:.7rem;border:1px solid var(--border);border-radius:13px;color:inherit;text-decoration:none;background:#fff}.crm-activity-linked-stack>a:hover{border-color:#c8ceff;background:#fafaff}.crm-activity-linked-stack>a>span{width:38px;height:38px;display:grid;place-items:center;border-radius:11px;background:#eef0ff;color:var(--primary);font-weight:850}.crm-activity-linked-stack strong,.crm-activity-linked-stack small{display:block}.crm-activity-linked-stack small{margin-top:.1rem;color:var(--muted);font-size:.6rem}
.crm-activity-status-actions{display:grid;gap:.6rem;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border)}.crm-activity-status-actions form{display:grid;gap:.55rem}.crm-activity-status-actions textarea{width:100%}
.crm-related-activities{margin-top:1rem}.crm-related-activity-list{display:grid;gap:.5rem}.crm-related-activity{display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:.7rem;align-items:center;padding:.72rem;border:1px solid var(--border);border-radius:14px;color:inherit;text-decoration:none;background:#fff}.crm-related-activity:hover{border-color:#c9ceff;background:#fafaff}.crm-related-activity>span{width:42px;height:42px;display:grid;place-items:center;border-radius:12px;background:#eef0ff;color:var(--primary);font-weight:850}.crm-related-activity strong,.crm-related-activity p,.crm-related-activity small{display:block;margin:0}.crm-related-activity p{margin-top:.12rem;color:#68748a;font-size:.62rem}.crm-related-activity small{margin-top:.12rem;color:var(--muted);font-size:.56rem}.crm-related-activity em{font-style:normal}.crm-related-activity.overdue{border-color:#f0bec4;background:#fff8f8}
.notification-popover-icon.kind-crm_activity_reminder,.notification-popover-icon.kind-crm_activity_assigned{background:#eeeaff;color:#6751cf}
@media(max-width:1050px){.crm-activity-filter{grid-template-columns:repeat(3,minmax(150px,1fr))}.crm-activity-filter .wide{grid-column:span 2}.crm-activity-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.crm-activity-filter{grid-template-columns:1fr 1fr}.crm-activity-filter .wide{grid-column:1/-1}.crm-activity-filter .crm-filter-actions{grid-column:1/-1}.crm-activity-main{grid-template-columns:42px minmax(0,1fr)}.crm-activity-main>b{display:none}.crm-activity-type{width:42px;height:42px}.crm-activity-quick-actions{justify-content:stretch}.crm-activity-quick-actions form,.crm-activity-quick-actions button{flex:1;width:100%}.crm-related-activity{grid-template-columns:38px minmax(0,1fr)}.crm-related-activity>em{grid-column:2;justify-self:start}}
@media(max-width:520px){.crm-activity-filter,.crm-activity-stats{grid-template-columns:1fr}.crm-activity-filter .wide{grid-column:auto}.crm-activity-meta{display:grid}.crm-activity-main{align-items:start}.crm-activity-badges{gap:.3rem}}

/* NovaCore v4.4.0 · Fase 15 CRM Productos y Cotizaciones */
.crm-product-filters,.crm-quote-filters{display:grid;grid-template-columns:minmax(240px,1.5fr) repeat(2,minmax(150px,.6fr)) auto;gap:.75rem;align-items:end}
.crm-product-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.85rem}.crm-product-card{display:grid;gap:.7rem;padding:1rem;border:1px solid var(--border);border-radius:17px;background:#fff}.crm-product-card.is-inactive{opacity:.65;background:#f8fafc}.crm-product-card header,.crm-product-card footer{display:flex;justify-content:space-between;gap:.7rem;align-items:center}.crm-product-card h2{margin:.15rem 0;font-size:.92rem}.crm-product-card p{margin:0;color:var(--muted);font-size:.7rem}.crm-product-price{font-size:1.05rem;font-weight:850}.crm-product-sku{font-size:.64rem;font-weight:850;color:#5b52c6;background:#eef0ff;padding:.25rem .48rem;border-radius:999px}
.crm-quote-stats{grid-template-columns:repeat(5,minmax(0,1fr))}.crm-quote-list{display:grid;gap:.7rem}.crm-quote-row{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(150px,.7fr) minmax(130px,.55fr) auto;gap:.85rem;align-items:center;padding:.9rem 1rem;border:1px solid var(--border);border-radius:16px;color:inherit;text-decoration:none;background:#fff}.crm-quote-row:hover{border-color:#c9ceff;box-shadow:0 10px 25px rgba(30,42,75,.07)}.crm-quote-row h2{margin:.12rem 0;font-size:.86rem}.crm-quote-row p,.crm-quote-row small{display:block;margin:0;color:var(--muted);font-size:.63rem}.crm-quote-value{font-size:.92rem;font-weight:850;text-align:right}.crm-quote-dates{text-align:right}
.crm-quote-header{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}.crm-quote-code{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.crm-quote-code h1{margin:.2rem 0}.crm-quote-total-card{min-width:220px;padding:1rem;border-radius:18px;background:linear-gradient(135deg,#272553,#6558d7);color:#fff;text-align:right}.crm-quote-total-card small,.crm-quote-total-card strong{display:block}.crm-quote-total-card strong{font-size:1.55rem;margin-top:.25rem}.crm-quote-layout{align-items:start}.crm-quote-items{overflow-x:auto}.crm-quote-items table,.crm-document-lines table{width:100%;border-collapse:collapse}.crm-quote-items th,.crm-quote-items td,.crm-document-lines th,.crm-document-lines td{padding:.72rem;border-bottom:1px solid var(--border);text-align:right;font-size:.68rem;vertical-align:top}.crm-quote-items th:nth-child(2),.crm-quote-items td:nth-child(2),.crm-document-lines th:nth-child(2),.crm-document-lines td:nth-child(2){text-align:left}.crm-quote-items td strong,.crm-quote-items td small,.crm-document-lines td strong,.crm-document-lines td small{display:block}.crm-quote-items td small,.crm-document-lines td small{margin-top:.15rem;color:var(--muted)}.crm-quote-item-actions{display:flex;gap:.3rem;justify-content:flex-end}.crm-quote-summary{display:grid;gap:.4rem;margin:1rem 0 0 auto;max-width:360px}.crm-quote-summary div{display:flex;justify-content:space-between;gap:1rem;padding:.35rem .2rem}.crm-quote-summary .grand{padding:.75rem;border-top:2px solid #dfe3ee;font-size:1rem;font-weight:850}.crm-quote-actions{display:grid;gap:.65rem}.crm-quote-actions form{display:grid;gap:.45rem}.crm-quote-actions label{display:grid;gap:.3rem}.crm-line-preview{display:flex;flex-direction:column;justify-content:center;padding:.75rem 1rem;border-radius:14px;background:#f3f2ff}.crm-line-preview small{color:var(--muted)}.crm-line-preview strong{font-size:1rem;color:#5148b5}.crm-quote-item-add,.crm-related-quotes{margin-top:1rem}.crm-quote-notes-grid{margin-top:1rem}.danger-text{color:#b42336!important}
.crm-quote-document-page{margin:0;background:#e9edf5}.crm-quote-document{width:min(980px,calc(100% - 2rem));margin:1rem auto;padding:2.2rem;background:#fff;box-shadow:0 18px 55px rgba(15,23,42,.15);min-height:calc(100vh - 2rem)}.crm-document-toolbar{display:flex;justify-content:space-between;gap:1rem;margin-bottom:1.5rem}.crm-document-head{display:flex;justify-content:space-between;gap:2rem;padding-bottom:1.3rem;border-bottom:2px solid #272553}.crm-document-head h1{font-size:2rem;margin:.25rem 0}.crm-document-head dl{display:grid;grid-template-columns:repeat(2,minmax(110px,1fr));gap:.55rem}.crm-document-head dt,.crm-document-parties small{font-size:.62rem;text-transform:uppercase;letter-spacing:.06em;color:#64748b}.crm-document-head dd{margin:.1rem 0;font-weight:800}.crm-document-parties{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin:1.3rem 0}.crm-document-parties>div{padding:1rem;border-radius:15px;background:#f7f8fc}.crm-document-parties h2{margin:.25rem 0}.crm-document-parties p{margin:.15rem 0;color:#64748b}.crm-document-message{padding:1rem;border-left:4px solid #6558d7;background:#fafaff}.crm-document-summary{display:grid;grid-template-columns:1fr minmax(280px,.55fr);gap:2rem;margin-top:1.5rem}.crm-document-summary dl{display:grid;gap:.35rem}.crm-document-summary dl div{display:flex;justify-content:space-between;gap:1rem}.crm-document-summary dd{margin:0;font-weight:750}.crm-document-summary .grand{padding-top:.7rem;border-top:2px solid #272553;font-size:1.05rem}.crm-document-footer{margin-top:2rem;padding-top:1rem;border-top:1px solid #dfe3ee;text-align:center;color:#64748b;font-size:.65rem}
@media(max-width:1050px){.crm-product-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.crm-quote-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.crm-quote-row{grid-template-columns:minmax(0,1fr) auto}.crm-quote-row>div:nth-child(2){grid-column:1}.crm-quote-dates{grid-column:2;grid-row:1/3}}
@media(max-width:720px){.crm-product-filters,.crm-quote-filters,.crm-product-grid,.crm-quote-stats{grid-template-columns:1fr}.crm-quote-row{grid-template-columns:1fr}.crm-quote-row>div:nth-child(2),.crm-quote-dates{grid-column:auto;grid-row:auto;text-align:left}.crm-quote-value{text-align:left}.crm-quote-header,.crm-document-head{display:grid}.crm-quote-total-card{width:100%}.crm-document-parties,.crm-document-summary{grid-template-columns:1fr}.crm-quote-document{width:100%;margin:0;padding:1rem;box-shadow:none}.crm-document-head dl{grid-template-columns:1fr 1fr}}
@media print{.no-print{display:none!important}.crm-quote-document-page{background:#fff}.crm-quote-document{width:100%;margin:0;padding:0;box-shadow:none}.crm-document-lines table{font-size:9pt}.crm-document-footer{position:fixed;bottom:0;left:0;right:0}}
.crm-quote-filter{display:grid;grid-template-columns:minmax(240px,1.5fr) minmax(150px,.65fr) minmax(170px,.75fr) auto;gap:.75rem;align-items:end}.crm-quote-filter .wide{min-width:0}.crm-quote-filter label{display:grid;gap:.35rem}.crm-quote-filter label>span{font-size:.68rem;font-weight:750;color:#566177}.crm-quote-filter input,.crm-quote-filter select{width:100%}.crm-quote-filter .crm-filter-actions{display:flex;gap:.45rem}
.crm-quote-card{padding:0;overflow:hidden}.crm-quote-card-main{display:grid;grid-template-columns:minmax(0,1fr) auto 24px;gap:1rem;align-items:center;padding:1rem;color:inherit;text-decoration:none}.crm-quote-card-main h2{margin:.3rem 0 .15rem;font-size:.92rem}.crm-quote-card-main p,.crm-quote-card-main small{color:var(--muted);font-size:.64rem}.crm-quote-card-main>div:first-child>small{margin-left:.45rem}.crm-quote-total{text-align:right}.crm-quote-total small,.crm-quote-total strong,.crm-quote-total span{display:block}.crm-quote-total strong{font-size:1rem}.crm-quote-total span{margin-top:.18rem;color:var(--muted);font-size:.6rem}
.crm-quote-detail-grid{align-items:start}.crm-quote-side-stack{display:grid;gap:1rem}.crm-quote-lines-panel{min-width:0}.crm-quote-lines{width:100%;border-collapse:collapse}.crm-quote-lines th,.crm-quote-lines td{padding:.7rem;border-bottom:1px solid var(--border);font-size:.67rem;vertical-align:top;text-align:right}.crm-quote-lines th:nth-child(2),.crm-quote-lines td:nth-child(2){text-align:left}.crm-quote-lines td strong,.crm-quote-lines td small{display:block}.crm-quote-lines td small{margin-top:.15rem;color:var(--muted)}.crm-quote-totals{display:grid;gap:.35rem;width:min(100%,360px);margin:1rem 0 0 auto}.crm-quote-totals>div{display:flex;justify-content:space-between;gap:1rem;padding:.35rem .2rem}.crm-quote-totals .grand{margin-top:.25rem;padding:.75rem .2rem;border-top:2px solid #dfe3ee;font-size:1rem}.crm-quote-actions-panel form{display:grid;gap:.45rem;margin-bottom:.65rem}.crm-quote-actions-panel form:last-child{margin-bottom:0}.crm-quote-actions-panel label{display:grid;gap:.3rem}.crm-quote-actions-panel textarea{width:100%}.crm-product-table small{display:block;margin-top:.16rem;color:var(--muted)}.crm-product-table form{display:inline}.crm-product-form,.crm-quote-form,.crm-quote-item-form{padding:0;overflow:hidden}.crm-product-form>.form-grid,.crm-quote-item-form>.form-grid,.crm-quote-form>section{padding:1rem 1.15rem}.crm-quote-form>section{border-bottom:1px solid var(--border)}.crm-product-form>.form-actions,.crm-quote-form>.form-actions,.crm-quote-item-form>.form-actions{padding:1rem 1.15rem}
@media(max-width:850px){.crm-quote-filter{grid-template-columns:1fr 1fr}.crm-quote-filter .wide{grid-column:1/-1}.crm-quote-filter .crm-filter-actions{grid-column:1/-1}.crm-quote-card-main{grid-template-columns:minmax(0,1fr) auto}.crm-quote-card-main>b{display:none}}
@media(max-width:560px){.crm-quote-filter{grid-template-columns:1fr}.crm-quote-filter .wide,.crm-quote-filter .crm-filter-actions{grid-column:auto}.crm-quote-filter .crm-filter-actions{display:grid;grid-template-columns:1fr 1fr}.crm-quote-card-main{grid-template-columns:1fr}.crm-quote-total{text-align:left}.crm-quote-lines th:nth-child(4),.crm-quote-lines td:nth-child(4),.crm-quote-lines th:nth-child(5),.crm-quote-lines td:nth-child(5),.crm-quote-lines th:nth-child(6),.crm-quote-lines td:nth-child(6){display:none}}

/* NovaCore v4.5.0 · Fase 16 CRM Vista 360, Documentos e Indicadores */
.crm-360-hero{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,.65fr);gap:1rem;margin-bottom:1rem}.crm-health-card,.crm-360-next{display:flex;gap:1rem;align-items:center;padding:1.1rem;border:1px solid var(--border);border-radius:20px;background:#fff}.crm-health-card h2,.crm-360-next h2{margin:.2rem 0}.crm-health-card p,.crm-360-next p{margin:.15rem 0;color:var(--muted);font-size:.7rem}.crm-health-ring{--score:0;display:grid;place-items:center;align-content:center;width:92px;height:92px;flex:0 0 92px;border-radius:50%;background:radial-gradient(circle at center,#fff 59%,transparent 60%),conic-gradient(#16a34a calc(var(--score)*1%),#e8edf4 0)}.health-watch .crm-health-ring{background:radial-gradient(circle at center,#fff 59%,transparent 60%),conic-gradient(#d97706 calc(var(--score)*1%),#e8edf4 0)}.health-risk .crm-health-ring{background:radial-gradient(circle at center,#fff 59%,transparent 60%),conic-gradient(#dc2626 calc(var(--score)*1%),#e8edf4 0)}.crm-health-ring strong{font-size:1.45rem}.crm-health-ring small{color:var(--muted)}.crm-360-next{display:grid;align-content:center}.crm-360-next>a{display:grid;gap:.2rem;color:inherit;text-decoration:none}.crm-360-next>a span{color:var(--muted);font-size:.68rem}.crm-360-stats{grid-template-columns:repeat(5,minmax(0,1fr))}.crm-360-grid{align-items:start}.crm-money-grid,.crm-insight-money{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem}.crm-money-grid article,.crm-insight-money article{display:grid;gap:.3rem;padding:1rem;border:1px solid var(--border);border-radius:16px;background:linear-gradient(145deg,#fff,#f7f8ff)}.crm-money-grid small,.crm-insight-money small{color:var(--muted);font-size:.65rem;text-transform:uppercase;letter-spacing:.04em}.crm-money-grid strong,.crm-insight-money strong{display:block;font-size:.94rem}.crm-360-side-stack{display:grid;gap:1rem}.crm-360-timeline{display:grid}.crm-360-timeline article{display:grid;grid-template-columns:34px minmax(0,1fr);gap:.75rem;padding:.8rem 0;border-bottom:1px solid var(--border)}.crm-360-timeline article:last-child{border-bottom:0}.crm-timeline-dot{display:grid;place-items:center;width:30px;height:30px;border-radius:10px;background:#eef0ff;color:#5a4fc4;font-weight:850}.crm-360-timeline article.kind-activity .crm-timeline-dot{background:#e8f8f3;color:#087c5a}.crm-360-timeline article.kind-document .crm-timeline-dot{background:#fff4dd;color:#a05b00}.crm-360-timeline small,.crm-360-timeline p{display:block;margin:0;color:var(--muted);font-size:.64rem}.crm-360-timeline a{display:block;margin:.12rem 0;color:inherit;text-decoration:none}.crm-document-mini-list{display:grid}.crm-document-mini-list>a{display:grid;grid-template-columns:28px minmax(0,1fr) 16px;gap:.65rem;align-items:center;padding:.65rem 0;border-bottom:1px solid var(--border);color:inherit;text-decoration:none}.crm-document-mini-list>a:last-child{border-bottom:0}.crm-document-mini-list strong,.crm-document-mini-list small{display:block}.crm-document-mini-list small{color:var(--muted);font-size:.62rem}
.crm-insight-stats{grid-template-columns:repeat(4,minmax(0,1fr))}.crm-insight-money{margin-bottom:1rem}.crm-insight-grid{align-items:start}.crm-insight-bars{display:grid;gap:.9rem}.crm-insight-bars article{display:grid;gap:.35rem}.crm-insight-bars header,.crm-insight-bars footer{display:flex;justify-content:space-between;gap:.7rem;align-items:center}.crm-insight-bars header span,.crm-insight-bars footer{font-size:.64rem;color:var(--muted)}.crm-bar{height:10px;overflow:hidden;border-radius:999px;background:#edf0f5}.crm-bar i{display:block;height:100%;min-width:5px;border-radius:inherit;background:linear-gradient(90deg,#6558d7,#3b82f6)}.crm-insight-statuses{display:grid;gap:.55rem}.crm-insight-statuses>div{display:flex;justify-content:space-between;gap:.75rem;padding:.7rem .8rem;border-radius:12px;background:#f7f8fc}.crm-insight-statuses span{font-size:.7rem;color:var(--muted)}.data-table td small{display:block;margin-top:.16rem;color:var(--muted)}
.crm-document-filters{display:grid;grid-template-columns:minmax(230px,1.4fr) minmax(170px,.8fr) minmax(160px,.65fr) minmax(120px,.45fr) auto;gap:.7rem;align-items:end}.crm-document-filters label{display:grid;gap:.35rem}.crm-document-filters label>span{font-size:.66rem;font-weight:750;color:#566177}.crm-document-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.85rem;margin-top:1rem}.crm-document-card{display:grid;gap:.8rem;padding:1rem;border:1px solid var(--border);border-radius:18px;background:#fff}.crm-document-card.is-archived{opacity:.68;background:#f8fafc}.crm-document-card header,.crm-document-card footer{display:flex;justify-content:space-between;gap:.5rem;align-items:center}.crm-document-card footer{justify-content:flex-start}.crm-document-card h2{margin:.22rem 0;font-size:.9rem}.crm-document-card p{margin:0;color:var(--muted);font-size:.67rem;min-height:2.1em}.crm-file-extension{display:grid;place-items:center;min-width:44px;height:32px;padding:0 .4rem;border-radius:10px;background:#edeaff;color:#574ac3;font-size:.65rem;font-weight:900}.crm-document-card dl{display:grid;gap:.35rem;margin:0}.crm-document-card dl div{display:flex;justify-content:space-between;gap:.65rem}.crm-document-card dt,.crm-document-card dd{font-size:.64rem}.crm-document-card dt{color:var(--muted)}.crm-document-card dd{margin:0;text-align:right}.crm-document-card form{display:inline}.crm-document-form{padding:0;overflow:hidden}.crm-document-form>section{padding:1rem 1.15rem;border-bottom:1px solid var(--border)}.crm-document-form>.form-actions{padding:1rem 1.15rem}
@media(max-width:1100px){.crm-360-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.crm-money-grid,.crm-insight-money{grid-template-columns:repeat(2,minmax(0,1fr))}.crm-document-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.crm-document-filters{grid-template-columns:1fr 1fr}.crm-document-filters .wide,.crm-document-filters .crm-filter-actions{grid-column:1/-1}}
@media(max-width:760px){.crm-360-hero,.crm-money-grid,.crm-insight-money,.crm-insight-stats,.crm-360-stats,.crm-document-grid{grid-template-columns:1fr}.crm-health-card{align-items:flex-start}.crm-health-ring{width:76px;height:76px;flex-basis:76px}.crm-document-filters{grid-template-columns:1fr}.crm-document-filters .wide,.crm-document-filters .crm-filter-actions{grid-column:auto}.crm-document-filters .crm-filter-actions{display:grid;grid-template-columns:1fr 1fr}}

/* NovaCore v4.6.0 · Fase 17 CRM Automatizaciones e IA comercial */
.crm-inline-process-form{display:flex;align-items:center;gap:.75rem;margin-top:.8rem;padding-top:.8rem;border-top:1px solid var(--border)}.crm-inline-process-form small{color:var(--muted)}
.crm-automation-form{display:grid;gap:.25rem}.crm-automation-form code{padding:.1rem .3rem;border-radius:6px;background:#eef0ff;color:#4f46e5}.form-grid.three{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem}.form-grid.three label{display:grid;gap:.35rem}.crm-copilot-note{display:flex;align-items:center;gap:1rem}.crm-copilot-note p{margin:0;color:var(--muted)}
.crm-copilot-grid{display:grid;gap:.8rem}.crm-copilot-card{display:grid;grid-template-columns:76px 1fr;gap:1rem;padding:1rem;border:1px solid var(--border);border-left:5px solid #8b5cf6;border-radius:17px;background:#fff}.crm-copilot-card.band-hot{border-left-color:#16a34a}.crm-copilot-card.band-warm{border-left-color:#6366f1}.crm-copilot-card.band-developing{border-left-color:#f59e0b}.crm-copilot-card.band-at_risk{border-left-color:#dc2626}.crm-score-ring{display:grid;place-items:center;align-content:center;width:68px;height:68px;border:5px solid #e8e8ff;border-radius:50%;background:#fafaff}.crm-score-ring strong{font-size:1.25rem}.crm-score-ring span{font-size:.65rem;color:var(--muted)}.crm-copilot-main{min-width:0}.crm-copilot-title{display:flex;justify-content:space-between;gap:.7rem}.crm-copilot-title a{color:var(--text);font-weight:850;text-decoration:none}.crm-copilot-title small{display:block;margin-top:.18rem;color:var(--muted)}.crm-copilot-main>p{margin:.65rem 0;color:#374151}.crm-risk-list{display:flex;flex-wrap:wrap;gap:.4rem}.crm-risk-list span{padding:.25rem .5rem;border-radius:999px;background:#fff1f2;color:#a5182d;font-size:.7rem;font-weight:700}.crm-risk-list .positive{background:#eaf8ef;color:#16704e}.crm-copilot-card details{margin-top:.7rem;padding:.6rem;border-radius:10px;background:#f8fafc}.crm-copilot-card summary{cursor:pointer;font-weight:750;color:#5b5bd6}.crm-copilot-card blockquote{margin:.5rem 0 0;padding:.65rem;border-left:3px solid #8b5cf6;background:#fff}.crm-ai-action{display:flex;align-items:center;justify-content:flex-end;gap:.7rem;margin-top:.8rem}.crm-ai-action label{display:flex;align-items:center;gap:.35rem;color:var(--muted);font-size:.75rem}
@media(max-width:850px){.form-grid.three{grid-template-columns:1fr}.crm-copilot-card{grid-template-columns:58px 1fr}.crm-score-ring{width:54px;height:54px}.crm-ai-action{align-items:flex-start;flex-direction:column}.crm-copilot-title{flex-direction:column}.crm-copilot-note{align-items:flex-start;flex-direction:column}}


/* Fase 18 · Validación estable CRM */
.crm-release-checks{display:grid;gap:.75rem}.crm-release-check{display:grid;grid-template-columns:2rem 1fr;gap:.8rem;padding:1rem;border:1px solid var(--border-color);border-radius:14px;background:var(--surface)}.crm-release-check>span{display:grid;place-items:center;width:2rem;height:2rem;border-radius:999px;font-weight:800}.crm-release-check.pass>span{background:rgba(34,197,94,.14);color:#15803d}.crm-release-check.warning>span{background:rgba(245,158,11,.16);color:#b45309}.crm-release-check.blocker>span{background:rgba(239,68,68,.14);color:#b91c1c}.crm-release-check small{display:block;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:700}.crm-release-check strong{display:block;margin:.15rem 0}.crm-release-check p{margin:0;color:var(--muted)}

/* NovaCore Asistencia · Fase 19 */
.module-attendance .main-content{background:linear-gradient(180deg,#f8fafc 0,#f4f7fb 100%)}
.attendance-page{--attendance-ink:#172033;--attendance-muted:#667085;--attendance-line:#e4e8f0}
.module-subnav.attendance-subnav{display:flex;gap:8px;align-items:center;overflow:auto;padding:10px 4px 16px;margin-bottom:4px}
.attendance-subnav a{white-space:nowrap;text-decoration:none;color:#475467;font-weight:700;font-size:.88rem;padding:9px 13px;border:1px solid transparent;border-radius:12px}
.attendance-subnav a:hover,.attendance-subnav a.active{color:#5b3fd1;background:#f1edff;border-color:#ddd3ff}
.attendance-hero{background:radial-gradient(circle at 90% 10%,rgba(124,92,255,.18),transparent 33%),linear-gradient(135deg,#fff,#f7f5ff)}
.attendance-clock-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);gap:20px}
.attendance-clock-card,.attendance-schedule-card{min-height:300px}
.attendance-clock-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}
.attendance-clock-head h2{font-size:3.4rem;letter-spacing:-.06em;margin:5px 0 0;color:var(--attendance-ink)}
.attendance-clock-head p{margin:0;color:var(--attendance-muted)}
.attendance-state{display:inline-flex;align-items:center;gap:7px;border-radius:999px;padding:8px 11px;font-size:.78rem;font-weight:800;background:#f2f4f7;color:#475467}
.attendance-state:before{content:"";width:8px;height:8px;border-radius:50%;background:#98a2b3}
.attendance-state.state-open{background:#ecfdf3;color:#027a48}.attendance-state.state-open:before{background:#12b76a;box-shadow:0 0 0 5px rgba(18,183,106,.12)}
.attendance-state.state-closed{background:#eef4ff;color:#3538cd}.attendance-state.state-closed:before{background:#6172f3}
.attendance-clock-points{display:grid;grid-template-columns:1fr auto 1fr;gap:16px;align-items:center;margin:30px 0;padding:20px;border:1px solid var(--attendance-line);border-radius:18px;background:#fbfcfe}
.attendance-clock-points div{text-align:center}.attendance-clock-points small{display:block;color:var(--attendance-muted);font-weight:700;margin-bottom:4px}.attendance-clock-points strong{font-size:1.75rem;color:var(--attendance-ink)}.attendance-clock-points>span{color:#98a2b3}
.attendance-clock-actions{display:flex;justify-content:center}.attendance-primary-action{min-width:220px;min-height:48px;font-size:1rem}
.attendance-security-note{text-align:center;color:#7a8293;font-size:.78rem;margin:15px auto 0;max-width:560px}
.attendance-schedule-card h2{margin:7px 0;color:var(--attendance-ink)}
.attendance-schedule-range{display:flex;align-items:center;justify-content:center;gap:14px;padding:24px 8px;margin:20px 0;border-radius:18px;background:linear-gradient(135deg,#f4f0ff,#eef4ff)}
.attendance-schedule-range strong{font-size:1.7rem;color:#5336cc}.attendance-schedule-range span{color:#98a2b3}
.compact-definition-list{display:grid;gap:10px;margin:0}.compact-definition-list div,.attendance-summary-list div{display:flex;justify-content:space-between;gap:16px;padding:11px 0;border-bottom:1px solid var(--attendance-line)}.compact-definition-list dt,.attendance-summary-list dt{color:var(--attendance-muted)}.compact-definition-list dd,.attendance-summary-list dd{margin:0;font-weight:800;color:var(--attendance-ink)}
.attendance-stats{grid-template-columns:repeat(5,minmax(150px,1fr))}
.attendance-dashboard-grid,.attendance-admin-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(290px,.7fr);gap:20px}
.attendance-record-list{display:grid}.attendance-record-row{display:grid;grid-template-columns:56px 1fr auto;gap:14px;align-items:center;padding:13px 0;border-bottom:1px solid var(--attendance-line)}.attendance-record-row time{font-weight:900;color:#667085}.attendance-record-row div{display:grid;gap:2px}.attendance-record-row small{color:var(--attendance-muted)}
.attendance-summary-list{margin:0}
.status-pill.status-scheduled{background:#f2f4f7;color:#475467}.status-pill.status-present,.status-pill.status-completed{background:#ecfdf3;color:#027a48}.status-pill.status-late,.status-pill.status-late_early_leave,.status-pill.status-warning{background:#fffaeb;color:#b54708}.status-pill.status-early_leave,.status-pill.status-incomplete{background:#fff4ed;color:#c4320a}.status-pill.status-absent{background:#fef3f2;color:#b42318}.status-pill.status-rest_day{background:#eef4ff;color:#3538cd}
.attendance-filter{display:flex;align-items:end;gap:12px;flex-wrap:wrap}.attendance-filter label{display:grid;gap:5px;min-width:145px;flex:1}.attendance-filter label span{font-size:.75rem;color:#667085;font-weight:800}.attendance-filter input,.attendance-filter select{min-height:42px}
.attendance-table td small{display:block;color:#667085;margin-top:3px}.attendance-table .table-actions{display:flex;align-items:center;gap:8px}.attendance-table .table-actions form{margin:0}.attendance-table .table-actions button{border:0;background:none;padding:0}.approved-mark{color:#027a48!important;font-weight:800}
.attendance-incidents-card{align-self:start}.attendance-incident-list{display:grid}.attendance-incident-list>a{display:grid;grid-template-columns:36px 1fr;gap:12px;align-items:center;text-decoration:none;color:inherit;padding:13px 0;border-bottom:1px solid var(--attendance-line)}.attendance-incident-list>a>span{display:grid;place-items:center;width:32px;height:32px;border-radius:10px;background:#fffaeb;color:#b54708;font-weight:900}.attendance-incident-list small{display:block;color:#667085;margin-top:3px}
.attendance-schedule-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.attendance-schedule-item footer{display:flex;gap:15px;align-items:center;flex-wrap:wrap;padding-top:15px;margin-top:15px;border-top:1px solid var(--attendance-line);color:#667085;font-size:.82rem}.attendance-schedule-item footer a{margin-left:auto}
.attendance-week-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px;margin-top:18px}.attendance-week-grid div{display:grid;gap:4px;text-align:center;padding:10px 4px;border-radius:11px;background:#f7f8fb}.attendance-week-grid strong{font-size:.75rem;color:#344054}.attendance-week-grid span{font-size:.72rem;color:#667085}.attendance-week-grid .rest{background:#fafafa}.attendance-week-grid .rest span{color:#98a2b3}
.attendance-days-editor{border:1px solid var(--attendance-line);border-radius:16px;overflow:hidden}.attendance-days-editor>header{display:flex;justify-content:space-between;gap:20px;padding:14px 16px;background:#f7f8fb}.attendance-days-editor>header span{color:#667085;font-size:.8rem}.attendance-day-editor{display:grid;grid-template-columns:1.2fr repeat(3,1fr);gap:12px;align-items:end;padding:12px 16px;border-top:1px solid var(--attendance-line)}.attendance-day-editor label{display:grid;gap:5px}.attendance-day-editor label>span{font-size:.75rem;color:#667085;font-weight:800}.attendance-day-editor .checkbox-label{display:flex;align-items:center;gap:9px;padding-bottom:10px}.attendance-day-editor .checkbox-label span{font-size:.9rem;color:#344054}
.attendance-assignment-grid{display:grid;grid-template-columns:minmax(280px,.55fr) minmax(0,1.45fr);gap:20px;align-items:start}.attendance-adjust-summary{display:flex;gap:10px;flex-wrap:wrap}.attendance-adjust-summary span{padding:8px 10px;border-radius:9px;background:#f2f4f7;color:#475467;font-size:.78rem;font-weight:700}
@media(max-width:1100px){.attendance-stats{grid-template-columns:repeat(3,1fr)}.attendance-schedule-list{grid-template-columns:1fr}.attendance-week-grid{grid-template-columns:repeat(4,1fr)}}
@media(max-width:820px){.attendance-clock-grid,.attendance-dashboard-grid,.attendance-admin-grid,.attendance-assignment-grid{grid-template-columns:1fr}.attendance-stats{grid-template-columns:repeat(2,1fr)}.attendance-clock-head h2{font-size:2.8rem}.attendance-day-editor{grid-template-columns:1fr 1fr}.attendance-day-editor .checkbox-label{grid-column:1/-1}.attendance-week-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:540px){.attendance-stats{grid-template-columns:1fr}.attendance-clock-points{padding:14px}.attendance-filter>*{width:100%}.attendance-filter .icon-button{width:42px}.attendance-day-editor{grid-template-columns:1fr}.attendance-days-editor>header{display:grid}.attendance-week-grid{grid-template-columns:1fr 1fr}.attendance-schedule-item footer a{margin-left:0;width:100%}}

/* NovaCore Asistencia · Fase 20 geolocalización */
.attendance-gps-status{margin-top:12px;padding:10px 12px;border:1px solid #e4e7ec;border-radius:10px;background:#f8fafc;color:#475467;font-size:.84rem;font-weight:650}.attendance-gps-status[data-state="loading"]{background:#eff8ff;border-color:#b2ddff;color:#175cd3}.attendance-gps-status[data-state="success"]{background:#ecfdf3;border-color:#abefc6;color:#067647}.attendance-gps-status[data-state="error"]{background:#fef3f2;border-color:#fecdca;color:#b42318}.attendance-authorized-sites{margin-top:18px;padding-top:14px;border-top:1px solid #eaecf0;display:grid;gap:4px}.attendance-authorized-sites small{color:#667085}.attendance-authorized-sites strong{font-size:.9rem}.attendance-policy-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.check-row{display:flex!important;align-items:flex-start;gap:10px;padding:12px;border:1px solid #e4e7ec;border-radius:10px;background:#fff}.check-row input{width:auto!important;margin-top:2px}.attendance-geo-cell{display:grid;gap:5px;min-width:190px}.attendance-geo-cell .status-pill{width:max-content}.geo-verified{background:#ecfdf3;color:#067647}.geo-outside,.geo-invalid{background:#fef3f2;color:#b42318}.geo-low_accuracy,.geo-remote_allowed,.geo-missing,.geo-no_locations{background:#fffaeb;color:#b54708}.geo-disabled{background:#f2f4f7;color:#475467}.attendance-location-form code,.attendance-table code{font-size:.78rem}.field-span-2{grid-column:1/-1}@media(max-width:760px){.attendance-policy-options{grid-template-columns:1fr}.attendance-geo-cell{min-width:150px}}

.attendance-geo-audit-table code {
  white-space: nowrap;
  font-size: .78rem;
}
.attendance-geo-audit-table .status-pill {
  white-space: nowrap;
}
.attendance-geo-audit-table td {
  vertical-align: top;
}

/* NovaCore Asistencia · Fase 21 biometría */
.attendance-face-dialog{border:0;background:transparent;padding:0;max-width:min(94vw,620px);width:100%}.attendance-face-dialog::backdrop{background:rgba(16,24,40,.72);backdrop-filter:blur(5px)}.attendance-face-dialog-card{background:#fff;border-radius:18px;padding:22px;display:grid;gap:18px;box-shadow:0 24px 80px rgba(16,24,40,.28)}.attendance-camera-frame{position:relative;overflow:hidden;border-radius:18px;background:#101828;aspect-ratio:1/1;max-height:480px}.attendance-camera-frame video{width:100%;height:100%;object-fit:cover;transform:scaleX(-1)}.attendance-face-guide{position:absolute;inset:12%;border:3px solid rgba(255,255,255,.9);border-radius:48% 48% 44% 44%;box-shadow:0 0 0 999px rgba(16,24,40,.25);pointer-events:none}.biometric-enrollment-grid{display:grid;grid-template-columns:minmax(260px,420px) 1fr;gap:22px;align-items:start}.biometric-previews{display:grid;grid-template-columns:repeat(3,minmax(70px,1fr));gap:10px}.biometric-previews img{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:12px;border:1px solid #d0d5dd}.face-matched,.face-active{background:#ecfdf3;color:#067647}.face-mismatch,.face-rejected,.face-locked,.face-invalid_capture{background:#fef3f2;color:#b42318}.face-pending_approval,.face-poor_quality,.face-missing,.face-no_consent,.face-not_enrolled,.face-engine_unavailable{background:#fffaeb;color:#b54708}.face-disabled,.face-revoked{background:#f2f4f7;color:#475467}.inline-review-form{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.inline-review-form input{min-width:180px}.button-small{padding:7px 10px;font-size:.78rem}@media(max-width:820px){.biometric-enrollment-grid{grid-template-columns:1fr}.attendance-face-dialog-card{padding:16px}.biometric-previews{grid-template-columns:repeat(3,1fr)}}
.face-manual_override{background:#eff8ff;color:#175cd3}

/* Attendance Phase 22: liveness challenge */
.attendance-liveness-countdown{display:block;min-height:1.5rem;margin-top:.35rem;font-size:1.25rem;color:var(--accent,#6d5dfc)}
.attendance-liveness-progress{display:grid;grid-template-columns:repeat(3,1fr);gap:.45rem;margin:.75rem 0}
.attendance-liveness-progress span{height:.42rem;border-radius:999px;background:rgba(110,105,130,.18);transition:background .2s ease,transform .2s ease}
.attendance-liveness-progress span.is-active{background:rgba(109,93,252,.55);transform:scaleY(1.35)}
.attendance-liveness-progress span.is-complete{background:rgba(32,170,116,.72)}
.attendance-policy-note{padding:1rem;border:1px solid rgba(109,93,252,.18);border-radius:14px;background:rgba(109,93,252,.05)}
.attendance-policy-note p{margin:.35rem 0 0;color:var(--text-muted,#686878);line-height:1.55}

/* Attendance Phase 23: permissions, leave and justifications */
.leave-page .attendance-hero{background:linear-gradient(135deg,#eef2ff,#f7f5ff 52%,#ecfeff)}
.leave-balance-grid .stat-card strong{font-size:clamp(1.55rem,3vw,2.25rem)}
.leave-detail-grid{grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr)}
.leave-config-grid{grid-template-columns:minmax(340px,.85fr) minmax(0,1.15fr)}
.checkbox-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 16px;padding:14px;border:1px solid var(--attendance-line);border-radius:14px;background:#fafbff}
.checkbox-grid label,.checkbox-row{display:flex;align-items:center;gap:9px;color:var(--attendance-ink);font-weight:650}
.timeline-list{display:grid;gap:12px}
.timeline-item{position:relative;padding:14px 16px 14px 20px;border:1px solid var(--attendance-line);border-radius:14px;background:#fff}
.timeline-item::before{content:"";position:absolute;left:8px;top:18px;width:5px;height:32px;border-radius:999px;background:#7868ff}
.timeline-item span,.timeline-item p{display:block;margin-top:4px;color:var(--attendance-muted)}
.attachment-list{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 18px}
.leave-decision-form{margin-top:20px;padding-top:18px;border-top:1px solid var(--attendance-line)}
.status-pill.leave-submitted,.status-pill.leave-pending_supervisor,.status-pill.leave-pending_hr{background:#fff7d6;color:#8b5a00}
.status-pill.leave-approved{background:#dcfce7;color:#166534}
.status-pill.leave-rejected{background:#fee2e2;color:#991b1b}
.status-pill.leave-cancelled{background:#eef2f6;color:#475467}
.notice-card.danger{border-color:#fecaca;background:#fff1f2;color:#881337}
.form-grid.three-columns{grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width:900px){.leave-detail-grid,.leave-config-grid{grid-template-columns:1fr}.form-grid.three-columns{grid-template-columns:1fr}.checkbox-grid{grid-template-columns:1fr}}

/* WP31C · capacidad y Web Vitals */
.metric-strip { display: flex; flex-wrap: wrap; gap: .65rem; margin-top: 1rem; }
.metric-strip span { border: 1px solid var(--border); border-radius: 12px; padding: .65rem .8rem; background: var(--surface-soft); color: var(--muted); font-size: .75rem; }
.metric-strip strong { color: var(--text); margin-right: .25rem; }
.capacity-list { display: grid; gap: .55rem; margin: .85rem 0 0; }
.capacity-list div { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding-bottom: .55rem; border-bottom: 1px solid var(--border); }
.capacity-list dt { color: var(--muted); font-size: .75rem; }
.capacity-list dd { margin: 0; font-weight: 850; }
/* Fase 34 WP34A · aceptación funcional Enterprise */
.form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.acceptance-card-footer{display:flex;justify-content:space-between;gap:.6rem;flex-wrap:wrap;margin-top:.8rem;padding-top:.7rem;border-top:1px solid var(--border);font-size:.72rem;color:var(--muted)}.inline-form{display:inline-flex;margin-left:.7rem}.risk-chip,.evidence-chip{display:inline-flex;align-items:center;padding:.26rem .52rem;border-radius:999px;font-size:.68rem;font-weight:800}.risk-chip.critical{background:#feecec;color:#ad2430}.risk-chip.high{background:#fff0e2;color:#9c4a08}.risk-chip.medium{background:#fff5db;color:#805b05}.risk-chip.low{background:#e8f7f0;color:#166a4e}.evidence-chip{background:#eaf0ff;color:#415ac2}.evidence-chip.compact{padding:.18rem .42rem}.acceptance-matrix-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}.acceptance-matrix-grid article{display:flex;align-items:center;justify-content:space-between;gap:.8rem;padding:.8rem;border:1px solid var(--border);border-radius:13px;background:#fff}.acceptance-matrix-grid article>div:first-child{display:grid;gap:.16rem}.acceptance-matrix-grid article span{color:var(--muted);font-size:.72rem}.matrix-counts{display:flex;gap:.35rem}.matrix-counts b,.matrix-legend b{display:grid;place-items:center;min-width:27px;height:27px;padding:0 .35rem;border-radius:8px;font-size:.72rem}.matrix-counts .passed,.matrix-legend .passed{background:#e7f8f0;color:#157454}.matrix-counts .failed,.matrix-legend .failed{background:#feecec;color:#ba3038}.matrix-counts .blocked,.matrix-legend .blocked{background:#fff0e2;color:#a64e08}.matrix-counts .pending,.matrix-legend .pending{background:#eef1f5;color:#667085}.matrix-legend{display:flex;gap:.8rem;align-items:center;flex-wrap:wrap;margin-top:.8rem;color:var(--muted);font-size:.72rem}.matrix-legend span{display:flex;align-items:center;gap:.3rem}.matrix-legend b{min-width:12px;width:12px;height:12px;padding:0}.gate-checks{display:flex;gap:.45rem;flex-wrap:wrap;margin:.65rem 0}.gate-checks span{padding:.28rem .5rem;border-radius:8px;background:rgba(255,255,255,.6);font-size:.7rem}.scenario-card details code{display:inline-block;margin-top:.5rem;padding:.25rem .4rem;border-radius:6px;background:#eef1f6;color:#44506a;font-size:.7rem;word-break:break-all}
@media(max-width:800px){.form-grid.three,.acceptance-matrix-grid{grid-template-columns:1fr}.inline-form{display:flex;margin:.7rem 0 0}.acceptance-matrix-grid article{align-items:flex-start}}


/* NovaCore 7.6.0 · Messenger compacto y sincronizado */
.messenger-menu-wrap{position:relative;display:flex;align-items:center}
.messenger-bell{position:relative;border:0;cursor:pointer}
.messenger-bell.active{color:var(--primary);background:#eef0ff;box-shadow:0 0 0 3px rgba(91,103,241,.12)}
.messenger-bell b{position:absolute;top:-5px;right:-5px;min-width:18px;height:18px;padding:0 4px;border-radius:999px;background:#e5484d;color:#fff;font-size:10px;line-height:18px;text-align:center}
.messenger-popover{right:-8px}
.messenger-popover-head{background:linear-gradient(135deg,#f9fbff,#eeefff)}
.messenger-popover-item{grid-template-columns:42px minmax(0,1fr) auto}
.messenger-popover-avatar{width:39px;height:39px;display:grid;place-items:center;border-radius:13px;background:linear-gradient(135deg,#5b67f1,#7b58d7);color:#fff;font-size:.65rem;font-weight:850;letter-spacing:.02em;text-transform:uppercase;box-shadow:0 7px 16px rgba(91,103,241,.18)}
.messenger-unread-count{min-width:21px;height:21px;display:grid;place-items:center;padding:0 .3rem;border-radius:999px;background:#e5484d;color:#fff;font-size:.54rem;font-weight:800}
@media(max-width:640px){
  .messenger-popover{position:fixed;top:calc(var(--topbar-height,64px) - 2px);right:.55rem;left:.55rem;width:auto}
  .messenger-popover::before{right:96px}
  .messenger-popover-item{grid-template-columns:40px minmax(0,1fr) auto}
  .messenger-unread-count{grid-column:auto}
}

/* Calendar Enterprise · Phase 39 WP39A */
.calendar-page,.calendar-form-page,.calendar-detail-page{display:grid;gap:1rem}.calendar-hero,.calendar-detail-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.calendar-hero h1,.calendar-detail-hero h1{margin:.25rem 0;font-size:clamp(1.45rem,3vw,2.25rem)}.calendar-hero p,.calendar-detail-hero p{margin:0;color:var(--muted)}.calendar-shell{overflow:hidden}.calendar-toolbar{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:1rem;padding:.8rem;border-bottom:1px solid var(--border)}.calendar-navigation,.calendar-view-switch{display:flex;align-items:center;gap:.4rem}.calendar-view-switch{justify-content:flex-end}.calendar-view-switch a{padding:.45rem .7rem;border-radius:9px;color:var(--muted);font-size:.65rem;font-weight:800;text-decoration:none}.calendar-view-switch a.active{background:#eceeff;color:var(--primary)}.calendar-period{text-align:center;font-weight:900}.calendar-weekdays,.calendar-month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.calendar-weekdays{border-bottom:1px solid var(--border);background:#f8f9fc}.calendar-weekdays span{padding:.55rem;text-align:center;color:var(--muted);font-size:.6rem;font-weight:900}.calendar-day{min-height:132px;border-right:1px solid var(--border);border-bottom:1px solid var(--border);background:#fff}.calendar-day:nth-child(7n){border-right:0}.calendar-day.outside{background:#fafbfc}.calendar-day.today{box-shadow:inset 0 0 0 2px #8d95ff}.calendar-day>header{display:flex;justify-content:space-between;align-items:center;padding:.4rem .48rem}.calendar-day>header>a:first-child{width:26px;height:26px;display:grid;place-items:center;border-radius:50%;color:var(--text);font-size:.65rem;font-weight:900;text-decoration:none}.calendar-day.today>header>a:first-child{background:var(--primary);color:#fff}.calendar-day-add{color:var(--primary);font-weight:900;text-decoration:none}.calendar-day-events{display:grid;gap:.2rem;padding:0 .35rem .45rem}.calendar-event{display:flex;gap:.28rem;min-width:0;padding:.28rem .38rem;border-left:3px solid;border-radius:6px;background:#f4f5ff;color:#39405e;font-size:.56rem;text-decoration:none}.calendar-event time{font-weight:900}.calendar-event span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-event.scope-personal,.calendar-agenda-event.scope-personal{border-color:#666ee8}.calendar-event.scope-department,.calendar-agenda-event.scope-department{border-color:#18a5a5;background:#effbfb}.calendar-event.scope-company,.calendar-agenda-event.scope-company{border-color:#ec8c2b;background:#fff7ed}.calendar-event.status-cancelled,.calendar-agenda-event.status-cancelled{opacity:.55;text-decoration:line-through}.calendar-more{padding-left:.4rem;color:var(--primary);font-size:.55rem;font-weight:800;text-decoration:none}.calendar-agenda{display:grid}.calendar-agenda-day{display:grid;grid-template-columns:170px 1fr;border-bottom:1px solid var(--border)}.calendar-agenda-day>header{padding:1rem;border-right:1px solid var(--border)}.calendar-agenda-day>header div{display:grid;gap:.12rem}.calendar-agenda-day>header span{color:var(--muted);font-size:.6rem}.calendar-agenda-day>header>a{display:inline-block;margin-top:.6rem;color:var(--primary);font-size:.6rem;font-weight:800;text-decoration:none}.calendar-agenda-day.today>header strong{color:var(--primary)}.calendar-agenda-events{display:grid;gap:.5rem;padding:.75rem}.calendar-agenda-event{display:grid;grid-template-columns:120px 1fr auto;align-items:center;gap:.7rem;padding:.7rem;border-left:4px solid;border-radius:10px;background:#f8f9fc;color:var(--text);text-decoration:none}.calendar-agenda-event time{font-size:.6rem;font-weight:900}.calendar-agenda-event>div{display:grid;gap:.12rem}.calendar-agenda-event span{color:var(--muted);font-size:.58rem}.calendar-response{padding:.25rem .45rem;border-radius:999px;background:#edf0f5;color:#667085;font-size:.52rem}.response-accepted{background:#e3f8ee;color:#147653}.response-declined{background:#feecec;color:#a9363d}.response-tentative{background:#fff4d8;color:#926000}.calendar-legend{display:flex;align-items:center;gap:1rem;color:var(--muted);font-size:.58rem}.calendar-legend span{display:flex;align-items:center;gap:.35rem}.calendar-legend i{width:10px;height:10px;border-radius:3px;background:#666ee8}.calendar-legend i.scope-department{background:#18a5a5}.calendar-legend i.scope-company{background:#ec8c2b}.calendar-legend small{margin-left:auto}.calendar-event-form{padding:1.1rem;display:grid;gap:.9rem}.calendar-date-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.8rem}.calendar-check{display:flex;align-items:center;gap:.5rem;color:var(--text);font-size:.66rem;font-weight:800}.calendar-event-form select[multiple]{min-height:150px}.calendar-detail-hero{padding:1.2rem;border-left:6px solid #666ee8;border-radius:14px;background:#f7f8ff}.calendar-detail-hero.scope-department{border-color:#18a5a5;background:#f2fbfb}.calendar-detail-hero.scope-company{border-color:#ec8c2b;background:#fff8ef}.calendar-detail-kicker{display:flex;gap:.4rem}.calendar-detail-kicker span,.calendar-detail-kicker b{padding:.25rem .45rem;border-radius:999px;background:#fff;color:var(--primary);font-size:.55rem}.calendar-detail-kicker b{background:#feecec;color:#a9363d}.calendar-detail-actions,.calendar-response-panel>div:last-child{display:flex;gap:.45rem}.calendar-response-panel{display:flex;justify-content:space-between;align-items:center;padding:.9rem}.calendar-response-panel>div:first-child{display:grid;gap:.15rem}.calendar-response-panel span{color:var(--muted);font-size:.6rem}.calendar-response-panel form{margin:0}.calendar-detail-grid{display:grid;grid-template-columns:minmax(0,1fr)340px;gap:1rem}.calendar-detail-main,.calendar-participants{padding:1rem}.calendar-detail-main h2{margin:0 0 .7rem;font-size:.85rem}.calendar-detail-main h2:not(:first-child){margin-top:1.1rem}.calendar-detail-main dl{display:grid;margin:0}.calendar-detail-main dl>div{display:flex;justify-content:space-between;gap:1rem;padding:.55rem 0;border-bottom:1px solid var(--border)}.calendar-detail-main dt{color:var(--muted);font-size:.62rem}.calendar-detail-main dd{margin:0;text-align:right;font-size:.64rem;font-weight:800}.calendar-description{white-space:pre-wrap;color:#4f596b;font-size:.7rem;line-height:1.6}.calendar-participant{display:flex;align-items:center;gap:.6rem;padding:.6rem 0;border-bottom:1px solid var(--border)}.calendar-participant>div{display:grid;gap:.1rem}.calendar-participant strong{font-size:.65rem}.calendar-participant small{color:var(--muted);font-size:.56rem}.calendar-danger-zone{display:flex;justify-content:flex-end}.button-danger{background:#b4232d;color:#fff;border-color:#b4232d}
@media(max-width:900px){.calendar-toolbar{grid-template-columns:1fr}.calendar-period{text-align:left}.calendar-view-switch{justify-content:flex-start}.calendar-month-grid{overflow-x:auto;grid-template-columns:repeat(7,minmax(115px,1fr))}.calendar-weekdays{grid-template-columns:repeat(7,minmax(115px,1fr));overflow-x:auto}.calendar-agenda-day{grid-template-columns:1fr}.calendar-agenda-day>header{border-right:0;border-bottom:1px solid var(--border)}.calendar-date-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.calendar-detail-grid{grid-template-columns:1fr}}
@media(max-width:650px){.calendar-hero,.calendar-detail-hero,.calendar-response-panel{flex-direction:column}.calendar-agenda-event{grid-template-columns:1fr}.calendar-legend{flex-wrap:wrap}.calendar-legend small{width:100%;margin:0}.calendar-date-grid{grid-template-columns:1fr}}

/* Fase 39 · WP39B · Reuniones y disponibilidad */
.calendar-period{display:flex;align-items:center;justify-content:center;gap:.7rem;flex-wrap:wrap}.calendar-period>span{font-weight:900}.calendar-team-filter{display:flex;align-items:center;gap:.35rem;margin:0}.calendar-team-filter label{font-size:.55rem;color:var(--muted);font-weight:800}.calendar-team-filter select{min-width:155px;border:1px solid var(--border);border-radius:8px;background:var(--surface);padding:.35rem .45rem;font-size:.58rem;color:var(--text)}.calendar-meet-dot{margin-left:auto;font-size:.52rem;color:#6547d8}.calendar-meet-inline{font-style:normal;color:#6547d8;font-size:.55rem}.calendar-detail-kicker em{padding:.25rem .45rem;border-radius:999px;background:#eee9ff;color:#6547d8;font-size:.55rem;font-style:normal;font-weight:900}.calendar-meeting-option{border:1px solid var(--border);border-radius:12px;padding:.7rem;background:var(--surface-soft)}.calendar-meeting-option small{display:block;margin:.3rem 0 0 1.35rem;color:var(--muted);font-size:.56rem}.calendar-series-note{display:flex;justify-content:space-between;gap:1rem;padding:.7rem;border:1px solid #d8d1ff;background:#f7f5ff;border-radius:12px}.calendar-series-note strong{color:#6547d8;font-size:.65rem}.calendar-series-note span{color:var(--muted);font-size:.58rem}.calendar-conflict-panel{padding:1rem;border:1px solid #f0c8a6;background:#fffaf4}.calendar-conflict-heading,.calendar-conflict-heading>div{display:flex;align-items:center;justify-content:space-between;gap:.7rem}.calendar-conflict-heading h2{margin:0;font-size:.82rem}.calendar-conflict-heading p{margin:.15rem 0 0;color:var(--muted);font-size:.6rem}.calendar-conflict-heading>b{min-width:28px;height:28px;border-radius:999px;background:#b85813;color:#fff;display:grid;place-items:center;font-size:.62rem}.calendar-conflict-icon{width:30px;height:30px;border-radius:9px;background:#fff0df;color:#b85813;display:grid;place-items:center;font-weight:950}.calendar-conflict-list{display:grid;gap:.35rem;margin-top:.75rem}.calendar-conflict-list a,.calendar-private-conflict{display:grid;grid-template-columns:180px minmax(0,1fr) 145px;gap:.6rem;padding:.55rem .65rem;border:1px solid #f2dfcf;border-radius:10px;background:#fff;color:var(--text);text-decoration:none}.calendar-conflict-list strong,.calendar-conflict-list span,.calendar-conflict-list time,.calendar-private-conflict strong,.calendar-private-conflict span,.calendar-private-conflict time{font-size:.58rem}.calendar-conflict-list time,.calendar-private-conflict time{text-align:right;color:var(--muted)}.calendar-conflict-confirm{padding:.65rem;border-radius:10px;background:#fff4e8;color:#8b4311}.calendar-availability-card{border:1px solid var(--border);border-radius:14px;padding:.8rem;background:linear-gradient(135deg,#f8fbff,#fbfaff)}.calendar-availability-card.has-conflicts{border-color:#efc49f;background:#fffaf5}.calendar-availability-title{display:flex;justify-content:space-between;gap:1rem;align-items:center}.calendar-availability-title>div{display:grid;gap:.12rem}.calendar-availability-title strong{font-size:.68rem}.calendar-availability-title span{font-size:.57rem;color:var(--muted)}.calendar-availability-spinner{font-size:.55rem;color:var(--primary)}.calendar-availability-users{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:.45rem;margin-top:.65rem}.calendar-availability-user{display:grid;grid-template-columns:auto 1fr auto;gap:.55rem;align-items:center;padding:.5rem;border-radius:10px;background:var(--surface);border:1px solid var(--border)}.calendar-availability-user>div{display:grid;gap:.08rem}.calendar-availability-user strong{font-size:.6rem}.calendar-availability-user small{font-size:.52rem;color:var(--muted)}.calendar-availability-user>b{padding:.22rem .4rem;border-radius:999px;font-size:.5rem}.calendar-availability-user.available>b{background:#e5f8ed;color:#177a43}.calendar-availability-user.busy>b{background:#fff0e3;color:#a04a10}.calendar-meeting-banner{padding:.85rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;border:1px solid #d8d1ff;background:linear-gradient(135deg,#f7f5ff,#f2fbff)}.calendar-meeting-banner>div{display:flex;gap:.65rem;align-items:center}.calendar-meeting-banner>div>div{display:grid;gap:.1rem}.calendar-meeting-banner strong{font-size:.68rem}.calendar-meeting-banner span,.calendar-meeting-banner small{font-size:.56rem;color:var(--muted)}.calendar-meeting-symbol{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:#6547d8!important;color:#fff!important;font-size:.8rem!important}.calendar-detail-actions form{margin:0}
@media(max-width:900px){.calendar-period{justify-content:flex-start}.calendar-conflict-list a,.calendar-private-conflict{grid-template-columns:1fr}.calendar-conflict-list time,.calendar-private-conflict time{text-align:left}.calendar-meeting-banner{align-items:flex-start;flex-direction:column}.calendar-team-filter{width:100%}.calendar-team-filter select{flex:1}}


/* NovaCore Fase 40 WP40A · Gestión de tareas */
.tasks-page,.task-form-page,.task-detail-page{display:grid;gap:1.1rem}.tasks-stats{grid-template-columns:repeat(4,minmax(0,1fr))}.tasks-filter{display:grid;grid-template-columns:minmax(220px,1fr) 190px 170px auto;gap:.8rem;align-items:end;padding:1rem}.tasks-list{display:grid;gap:.7rem}.task-row{display:grid;grid-template-columns:5px minmax(0,1fr) 110px;gap:1rem;align-items:center;padding:1rem 1.1rem;background:#fff;border:1px solid var(--border);border-radius:18px;box-shadow:var(--shadow-sm);transition:.18s ease}.task-row:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:#c9d1ff}.task-row.overdue{border-color:#fed7aa;background:linear-gradient(90deg,#fff7ed,#fff 24%)}.task-priority{width:5px;height:54px;border-radius:999px;background:#94a3b8}.task-priority.priority-low{background:#22c55e}.task-priority.priority-normal{background:#6366f1}.task-priority.priority-high{background:#f59e0b}.task-priority.priority-urgent{background:#ef4444}.task-row-main{min-width:0}.task-row-main>div{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap}.task-row-main strong{font-size:1rem;color:#111827}.task-row-main p{margin:.3rem 0;color:#667085;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.task-row-main small{color:#8a94a6}.task-badge{display:inline-flex;align-items:center;border-radius:999px;padding:.24rem .55rem;font-size:.7rem;font-weight:800;background:#eef2ff;color:#4338ca}.task-badge.status-completed{background:#dcfce7;color:#166534}.task-badge.status-blocked{background:#ffedd5;color:#9a3412}.task-badge.status-cancelled{background:#f1f5f9;color:#64748b}.task-badge.status-in_progress{background:#cffafe;color:#155e75}.task-badge.status-pending_assignment,.task-badge.status-pending_review{background:#fef3c7;color:#92400e}.task-badge.status-returned{background:#ffedd5;color:#9a3412}.task-badge.overdue{background:#fee2e2;color:#991b1b}.task-progress-ring{display:grid;gap:.35rem;text-align:right}.task-progress-ring b{font-size:.9rem}.task-progress-ring span,.task-progress-bar{height:7px;border-radius:999px;background:#eef2f7;overflow:hidden}.task-progress-ring i,.task-progress-bar i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#5b5df0,#20c7c7)}.task-form{padding:1.2rem;display:grid;gap:1rem}.form-grid.three-columns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.form-grid.four-columns{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}.task-detail-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:1rem;align-items:start}.task-detail-grid main,.task-detail-grid aside{display:grid;gap:1rem}.task-summary{padding:1.25rem}.task-summary-head{display:flex;justify-content:space-between;align-items:center}.task-summary-head>div{display:flex;gap:.5rem;flex-wrap:wrap}.task-summary-head>strong{font-size:1.25rem}.task-progress-bar{margin:.9rem 0 1.2rem;height:10px}.task-summary>p{white-space:pre-line;color:#475467;line-height:1.65}.task-summary dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem;margin:1rem 0}.task-summary dl div{padding:.75rem;border-radius:12px;background:#f8fafc}.task-summary dt{font-size:.7rem;color:#98a2b3;text-transform:uppercase;font-weight:800}.task-summary dd{margin:.25rem 0 0;font-weight:700}.task-progress-form{padding:1.1rem}.task-progress-form>div:first-child{margin-bottom:.8rem}.subtask-list{display:grid;gap:.55rem;margin:.8rem 0}.subtask-list>a{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.65rem;padding:.75rem;border-radius:12px;background:#f8fafc}.subtask-list small{color:#667085}.subtask-form{border-top:1px solid var(--border);padding-top:1rem}.task-comments{display:grid;gap:.8rem;margin:1rem 0}.task-comments article{display:grid;grid-template-columns:36px 1fr;gap:.7rem}.task-comments header{display:flex;justify-content:space-between;gap:1rem}.task-comments time{font-size:.75rem;color:#98a2b3}.task-comments p{margin:.3rem 0;white-space:pre-line;color:#475467}.task-files{display:grid;gap:.5rem;margin:.8rem 0}.task-files>a{display:flex;justify-content:space-between;gap:.5rem;padding:.7rem;border-radius:12px;background:#f8fafc}.task-files strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.task-files small{white-space:nowrap;color:#667085}
@media(max-width:1050px){.tasks-stats{grid-template-columns:repeat(2,1fr)}.tasks-filter{grid-template-columns:1fr 1fr}.task-detail-grid{grid-template-columns:1fr}.form-grid.four-columns{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.tasks-stats,.tasks-filter,.form-grid.three-columns,.form-grid.four-columns{grid-template-columns:1fr}.task-row{grid-template-columns:4px minmax(0,1fr)}.task-progress-ring{grid-column:2;text-align:left}.task-summary dl{grid-template-columns:1fr}.subtask-list>a{grid-template-columns:auto minmax(0,1fr)}.subtask-list small{grid-column:2}}

/* NovaCore Fase 40 WP40B · Proyectos, Kanban, cronograma y carga */
.projects-page,.project-detail-page,.project-board-page,.project-timeline-page,.project-workload-page,.project-form-page{display:grid;gap:1rem}.projects-filter{display:grid;grid-template-columns:minmax(0,2fr) minmax(150px,.7fr) auto;gap:.7rem;align-items:end}.projects-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:.85rem}.project-card{display:grid;gap:.8rem;padding:1rem}.project-card>header,.project-card>footer,.project-progress,.project-card dl>div,.project-hero,.project-detail-stats,.panel-heading,.project-members article,.workload-card header{display:flex;align-items:center;justify-content:space-between;gap:.7rem}.project-code{font-size:.62rem;font-weight:950;letter-spacing:.08em;color:var(--primary)}.project-card h2{margin:0;font-size:.9rem}.project-card h2 a{color:var(--text);text-decoration:none}.project-card p{margin:.25rem 0 0;color:var(--muted);font-size:.62rem}.project-progress span,.workload-meter{height:7px;flex:1;border-radius:999px;background:var(--surface-soft);overflow:hidden}.project-progress i,.workload-meter i{display:block;height:100%;background:linear-gradient(90deg,var(--primary),#6d5dfc);border-radius:inherit}.project-progress b{font-size:.62rem}.project-card dl{display:grid;gap:.35rem;margin:0}.project-card dl>div{font-size:.58rem}.project-card dt{color:var(--muted)}.project-card dd{margin:0;font-weight:800;text-align:right}.project-hero{padding:1rem}.project-hero h2{margin:.35rem 0;font-size:1rem}.project-hero p{margin:0;color:var(--muted);font-size:.65rem}.project-progress.large{min-width:240px}.project-detail-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:1rem}.project-detail-grid main,.project-detail-grid aside{display:grid;gap:1rem;align-content:start}.project-task-list,.project-milestones,.project-deliverables,.project-dependencies,.project-members{display:grid;gap:.45rem}.project-task-list>a,.project-milestones article,.project-deliverables article,.project-dependencies article{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:.65rem;align-items:center;padding:.65rem;border:1px solid var(--border);border-radius:11px;color:var(--text);text-decoration:none;background:var(--surface)}.project-task-list small,.project-milestones time,.project-deliverables small,.project-dependencies small{font-size:.55rem;color:var(--muted)}.project-milestones p,.project-deliverables p{margin:.15rem 0 0;font-size:.56rem;color:var(--muted)}.project-deliverables article{grid-template-columns:minmax(0,1fr) auto}.project-dependencies article{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto}.project-inline-form{margin-top:.8rem;padding-top:.8rem;border-top:1px solid var(--border)}.project-members article{padding:.5rem;border-bottom:1px solid var(--border)}.project-members article>div:nth-child(2){display:grid;gap:.08rem;flex:1}.project-members strong{font-size:.6rem}.project-members small{font-size:.52rem;color:var(--muted)}.kanban-board{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(250px,1fr);gap:.75rem;overflow-x:auto;padding-bottom:.5rem}.kanban-column{display:grid;grid-template-rows:auto 1fr;gap:.55rem;min-height:420px;border:1px solid var(--border);border-radius:14px;background:var(--surface-soft);padding:.65rem}.kanban-column>header{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.kanban-column>header div{display:grid}.kanban-column>header strong{font-size:.68rem}.kanban-column>header small{font-size:.52rem;color:var(--muted)}.kanban-cards{display:grid;gap:.5rem;align-content:start}.kanban-card{border:1px solid var(--border);border-left:4px solid var(--primary);border-radius:11px;background:var(--surface);padding:.65rem}.kanban-card.priority-urgent{border-left-color:#d92d20}.kanban-card.priority-high{border-left-color:#f79009}.kanban-card>a{display:grid;gap:.22rem;color:var(--text);text-decoration:none}.kanban-card strong{font-size:.62rem}.kanban-card p,.kanban-card small{margin:0;font-size:.54rem;color:var(--muted)}.kanban-move{display:flex;gap:.25rem;flex-wrap:wrap;margin-top:.5rem}.kanban-move form{margin:0}.kanban-move button{border:1px solid var(--border);background:var(--surface-soft);border-radius:7px;padding:.2rem .38rem;cursor:pointer}.board-column-form{max-width:520px}.project-timeline{display:grid;gap:.25rem}.timeline-row{display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:.7rem;align-items:center;padding:.7rem;border-bottom:1px solid var(--border)}.timeline-row>span{width:28px;height:28px;display:grid;place-items:center;border-radius:9px;background:var(--surface-soft);color:var(--primary)}.timeline-row>div{display:grid;gap:.08rem}.timeline-row a{color:var(--text);text-decoration:none}.timeline-row strong{font-size:.64rem}.timeline-row small,.timeline-row time{font-size:.55rem;color:var(--muted)}.workload-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:.8rem}.workload-card{display:grid;gap:.7rem}.workload-card header>div:nth-child(2){flex:1}.workload-card h2{margin:0;font-size:.72rem}.workload-card p{margin:.15rem 0 0;font-size:.56rem;color:var(--muted)}.workload-card header>b{font-size:.7rem}.workload-card dl{display:grid;grid-template-columns:repeat(3,1fr);gap:.4rem;margin:0}.workload-card dl>div{display:grid;text-align:center;padding:.45rem;border-radius:9px;background:var(--surface-soft)}.workload-card dt{font-size:.5rem;color:var(--muted)}.workload-card dd{margin:0;font-size:.7rem;font-weight:900}@media(max-width:900px){.project-detail-grid{grid-template-columns:1fr}.project-progress.large{min-width:160px}.projects-filter{grid-template-columns:1fr}.project-hero{align-items:flex-start;flex-direction:column}.project-progress.large{width:100%}}@media(max-width:620px){.projects-grid{grid-template-columns:1fr}.project-task-list>a,.project-milestones article,.project-dependencies article{grid-template-columns:1fr}.timeline-row{grid-template-columns:28px 1fr}.timeline-row time{grid-column:2}.project-card>footer{flex-wrap:wrap}}

/* Fase 41 · WP41A · NovaDrive */
.drive-page,.drive-detail-page{display:grid;gap:1.15rem}.drive-breadcrumb{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap;font-size:.9rem}.drive-breadcrumb a{color:var(--primary);font-weight:700}.drive-toolbar{display:grid;grid-template-columns:minmax(260px,1.5fr) 1fr 1fr;gap:1rem;align-items:end}.drive-toolbar form,.drive-search-form{display:flex;gap:.65rem}.drive-quota{display:grid;gap:.35rem}.drive-quota span{height:7px;background:var(--surface-muted,#eef2f7);border-radius:20px;overflow:hidden}.drive-quota span i{display:block;height:100%;background:linear-gradient(90deg,#6657e8,#27c6b7);border-radius:inherit}.drive-quota b{font-size:.78rem}.drive-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(245px,1fr));gap:.85rem}.drive-card{display:flex;align-items:center;justify-content:space-between;gap:.6rem;background:var(--surface,#fff);border:1px solid var(--border,#dde3ea);border-radius:16px;padding:.85rem;box-shadow:0 6px 20px rgba(26,39,68,.04)}.drive-card>a{display:flex;align-items:center;gap:.8rem;min-width:0;flex:1}.drive-card strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.drive-card small{display:block;color:var(--text-muted);margin-top:.18rem}.drive-card-icon{display:grid;place-items:center;width:46px;height:46px;border-radius:13px;background:#eeeafe;color:#5848d7;font-weight:900;flex:none}.file-ext{font-size:.68rem;letter-spacing:.04em;background:#e6f8f4;color:#087f6f}.file-ext.large{width:78px;height:78px;font-size:.88rem}.drive-folder-summary{display:flex;justify-content:space-between;align-items:center;gap:1rem}.drive-scope{display:inline-flex;padding:.25rem .55rem;border-radius:999px;font-size:.72rem;font-weight:800;background:#eef1f7}.scope-company{background:#e5f7f3;color:#087f6f}.scope-team{background:#fff0dc;color:#9a5b00}.drive-detail-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(280px,.8fr);gap:1rem}.drive-file-hero{display:grid;grid-template-columns:auto 1fr;gap:1.2rem}.drive-file-hero dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}.drive-file-hero dt{font-size:.72rem;text-transform:uppercase;color:var(--text-muted)}.drive-file-hero dd{margin:.2rem 0 0;overflow-wrap:anywhere}.mono{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.75rem}.drive-version-list,.drive-grants,.drive-trash-list{display:grid;gap:.7rem}.drive-version-list article,.drive-grants article,.drive-trash-list article{display:flex;align-items:center;justify-content:space-between;gap:1rem;border-top:1px solid var(--border);padding-top:.75rem}.drive-version-list article>div:last-child{display:flex;gap:.4rem}.drive-version-form{border-top:1px solid var(--border);margin-top:1rem;padding-top:1rem}.drive-link-list{display:flex;gap:.5rem;flex-wrap:wrap}.drive-link-list span{padding:.4rem .65rem;background:#f1f4f8;border-radius:10px;font-size:.82rem}.drive-trash-list h2{margin:1rem 0 .2rem}.danger-panel{border-color:#f1b5b5}.form-help{color:var(--text-muted);font-size:.84rem}.drive-search-form{align-items:center}@media(max-width:900px){.drive-toolbar,.drive-detail-grid{grid-template-columns:1fr}.drive-file-hero{grid-template-columns:1fr}.drive-file-hero dl{grid-template-columns:1fr}.drive-toolbar form,.drive-search-form{flex-direction:column}.drive-version-list article,.drive-trash-list article{align-items:flex-start;flex-direction:column}}

.drive-folder-access summary{display:flex;justify-content:space-between;gap:1rem;cursor:pointer;list-style:none}.drive-folder-access summary::-webkit-details-marker{display:none}.drive-folder-access[open] summary{margin-bottom:1rem}.drive-folder-access .three-columns{grid-template-columns:repeat(3,minmax(0,1fr))}@media(max-width:760px){.drive-folder-access .three-columns{grid-template-columns:1fr}}

/* WP41B Integración documental */
.drive-picker-list{display:grid;gap:1rem}.drive-picker-list>article{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1rem;align-items:center}.drive-picker-list form{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.drive-source-documents .drive-link-list article{display:flex;justify-content:space-between;gap:1rem;align-items:center}.connect-drive-action{padding:.5rem 1rem;border-bottom:1px solid var(--border-color,#dfe5ef)}@media(max-width:760px){.drive-picker-list>article{grid-template-columns:1fr}.drive-picker-list form{display:grid;grid-template-columns:1fr}}

/* Fase 44 · Automatizaciones con revisión humana */
.automation-page{display:grid;gap:1.1rem}.automation-tabs{display:flex;gap:.5rem;flex-wrap:wrap}.automation-tabs a{padding:.55rem .85rem;border:1px solid var(--border);border-radius:999px;color:var(--muted);background:var(--surface)}.automation-tabs a.active{color:var(--text);border-color:var(--primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--primary) 15%,transparent)}.automation-rule-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1rem}.automation-rule-card{display:grid;gap:.7rem;color:inherit}.automation-rule-card:hover{transform:translateY(-2px)}.risk-chip{display:inline-flex;padding:.25rem .55rem;border-radius:999px;font-size:.75rem;font-weight:700}.risk-chip.risk-low{background:#e8f7ef;color:#18794e}.risk-chip.risk-medium{background:#fff4d6;color:#9a6700}.risk-chip.risk-high{background:#ffe7e7;color:#b42318}.automation-action-label{font-size:.8rem;font-weight:700;color:var(--muted);max-width:150px;text-align:right}.automation-contract{display:grid;gap:.75rem}.automation-contract div{display:grid;grid-template-columns:150px 1fr;gap:1rem;padding:.75rem 0;border-bottom:1px solid var(--border)}.automation-contract dt{font-weight:700;color:var(--muted)}.automation-contract dd{margin:0}.automation-json{white-space:pre-wrap;overflow-wrap:anywhere;background:var(--surface-soft);border:1px solid var(--border);border-radius:12px;padding:1rem;max-height:420px;overflow:auto}.automation-review-banner{border-left:4px solid var(--primary)}.automation-review-banner.status-approved{border-left-color:#18794e}.automation-review-banner.status-rejected{border-left-color:#b42318}.automation-review-entry,.automation-event-entry{display:grid;gap:.25rem;padding:.85rem 0;border-bottom:1px solid var(--border)}.automation-review-entry span,.automation-event-entry span,.automation-event-entry small{color:var(--muted);font-size:.85rem}@media(max-width:720px){.automation-contract div{grid-template-columns:1fr}.automation-action-label{display:none}}

/* F69C · CRM Comercial 2.0 · Forecast, metas y pipeline intelligence */
.crm-forecast-filter-panel{display:grid;gap:.55rem}.crm-forecast-filter{display:grid;grid-template-columns:minmax(150px,.65fr) repeat(3,minmax(145px,.65fr)) minmax(165px,.75fr) minmax(230px,1.15fr) auto;gap:.7rem;align-items:end}.crm-forecast-filter label,.crm-target-form label{display:grid;gap:.35rem;min-width:0}.crm-forecast-filter label>span,.crm-target-form label>span{font-size:.68rem;font-weight:800;color:#566177}.crm-forecast-filter .wide,.crm-target-form .wide{min-width:0}.crm-snapshot-action{display:inline-flex}.crm-forecast-stats{grid-template-columns:repeat(6,minmax(0,1fr))}.crm-forecast-health-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin:1rem 0}.crm-coverage-card{display:grid;gap:.75rem}.crm-coverage-card h2{margin:.2rem 0;font-size:1.65rem}.crm-coverage-card p{margin:0;color:var(--muted);font-size:.76rem}.crm-coverage-card small{color:#566177;font-weight:700}.crm-progress-track{height:9px;overflow:hidden;border-radius:999px;background:#edf0f6}.crm-progress-track>span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#635bce,#18a9c9);max-width:100%}.crm-risk-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:.55rem;align-content:start}.crm-risk-summary>.eyebrow,.crm-risk-summary>small{grid-column:1/-1}.crm-risk-summary>div{display:grid;gap:.15rem;padding:.75rem;border:1px solid #e6e9f0;border-radius:14px;background:#fafbfe}.crm-risk-summary b{font-size:1.25rem}.crm-risk-summary span{font-size:.66rem;color:var(--muted)}.crm-forecast-main-grid{align-items:stretch}.crm-forecast-category-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.65rem}.crm-forecast-category-grid article,.crm-aging-grid article{display:grid;gap:.25rem;padding:.85rem;border:1px solid #e4e8f0;border-radius:14px;background:#fbfcff}.crm-forecast-category-grid span,.crm-aging-grid span{font-size:.67rem;color:#657084;font-weight:800}.crm-forecast-category-grid strong,.crm-aging-grid strong{font-size:.93rem}.crm-forecast-category-grid small,.crm-aging-grid small{color:var(--muted);font-size:.65rem}.crm-aging-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.7rem}.crm-risk-grid{align-items:start}.crm-risk-list{display:grid;gap:.45rem}.crm-risk-list>a{display:flex;justify-content:space-between;gap:.75rem;align-items:center;padding:.7rem .8rem;border:1px solid #e5e9f0;border-radius:13px;text-decoration:none;background:#fff}.crm-risk-list>a:hover{border-color:#c9c7f7;background:#fbfbff}.crm-risk-list>a>div{display:grid;gap:.15rem;min-width:0}.crm-risk-list strong{color:var(--text);font-size:.77rem;overflow-wrap:anywhere}.crm-risk-list span{font-size:.65rem;color:var(--muted)}.crm-risk-list b{white-space:nowrap;font-size:.7rem;color:#9a3412}.crm-targets-panel{display:grid;gap:1rem}.crm-target-form{grid-template-columns:repeat(4,minmax(0,1fr));padding:1rem;border:1px solid #e3e7ef;border-radius:16px;background:#fbfcff}.crm-target-form .wide{grid-column:1/-1}.crm-forecast-chip-row{display:flex;justify-content:space-between;gap:.45rem;align-items:center}.crm-forecast-chip-row small,.crm-table-sub{display:block;margin-top:.2rem;color:var(--muted);font-size:.62rem}.crm-forecast-chip{display:inline-flex;align-items:center;max-width:100%;padding:.2rem .45rem;border-radius:999px;background:#eef2ff;color:#4f46a5;font-size:.6rem;font-weight:850;white-space:nowrap}.crm-forecast-chip.is-best_case{background:#e0f2fe;color:#0369a1}.crm-forecast-chip.is-commit{background:#fef3c7;color:#92400e}.crm-forecast-chip.is-closed{background:#dcfce7;color:#166534}.crm-forecast-chip.is-omitted{background:#f1f5f9;color:#64748b}.crm-opportunity-filters{grid-template-columns:repeat(5,minmax(145px,1fr))}.crm-opportunity-filters .crm-search-field{grid-column:span 2}.crm-opportunity-filters .crm-filter-actions{grid-column:1/-1}.crm-table .crm-forecast-chip{vertical-align:middle}
@media(max-width:1250px){.crm-forecast-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.crm-forecast-filter{grid-template-columns:repeat(3,minmax(0,1fr))}.crm-forecast-filter .wide{grid-column:span 2}.crm-forecast-filter .crm-filter-actions{grid-column:1/-1}.crm-forecast-category-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.crm-target-form{grid-template-columns:repeat(3,minmax(0,1fr))}.crm-opportunity-filters{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:850px){.crm-forecast-health-grid{grid-template-columns:1fr}.crm-forecast-category-grid,.crm-aging-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.crm-target-form{grid-template-columns:1fr 1fr}.crm-opportunity-filters{grid-template-columns:1fr 1fr}.crm-opportunity-filters .crm-search-field{grid-column:1/-1}}
@media(max-width:620px){.crm-forecast-filter,.crm-forecast-stats,.crm-forecast-category-grid,.crm-aging-grid,.crm-target-form,.crm-opportunity-filters{grid-template-columns:1fr}.crm-forecast-filter .wide,.crm-target-form .wide,.crm-opportunity-filters .crm-search-field{grid-column:auto}.crm-risk-summary{grid-template-columns:1fr}.crm-snapshot-action{width:100%}.crm-snapshot-action .button{width:100%}.crm-risk-list>a{align-items:flex-start}.crm-forecast-chip-row{align-items:flex-start;flex-direction:column}}

/* F69D · CRM qualification, follow-up and controlled duplicate consolidation */
.crm-qualification-panel{margin-top:1rem}.crm-grade-badge{display:grid;place-items:center;min-width:48px;height:48px;padding:0 .8rem;border-radius:16px;background:#eef0ff;color:#4f46e5;font-size:1.2rem;font-weight:900}.crm-grade-badge.grade-a{background:#e6f8ef;color:#137454}.crm-grade-badge.grade-b{background:#eaf5ff;color:#1769aa}.crm-grade-badge.grade-c{background:#fff6df;color:#946200}.crm-grade-badge.grade-d{background:#fff0f0;color:#b4232d}.crm-qualification-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.65rem;margin:.5rem 0 1rem}.crm-qualification-summary>div{padding:.8rem;border:1px solid var(--border);border-radius:14px;background:#fbfcff}.crm-qualification-summary strong{display:block;font-size:1rem}.crm-qualification-summary span{display:block;margin-top:.2rem;color:var(--muted);font-size:.7rem}.crm-followup-next{display:grid;gap:.15rem;padding:.8rem .9rem;margin-bottom:1rem;border:1px solid #c9ead9;border-radius:14px;background:#f3fbf7}.crm-followup-next.is-overdue{border-color:#f2c7c7;background:#fff6f6}.crm-followup-next>span{color:var(--muted);font-size:.68rem;font-weight:800;text-transform:uppercase}.crm-followup-next small{color:var(--muted)}.crm-qualification-form{display:grid;gap:1rem}.crm-followup-builder{display:grid;grid-template-columns:minmax(220px,.7fr) minmax(0,1.3fr);gap:1rem;padding-top:1rem;border-top:1px solid var(--border)}.crm-followup-builder h3{margin:.15rem 0}.crm-followup-builder small{color:var(--muted)}.crm-duplicate-list{display:grid;gap:1rem}.crm-duplicate-card{padding:1rem;border:1px solid var(--border);border-radius:16px;background:#fff}.crm-duplicate-head{display:flex;align-items:center;justify-content:space-between;gap:.7rem}.crm-duplicate-head>div{display:flex;align-items:center;gap:.6rem}.crm-duplicate-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem;margin:.8rem 0}.crm-duplicate-pair>div{display:grid;gap:.2rem;padding:.8rem;border:1px solid #e5e9f2;border-radius:13px;background:#fafbfe;min-width:0}.crm-duplicate-pair small{color:var(--muted);font-size:.68rem;text-transform:uppercase}.crm-duplicate-pair strong,.crm-duplicate-pair span{overflow-wrap:anywhere}.crm-duplicate-pair span{color:var(--muted);font-size:.74rem}.crm-merge-form{display:grid;grid-template-columns:minmax(180px,1fr) minmax(220px,1.2fr) minmax(160px,.8fr) auto;gap:.6rem;align-items:end;padding-top:.8rem;border-top:1px solid var(--border)}.crm-merge-form label{display:grid;gap:.3rem}.crm-merge-form label>span{font-size:.7rem;font-weight:800;color:#536174}@media(max-width:900px){.crm-qualification-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.crm-followup-builder,.crm-duplicate-pair,.crm-merge-form{grid-template-columns:1fr}.crm-merge-form .button{width:100%}}@media(max-width:520px){.crm-qualification-summary{grid-template-columns:1fr 1fr}.crm-duplicate-card{padding:.8rem}}
.crm-grade-inline{display:inline-flex;align-items:center;justify-content:center;min-width:54px;padding:.18rem .46rem;border-radius:999px;background:#f1f3f7;color:#596273;font-size:.68rem;font-weight:850}.crm-grade-inline.grade-a{background:#e6f8ef;color:#137454}.crm-grade-inline.grade-b{background:#eaf5ff;color:#1769aa}.crm-grade-inline.grade-c{background:#fff6df;color:#946200}.crm-grade-inline.grade-d{background:#fff0f0;color:#b4232d}

/* F69E · Customer 360 Commercial Relationship */
.crm-relationship-risks { margin-top: 16px; gap: 8px; }
.crm-relationship-risks span { border-radius: 999px; padding: 7px 10px; font-size: .78rem; font-weight: 700; }
.crm-relationship-risks .risk-high { background: rgba(220,38,38,.10); color: #b91c1c; }
.crm-relationship-risks .risk-medium { background: rgba(217,119,6,.12); color: #a16207; }
.crm-forecast-category-strip { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 10px; margin-top: 14px; }
.crm-forecast-category-strip article { border: 1px solid var(--border-color, #e5e7eb); border-radius: 14px; padding: 12px; display: grid; gap: 4px; min-width: 0; }
.crm-forecast-category-strip small { color: var(--text-muted, #64748b); }
.crm-forecast-category-strip strong { overflow-wrap: anywhere; }
@media (max-width: 900px) { .crm-forecast-category-strip { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 640px) { .crm-forecast-category-strip { grid-template-columns: 1fr; } }


/* F69F · CRM Commercial Copilot + Automations 2.0 */
.crm-copilot-portfolio-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.crm-copilot-portfolio-grid > div { min-width:0; padding:14px; border:1px solid var(--border-soft, #dce3ea); border-radius:14px; background:var(--surface-soft, #f8fafc); }
.crm-copilot-portfolio-grid span { display:block; font-size:.78rem; color:var(--text-muted, #667085); margin-bottom:5px; }
.crm-copilot-portfolio-grid strong { display:block; font-size:1.12rem; overflow-wrap:anywhere; }
.crm-copilot-signals { display:flex; flex-wrap:wrap; gap:7px; align-items:center; margin:8px 0 10px; }
.crm-copilot-signals > span:not(.status-pill) { font-size:.78rem; padding:5px 8px; border-radius:999px; background:var(--surface-soft, #f8fafc); border:1px solid var(--border-soft, #dce3ea); }
.crm-copilot-actions { display:flex; flex-wrap:wrap; gap:8px; align-items:flex-end; margin-top:12px; }
.crm-copilot-actions form { margin:0; min-width:0; }
.crm-copilot-actions .crm-ai-action { flex:1 1 280px; }
@media (max-width: 640px) {
  .crm-copilot-portfolio-grid { grid-template-columns:1fr; }
  .crm-copilot-actions { align-items:stretch; }
  .crm-copilot-actions form, .crm-copilot-actions .crm-ai-action { width:100%; flex-basis:100%; }
  .crm-copilot-actions .button { width:100%; min-height:44px; }
}

/* F69G — CRM Comercial 2.0 dashboard / granular intelligence */
.crm-dashboard-filter{display:grid;grid-template-columns:minmax(180px,.8fr) minmax(120px,.45fr) auto;gap:.75rem;align-items:end}
.crm-dashboard-filter label{display:grid;gap:.35rem;min-width:0}.crm-dashboard-filter label>span{font-size:.72rem;font-weight:800;color:var(--muted)}
.crm-commercial-kpis{margin-top:1rem}.crm-dashboard-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-top:1rem}
.crm-dashboard-panel{min-width:0}.crm-dashboard-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.crm-dashboard-metrics article{display:grid;gap:.35rem;padding:.85rem;border:1px solid var(--border);border-radius:14px;background:var(--surface-soft,#f8fafc);min-width:0}.crm-dashboard-metrics small,.crm-dashboard-metrics span{color:var(--muted)}.crm-dashboard-metrics strong{font-size:1.05rem;overflow-wrap:anywhere}.crm-dashboard-metrics progress{width:100%;height:8px}
.crm-risk-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.65rem}.crm-risk-summary article{display:grid;gap:.2rem;padding:.75rem;border-radius:13px;background:var(--surface-soft,#f8fafc);min-width:0}.crm-risk-summary strong{font-size:1.25rem}.crm-risk-summary span{font-size:.72rem;color:var(--muted)}
.crm-qualification-dashboard{display:grid;gap:.8rem}.crm-qualification-dashboard>article{display:grid;gap:.65rem}.crm-qualification-dashboard header{display:flex;justify-content:space-between;gap:.75rem;align-items:center}.crm-qualification-dashboard header span{font-size:.72rem;color:var(--muted)}.crm-grade-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.45rem}.crm-grade-grid>span{display:flex;align-items:center;justify-content:space-between;gap:.35rem;padding:.55rem .65rem;border:1px solid var(--border);border-radius:12px;background:#fff}.crm-grade-grid b{display:grid;place-items:center;width:24px;height:24px;border-radius:8px;background:var(--surface-soft,#f1f5f9)}
.crm-dashboard-api-note code{overflow-wrap:anywhere}.crm-dashboard-panel .panel-actions{margin-top:.85rem}.crm-risk-panel .status-pill{white-space:nowrap}
@media(max-width:900px){.crm-dashboard-grid{grid-template-columns:1fr}.crm-dashboard-filter{grid-template-columns:repeat(2,minmax(0,1fr))}.crm-dashboard-filter>.button{grid-column:1/-1}.crm-risk-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* F71 · SaaS / Multiempresa 2.0 */
.saas-admin-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(280px,.9fr);gap:1rem;align-items:start}.saas-entitlement-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem}.saas-entitlement{display:grid;gap:.45rem;padding:.9rem;border:1px solid #dfe5ef;border-radius:14px;background:#fff}.saas-entitlement small{color:#667085;text-transform:capitalize}.saas-inline-actions{display:flex;gap:.45rem;flex-wrap:wrap;margin-top:.25rem}.saas-audit-row{display:flex;justify-content:space-between;align-items:flex-start;gap:.75rem;padding:.75rem 0;border-bottom:1px solid #edf0f5}.saas-audit-row:last-child{border-bottom:0}.saas-audit-row div{display:grid;gap:.2rem}.saas-audit-row small{color:#667085}.saas-invite-url{padding:1rem;border:1px dashed #aeb8c8;border-radius:14px;background:#f7f9fc;overflow:auto}.saas-invite-url code{white-space:nowrap;font-size:.82rem}.saas71-page .metric-card strong{overflow-wrap:anywhere}
