:root{color-scheme:light;--bg:#f5f7fb;--panel:#fff;--field:#eef2f7;--field-hover:#e8eef6;--field-height:44px;--ink:#19253a;--muted:#65748b;--line:#e7ebf2;--blue:#036fba;--blue-weak:#eaf4fc;--positive:#16704b;--radius:8px;--sidebar-width:252px;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-synthesis:none;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}html{font-size:16px}body{margin:0;color:var(--ink);background:var(--bg);font-size:14px;line-height:1.65}button{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{text-decoration:none;color:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}a:focus-visible,button:focus-visible,summary:focus-visible,select:focus-visible,textarea:focus-visible,input:focus-visible{outline:2px solid var(--blue);outline-offset:3px}h1,h2,p{margin-top:0}h1{font-size:27px;line-height:1.3;letter-spacing:-.7px;margin-bottom:5px;font-weight:710}h2{font-size:17px;line-height:1.4;font-weight:700;letter-spacing:-.2px;margin-bottom:4px}.btn{border:1px solid transparent;border-radius:7px;font-weight:650;padding:10px 16px;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:42px;white-space:nowrap;transition:background-color .14s,color .14s,border-color .14s}.btn-primary{background:var(--blue);color:white}.btn-primary:hover{background:#025990}.btn-secondary{background:var(--field);color:#234165}.btn-secondary:hover{background:var(--field-hover)}.btn-ghost{background:transparent;color:#516078}.btn-ghost:hover{background:#f0f3f8}.btn-sm{min-height:36px;padding:7px 12px}.btn-block{width:100%}.login-body{min-height:100svh;display:flex;flex-direction:column;background:#f7f9fc}.login-wrap{width:100%;flex:1;display:flex;align-items:center;justify-content:center;padding:44px 20px}.login-shell{width:100%;max-width:420px}.login-brand{display:flex;align-items:center;gap:12px;font-size:24px;font-weight:750;letter-spacing:-1.1px;margin-bottom:48px}.login-brand img{display:block}.login-shell h1{font-size:32px;letter-spacing:-1.1px;margin-bottom:5px}.login-description{color:var(--muted);font-size:15px;margin-bottom:32px}.login-form{display:flex;flex-direction:column;gap:9px}.login-form label{font-weight:650}.login-form {--field-height:48px}.login-form .btn{margin-top:15px;height:48px}.label-row{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:11px}.quiet{color:#8490a3;font-size:14px}.demo-note{color:#667489;font-size:14px;margin:24px 0 0}.login-footer{padding:18px 26px 24px;display:flex;gap:16px;justify-content:space-between;color:#7c8799;font-size:14px}.app-shell{display:flex;min-height:100svh}.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar-width);background:#fff;display:flex;flex-direction:column;z-index:20}.sidebar-brand{height:76px;min-height:76px;display:flex;align-items:center;justify-content:space-between;padding:0 21px}.brand-link{display:flex;align-items:center;gap:11px;font-weight:760;font-size:22px;letter-spacing:-.8px}.sidebar .sidebar-close{display:none}.sidebar-nav{padding:10px 12px 14px;overflow:auto;flex:1}.nav-group-title{padding:7px 13px 4px;color:var(--muted);text-transform:uppercase;font-weight:700;letter-spacing:.065em;font-size:14px}.nav-group-title:not(:first-child){margin-top:6px}.nav-item{display:flex;align-items:center;gap:12px;min-height:40px;padding:7px 12px;border-radius:7px;color:#53627a;font-weight:550;margin:2px 0;transition:background-color .14s,color .14s}.nav-item:hover{background:#f6f8fc}.nav-item.active{background:var(--blue-weak);color:#035993;font-weight:690}.nav-icon{display:flex;width:21px;flex-shrink:0}.nav-count{margin-left:auto;font-size:14px;background:#f0f3f9;color:#6a7890;border-radius:6px;padding:0 7px}.sidebar-bottom{padding:19px 23px 22px;color:#748197;font-size:14px}.sidebar-status{display:flex;align-items:center;gap:9px}.status-dot{width:8px;height:8px;border-radius:50%;background:#9aa8bb}.sidebar-version{margin-top:5px;color:#a0a9b7}.app-main{margin-left:var(--sidebar-width);min-width:0;flex:1;display:flex;flex-direction:column}.header{height:76px;min-height:76px;background:white;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:0 31px}.header-left,.header-right{display:flex;align-items:center;gap:17px}.header-crumb{font-weight:500;color:#79869a}.header-crumb span{padding:0 10px;color:#bbc3cf}.header-crumb strong{color:#25334c;font-weight:660}.header-demo{font-size:14px;color:#738096}.avatar{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:#e9eefb;color:#2454d3;font-weight:750}.icon-btn{display:inline-grid;place-items:center;width:38px;height:38px;border:0;border-radius:7px;background:transparent;color:#5d6c83;font-size:26px}.icon-btn:hover{background:#f0f3f8}.menu-toggle{display:none}.content{padding:33px 34px 42px;width:100%;max-width:1700px;margin:0 auto;flex:1}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:26px}.page-heading p{color:var(--muted);font-size:15px;margin:0}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:17px}.metric,.surface{background:var(--panel);border-radius:var(--radius)}.metric{padding:20px 22px;min-width:0}.metric-label{font-size:14px;color:#67768b;display:block;font-weight:570}.metric strong{display:block;font-size:27px;line-height:1.3;letter-spacing:-.6px;margin:10px 0 7px;overflow-wrap:anywhere}.metric small{font-size:14px;color:#7c899b}.positive{color:var(--positive);font-weight:700}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(330px,1fr);gap:17px;margin-top:18px}.surface-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:21px 23px}.surface-heading p{margin:0;color:#7a8799;font-size:14px}.text-link{color:var(--blue);font-weight:650;white-space:nowrap}.text-link:hover{text-decoration:underline}.table-scroll{overflow-x:auto}table{border-collapse:collapse;width:100%;text-align:left;white-space:nowrap}th,td{padding:16px 22px;border-bottom:1px solid #eff1f5;font-size:14px}tr:last-child td{border-bottom:0}th{color:#79879a;font-weight:650;background:#fcfdff}td{color:#46546a}td:first-child{color:#263752;font-weight:650}.pill{display:inline-flex;align-items:center;padding:3px 10px;border-radius:5px;font-size:14px;font-weight:650;white-space:nowrap}.pill.amber{background:#fff4dd;color:#9a6615}.pill.green{background:#e7f7ef;color:#13744a}.pill.blue{background:#eaf1ff;color:#315bb2}.pill.neutral{background:#f1f3f7;color:#6c798d}.integration{display:flex;flex-direction:column}.integration-row{display:flex;align-items:center;gap:12px;margin:0 21px;padding:16px 0;border-bottom:1px solid var(--line)}.integration-row:nth-last-of-type(1){border-bottom:0}.integration-symbol{height:37px;width:37px;border-radius:7px;background:#edf2fb;color:#355ec1;display:grid;place-items:center;font-weight:750;font-size:16px;flex-shrink:0}.integration-row div:nth-child(2){display:flex;flex-direction:column;flex:1;min-width:0}.integration-row strong{font-size:14px}.integration-row div:nth-child(2) span{color:#7b889c;font-size:14px}.integration-btn{align-self:flex-start;margin:16px 22px 23px}.disclaimer{color:#8290a1;margin:18px 2px 0;font-size:14px}.footer{display:flex;align-items:center;justify-content:space-between;padding:21px 34px;background:var(--bg);color:#65748b;gap:12px;font-size:14px}.footer strong{color:#62758e}.empty-state{text-align:center;display:flex;flex-direction:column;align-items:center;padding:65px 26px}.empty-glyph{font-size:40px;line-height:1;color:#7390d8;margin-bottom:15px}.empty-state p{max-width:520px;font-size:15px;color:#7c899b;margin:7px 0 22px}.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px}.settings-card{padding:23px}.settings-card>p{color:var(--muted);font-size:15px;margin-bottom:20px}.settings-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 0}.settings-item>span:first-child{color:#65748b}.toast{position:fixed;bottom:22px;right:22px;max-width:min(420px,calc(100vw - 40px));padding:13px 19px;border:1px solid #d6deeb;border-radius:7px;background:#fff;color:#263750;opacity:0;pointer-events:none;z-index:60;transition:opacity .15s}.toast-visible{opacity:1}.mobile-overlay[hidden]{display:none!important}
@media(max-width:1180px){.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-grid{grid-template-columns:1fr}.integration-row{max-width:none}}
@media(max-width:800px){.sidebar{transform:translateX(-100%);transition:transform .16s ease;box-shadow:none}.sidebar.sidebar-open{transform:translateX(0)}.sidebar .sidebar-close{display:inline-grid}.menu-toggle{display:inline-grid}.app-main{margin-left:0}.header{padding:0 19px;height:66px;min-height:66px}.header-demo{display:none}.mobile-overlay{position:fixed;inset:0;background:rgba(11,24,46,.32);z-index:15}.content{padding:25px 19px 36px}.footer{padding:18px 19px}.settings-grid{grid-template-columns:1fr}}
@media(max-width:540px){h1{font-size:24px}.page-heading{align-items:flex-start;flex-direction:column}.metric-grid{gap:11px}.metric{padding:16px}.metric strong{font-size:23px}.header-left,.header-right{gap:8px}.header-crumb{font-size:14px}.header-crumb span{padding:0 4px}.header .avatar{display:none}.surface-heading{padding:17px}.integration-row{margin:0 16px}.integration-row .pill{font-size:14px}.footer{flex-wrap:wrap}.login-footer{padding:18px 20px}.login-brand{margin-bottom:35px}.login-shell h1{font-size:29px}}
@media(max-width:370px){.metric-grid{grid-template-columns:1fr}.header-crumb{max-width:190px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important}}

.login-logo { display: block; width: 220px; height: auto; max-width: 100%; margin: 0 0 30px; }
.login-form label:not(:first-child) { margin-top: 7px; }
.header-role { color: var(--muted); }
.header-left, .header-crumb { min-width: 0; }
.menu-toggle { flex-shrink: 0; }
.header-crumb { overflow-wrap: anywhere; }
.sidebar-bottom { overflow-wrap: anywhere; }
.shortcut-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(240px, 100%), 1fr)); gap: 16px; }
.shortcut { display: flex; align-items: center; gap: 14px; padding: 18px; transition: background-color .14s; }
.shortcut:hover { background: var(--blue-weak); }
.shortcut-icon { display: grid; place-items: center; flex: 0 0 38px; height: 38px; border-radius: 7px; background: var(--blue-weak); color: var(--blue); }
.shortcut strong { display: block; font-size: 17px; }
.shortcut strong + span { display: block; color: var(--muted); }
.feedback { padding: 10px 14px; border-radius: 7px; color: var(--ink); background: var(--blue-weak); }
.feedback-error { color: #8b2929; background: #fff5f5; }
.operation-form { display: grid; gap: 12px; align-items: end; }
.operation-form label { min-width: 0; display: grid; gap: 4px; font-weight: 650; }
.operation-form .btn { justify-self: start; }
.contact-form { grid-template-columns: repeat(2, minmax(0, 1fr)) auto; }
.assignment-form { display: flex; align-items: center; gap: 8px; }
.section-gap { margin-top: 17px; min-width: 0; }
.surface-note { margin: 0; padding: 20px 23px; color: var(--muted); }
.section-note { margin: 15px 0 0; }
.message { border-top: 1px solid var(--line); margin-top: 14px; padding-top: 12px; overflow-wrap: anywhere; }
.message p { margin: 4px 0 0; white-space: pre-wrap; }
.message > span { color: var(--muted); margin-left: 6px; }
.menu-open { overflow: hidden; }
@media (max-width: 800px) {
  .sidebar { visibility: hidden; }
  .sidebar.sidebar-open { visibility: visible; }
}
@media (max-width: 540px) {
  .header-role { display: none; }
  .contact-form { grid-template-columns: 1fr; }
}

.operator-table td:first-child { white-space: normal; overflow-wrap: anywhere; }
.operator-table td:first-child .text-link { white-space: normal; }
.contact-phone { display: block; color: var(--muted); font-weight: 500; white-space: nowrap; }
@media (max-width: 540px) {
  .operator-table th, .operator-table td { padding: 12px 14px; }
}

.account-divider { border: 0; margin: 24px 0; }

/* Componentes compartidos del panel */
.workspace-metrics { margin-bottom: 20px; }
.work-list .surface-heading { flex-wrap: wrap; }
.list-search, .row-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.list-search input { flex: 1 1 130px; width: 180px; }
.row-actions input { width: 125px; }
.cell-note { display: block; color: var(--muted); font-weight: 400; }
.cell-wrap { white-space: normal; overflow-wrap: anywhere; max-width: 280px; }
.inline-action { display: inline-block; }
.list-pagination { display: flex; flex-wrap: wrap; gap: 10px; padding: 12px; }
.workspace-dialog { position: fixed; inset: 0; width: min(520px, calc(100% - 32px)); max-height: calc(100% - 32px); margin: auto; padding: 22px; border: 0; border-radius: var(--radius); background: var(--panel); color: var(--ink); overflow: auto; z-index: 25; }
.workspace-dialog::backdrop { background: rgba(20, 34, 53, .38); }
.dialog-heading { display: flex; justify-content: space-between; align-items: center; gap: 8px; margin-bottom: 12px; }
.app-toast { position: fixed; right: 18px; bottom: 18px; z-index: 60; max-width: min(400px, calc(100% - 36px)); margin: 0; background: #eaf4fc; }
/* La carga conserva las proporciones y la distribución de la pantalla de destino. */
.skeleton-status { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.skeleton-layout > :is(.work-list, .settings-grid, .surface) + :is(.work-list, .settings-grid, .surface) { margin-top: 17px; }
.skeleton-heading-text, .skeleton-shortcut-text { flex: 1; min-width: 0; display: grid; gap: 8px; }
.skeleton-shape { max-width: 100%; height: 13px; border-radius: 6px; background: var(--line); }
.skeleton-title { width: 185px; height: 26px; }
.skeleton-subtitle { width: min(100%, 365px); }
.skeleton-label { width: 128px; height: 17px; }
.skeleton-button { width: 124px; height: 42px; }
.skeleton-field, .skeleton-contact { width: 100%; height: var(--field-height); background: var(--field); }
.skeleton-contact { width: min(100%, 620px); }
.skeleton-short { width: 60%; }
.skeleton-line { width: 86%; }
.skeleton-setting { width: 100%; height: 25px; }
.skeleton-message { height: 70px; }
.skeleton-card { display: grid; align-content: start; gap: 12px; }
.skeleton-metric { width: 62px; height: 28px; }
.skeleton-icon { width: 38px; height: 38px; flex: 0 0 38px; }
.skeleton-shortcut { min-height: 88px; }
.skeleton-controls { display: flex; gap: 8px; }
.skeleton-controls .skeleton-button { width: 70px; height: 36px; }
.skeleton-search { width: 180px; height: 36px; background: var(--field); }
.skeleton-list { padding-bottom: 8px; }
.skeleton-row { display: grid; grid-template-columns: var(--skeleton-columns); gap: 12px; padding: 16px 22px; }
.skeleton-row:first-child { background: var(--field); }
.skeleton-modal-backdrop { position: fixed; z-index: 24; inset: 0; display: grid; place-items: center; padding: 16px; background: rgba(20, 34, 53, .38); }
.skeleton-modal-backdrop .skeleton-card { width: min(520px, 100%); max-height: 100%; overflow: hidden; }
@media (max-width: 540px) {
  .skeleton-controls { width: 100%; }
  .skeleton-search { flex: 1; }
  .skeleton-row { gap: 8px; padding: 13px 14px; }
  .skeleton-page-heading > .skeleton-button { height: 38px; }
}
.content[aria-busy] > :not(.page-skeleton) { display: none; }
.operation-form[aria-busy] { opacity: .65; transition: opacity .15s; }
@media (max-width: 540px) {
  .workspace-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .workspace-dialog { padding: 16px; }
  .list-search { width: 100%; }
}

/* Controles compartidos */
:is(input:not([type="hidden"], [type="checkbox"]), select, textarea) {
  appearance: none;
  width: 100%;
  min-width: 0;
  max-width: 100%;
  min-height: var(--field-height);
  padding: 9px 12px;
  border: 0;
  border-radius: var(--radius);
  background-color: var(--field);
  color: var(--ink);
  font: inherit;
  font-weight: 500;
  line-height: 1.5;
  transition: background-color .14s;
}
:is(input:not([type="hidden"], [type="checkbox"]), select, textarea):hover {
  background-color: var(--field-hover);
}
:is(input:not([type="hidden"]), select, textarea):disabled {
  opacity: .62;
  cursor: not-allowed;
}
input::placeholder, textarea::placeholder { color: var(--muted); }
select:not([multiple]) {
  padding-inline-end: 36px;
  background-image: url('../img/select-chevron.svg');
  background-repeat: no-repeat;
  background-position: right 12px center;
  background-size: 16px 16px;
  cursor: pointer;
}
textarea { resize: vertical; }
input[type="date"] { display: block; }
input[type="number"] { appearance: textfield; }
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button { appearance: none; margin: 0; }
input[type="file"] { padding: 6px; }
input[type="file"]::file-selector-button {
  border: 0;
  border-radius: 6px;
  background: var(--panel);
  color: var(--ink);
  font: inherit;
  font-weight: 650;
  padding: 6px 10px;
  margin-inline-end: 8px;
  cursor: pointer;
}
input[type="checkbox"] {
  appearance: none;
  width: 18px;
  height: 18px;
  margin: 0 6px 0 0;
  vertical-align: middle;
  border: 1px solid var(--muted);
  border-radius: 5px;
  background: var(--panel);
  cursor: pointer;
}
input[type="checkbox"]:checked {
  border-color: var(--blue);
  background: var(--blue) url('../img/field-check.svg') center / 14px no-repeat;
}
.list-search input { width: 180px; }
.row-actions input:not([type="hidden"]) { width: 125px; }
.row-actions select { width: auto; }
.assignment-form select { min-width: 125px; }
@media (max-width: 800px) {
  :is(input:not([type="hidden"], [type="checkbox"]), select, textarea) { font-size: 16px; }
}
@media (forced-colors: active) {
  :is(input:not([type="hidden"]), select, textarea) { border: 1px solid ButtonText; }
  select, input[type="checkbox"] { appearance: auto; background-image: none; }
}

/* Navegación y perfil */
.sidebar .brand-link img { width: 104px; height: auto; }
.sidebar-nav { padding: 8px 14px 18px; }
.nav-group-title { padding: 9px 8px 4px; color: var(--muted); text-transform: none; letter-spacing: 0; font-weight: 550; }
.nav-item { gap: 10px; min-height: 37px; padding: 6px 8px; font-weight: 500; }
.nav-item.active { font-weight: 650; }
.nav-icon { width: 17px; }
.nav-icon svg { display: block; width: 17px; height: 17px; }
.sidebar-close svg { width: 20px; height: 20px; }

.header { position: relative; z-index: 5; }
.header-right { gap: 9px; min-width: 0; }
.header-profile, .profile-icon { display: flex; align-items: center; }
.header-profile { gap: 8px; min-width: 0; margin-inline-end: 4px; }
.profile-icon { justify-content: center; flex: 0 0 34px; height: 34px; border-radius: 7px; color: var(--blue); background: var(--blue-weak); }
.profile-icon svg { width: 19px; height: 19px; }
.profile-details { display: grid; min-width: 0; line-height: 1.35; }
.profile-details strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 230px; }
.profile-details span { color: var(--muted); }
.header-action { position: relative; width: 38px; height: 38px; }
.header-action svg { width: 21px; height: 21px; }
.notifications summary { cursor: pointer; list-style: none; }
.notifications summary::-webkit-details-marker { display: none; }
.notifications[open] summary { color: var(--blue); background: var(--blue-weak); }
.notification-dot { position: absolute; top: 7px; right: 7px; width: 8px; height: 8px; border-radius: 50%; background: var(--blue); }
.notification-panel { position: absolute; top: calc(100% + 6px); right: 23px; width: min(350px, calc(100% - 28px)); max-height: min(420px, calc(100dvh - 90px)); overflow: auto; padding: 15px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--panel); }
.notifications[open] .notification-panel { animation: notifications-open .18s ease-out; }
@keyframes notifications-open { from { opacity: 0; } to { opacity: 1; } }
.notification-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; }
.notification-heading h2 { margin: 0; }
.notification-heading > span, .notification-empty { color: var(--muted); }
.notification-empty { margin: 10px 0 0; }
.notification-list { padding: 0; margin: 10px 0; list-style: none; }
.notification-list a { display: block; padding: 7px 9px; border-radius: 6px; overflow-wrap: anywhere; }
.notification-list a:hover { background: var(--field); }
.notification-list a > span { display: block; color: var(--muted); }
.notification-all { display: inline-block; white-space: normal; padding: 4px 8px; }
@media (max-width: 540px) {
  .header { gap: 6px; padding-inline: 12px; }
  .header-left { flex: 1 1 0; }
  .header-right { gap: 3px; flex: 0 1 auto; }
  .profile-icon { flex-basis: 29px; height: 29px; }
  .profile-details strong { max-width: 100px; }
  .profile-details span { display: none; }
  .header-action { width: 34px; }
  .notification-panel { right: 12px; }
}
@media (prefers-reduced-motion: reduce) {
  .notifications[open] .notification-panel { animation: none; }
}

/* Scroll discreto del menú lateral */
.sidebar-nav { overflow-x: hidden; overflow-y: auto; }
.sidebar-nav::-webkit-scrollbar { width: 0; }
.sidebar-nav.has-overflow::-webkit-scrollbar { width: 2px; }
.sidebar-nav.has-overflow::-webkit-scrollbar-track { background: #edf1f5; }
.sidebar-nav.has-overflow::-webkit-scrollbar-thumb { background: #8dbce3; border-radius: 2px; }
@supports not selector(::-webkit-scrollbar) {
  .sidebar-nav { scrollbar-width: none; }
  .sidebar-nav.has-overflow { scrollbar-width: thin; scrollbar-color: #8dbce3 #edf1f5; }
}
