/* KYRA CRM · Estilos de aplicación (layout, páginas y puente con Bootstrap). Cargar DESPUÉS de tokens y components. */
.ky-body{margin:0;background:var(--ky-bg);color:var(--ky-text)}
.ky-skip{position:absolute;left:-999px}.ky-skip:focus{left:8px;top:8px;z-index:99;background:var(--ky-surface);padding:8px 12px;border-radius:8px}
.ky-main{min-width:0;display:flex;flex-direction:column}
.ky-sidebar{position:sticky;top:0;height:100vh;overflow-y:auto}
.ky-nav-bottom{margin-top:auto}
.ky-topbar{position:sticky;top:0;z-index:5}
.ky-toptitle{margin-right:auto;white-space:nowrap}
.ky-search{position:relative;display:flex;align-items:center;width:min(300px,34vw)}
.ky-search .ky-icon{position:absolute;left:12px}.ky-search .ky-input{padding-left:36px}
.ky-burger{display:none}
.ky-pagehead{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.ky-pagehead h1{margin-right:auto}
.ky-kpi-note{font-size:var(--ky-fs-sm);color:var(--ky-text-muted)}
.ky-grid{display:grid;gap:16px}.ky-g2{grid-template-columns:repeat(2,minmax(0,1fr))}.ky-g3{grid-template-columns:repeat(3,minmax(0,1fr))}.ky-g4{grid-template-columns:repeat(4,minmax(0,1fr))}.ky-g21{grid-template-columns:1.2fr 1fr}
.ky-card h4{margin-bottom:8px}.ky-stackv{display:grid;gap:16px;align-content:start}
.ky-person{display:inline-flex;align-items:center;gap:8px}
.ky-scroll{overflow-x:auto}
.ky-toolbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.ky-toolbar .grow{flex:1;min-width:220px}
.ky-chip{display:inline-flex;align-items:center;height:32px;padding:0 14px;border-radius:999px;border:1px solid var(--ky-border-strong);background:var(--ky-surface);color:var(--ky-text);font-weight:600;font-size:13px;text-decoration:none}
.ky-chip.on{background:var(--ky-primary-soft);color:var(--ky-accent-text);border-color:var(--ky-primary)}
.ky-empty{display:grid;gap:10px;justify-items:center;text-align:center;padding:40px 16px;color:var(--ky-text-muted)}
.ky-empty b{color:var(--ky-text);font-family:var(--ky-font-display);font-size:18px}
.ky-task{display:flex;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid var(--ky-border)}.ky-task:last-child{border:0}.ky-task span.t{flex:1}
.ky-hbars{display:grid;gap:8px}.ky-hbar{display:grid;grid-template-columns:96px 1fr 52px;gap:10px;align-items:center;font-size:13px}.ky-hbar>span{color:var(--ky-text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ky-hbar b{text-align:right}
.ky-stack{display:flex;height:22px;border-radius:8px;overflow:hidden;gap:2px;margin-bottom:10px}.ky-stack i{display:block}
.ky-legend{display:flex;flex-wrap:wrap;gap:6px 16px}.ky-leg{display:inline-flex;gap:6px;align-items:center;font-size:13px}.ky-leg i{width:10px;height:10px;border-radius:3px}
.ky-line{width:100%;height:auto}
.ky-steps{display:flex;gap:12px;flex-wrap:wrap}.ky-step{display:flex;align-items:center;gap:8px;flex:1;min-width:130px;font-weight:700;font-size:13px;color:var(--ky-text-muted)}.ky-step i{font-style:normal;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:var(--ky-surface-2)}
.ky-step.on{color:var(--ky-text)}.ky-step.on i{background:var(--ky-primary);color:var(--ky-on-primary)}.ky-step.done i{background:var(--ky-success-bg);color:var(--ky-success-text)}
.ky-pane[hidden]{display:none}.ky-formgrid{display:grid;gap:16px;grid-template-columns:repeat(3,minmax(0,1fr))}.ky-formgrid.c4{grid-template-columns:repeat(4,minmax(0,1fr))}.ky-formgrid.c2{grid-template-columns:repeat(2,minmax(0,1fr))}
.ky-actions{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}
.ky-alert{display:flex;gap:10px;padding:12px 14px;border-radius:var(--ky-r-md);font-size:14px}.ky-alert.success{background:var(--ky-success-bg);color:var(--ky-success-text)}.ky-alert.danger{background:var(--ky-danger-bg);color:var(--ky-danger-text)}.ky-alert.warning{background:var(--ky-warning-bg);color:var(--ky-warning-text)}.ky-alert.info{background:var(--ky-info-bg);color:var(--ky-info-text)}
/* Inbox WhatsApp */
.ky-inbox{display:grid;grid-template-columns:300px minmax(0,1fr) 260px;min-height:560px;padding:0;overflow:hidden}
.ky-inbox>*{min-width:0}.ky-inbox-list{border-right:1px solid var(--ky-border);display:flex;flex-direction:column}.ky-inbox-side{border-left:1px solid var(--ky-border);padding:16px;display:grid;gap:12px;align-content:start}
.ky-inbox-filters{padding:12px;display:grid;gap:8px;border-bottom:1px solid var(--ky-border)}
.ky-chatitem{display:flex;gap:10px;padding:12px;border-bottom:1px solid var(--ky-border);text-decoration:none;color:inherit}.ky-chatitem:hover,.ky-chatitem.on{background:var(--ky-primary-soft)}
.ky-chatitem .m{font-size:13px;color:var(--ky-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ky-chatitem .h{display:flex;justify-content:space-between;gap:6px;font-size:14px}.ky-chatitem time{font-size:11px;color:var(--ky-text-faint)}
.ky-convo{display:flex;flex-direction:column}.ky-convo-head{padding:12px 16px;border-bottom:1px solid var(--ky-border);display:flex;align-items:center;gap:10px}
.ky-chat{flex:1;padding:16px;display:flex;flex-direction:column;gap:10px;background:var(--ky-bg);overflow-y:auto}
.ky-msg{max-width:72%;padding:10px 14px;border-radius:14px;font-size:14px;background:var(--ky-surface-2);border-bottom-left-radius:4px;align-self:flex-start}
.ky-msg.me,.ky-msg.user{align-self:flex-end;background:var(--ky-sidebar-bg);color:#fff;border-radius:14px;border-bottom-right-radius:4px}
.ky-chatform{padding:12px;display:flex;gap:8px;border-top:1px solid var(--ky-border);background:var(--ky-surface)}
/* KORA */
.ky-kora-fab{position:fixed;right:20px;bottom:20px;width:48px;height:48px;border-radius:50%;border:0;background:var(--ky-primary);color:var(--ky-on-primary);display:grid;place-items:center;box-shadow:var(--ky-shadow-md);cursor:pointer;z-index:20}
.ky-kora-fab .ky-icon{--ky-icon-color:var(--ky-ink)}.ky-kora-fab:hover{background:var(--ky-primary-hover)}
.ky-kora-panel{position:fixed;right:20px;bottom:80px;width:min(360px,calc(100vw - 32px));height:min(480px,70vh);background:var(--ky-surface);border:1px solid var(--ky-border);border-radius:var(--ky-r-xl);box-shadow:var(--ky-shadow-lg);display:flex;flex-direction:column;overflow:hidden;z-index:21}
.ky-kora-panel[hidden]{display:none}.ky-kora-panel>header{display:flex;justify-content:space-between;align-items:center;padding:10px 12px 10px 16px;background:var(--ky-sidebar-bg);color:#fff}
.ky-kora-page{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:16px}.ky-kora-page .ky-card{display:flex;flex-direction:column;min-height:460px;padding:0;overflow:hidden}
.ky-faq a{display:flex;gap:6px;align-items:center;font-size:13px;padding:6px 0;cursor:pointer;color:var(--ky-text)}
/* Login */
.ky-login{display:grid;grid-template-columns:1fr 1fr;min-height:100vh;background:var(--ky-surface)}
.ky-login-brand{background:var(--ky-sidebar-bg);color:#fff;padding:48px;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}
.ky-login-brand h2{color:#fff;font-size:34px;max-width:12em}.ky-login-brand p{color:#A9B5D6;max-width:26em}
.ky-login-form{display:grid;align-content:center;gap:16px;padding:48px;max-width:440px;width:100%;margin:auto}
.ky-seal{font-size:12px;color:var(--ky-text-faint);margin-top:8px}.ky-login-brand .ky-seal{color:#8FA0C8}
/* Selector de módulos */
.ky-modgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;max-width:900px}
.ky-mod{display:flex;gap:12px;align-items:center;text-decoration:none;color:inherit}.ky-mod:hover{border-color:var(--ky-primary)}.ky-mod small{display:block;color:var(--ky-text-muted);font-size:12px}
/* Responsive */
@media (max-width:1100px){.ky-g4{grid-template-columns:repeat(2,minmax(0,1fr))}.ky-inbox{grid-template-columns:280px minmax(0,1fr)}.ky-inbox-side{display:none}}
@media (max-width:900px){
  .ky-app{grid-template-columns:1fr}.ky-sidebar{position:fixed;left:0;top:0;bottom:0;width:260px;z-index:30;transform:translateX(-100%);transition:transform .2s}.ky-app.open .ky-sidebar{transform:none}
  .ky-burger{display:inline-flex}.ky-scrim{display:none}.ky-app.open~.ky-scrim{display:block;position:fixed;inset:0;background:var(--ky-overlay);z-index:25}
  .ky-search{display:none}.ky-page{padding:16px}.ky-g2,.ky-g3,.ky-g21,.ky-kora-page{grid-template-columns:1fr}.ky-formgrid,.ky-formgrid.c4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ky-inbox{grid-template-columns:1fr}.ky-inbox-list{border-right:0}.ky-login{grid-template-columns:1fr}.ky-login-brand{display:none}}
@media (max-width:560px){.ky-formgrid,.ky-formgrid.c4,.ky-formgrid.c2,.ky-g4{grid-template-columns:1fr}.ky-toptitle{font-size:16px}}

/* ============ PUENTE CON BOOTSTRAP 5 (Fase 1) ============
   Si tus pantallas actuales usan Bootstrap, carga este CSS después de bootstrap.css
   y los botones, tarjetas, tablas, formularios y badges toman los colores de Kyra sin tocar el HTML. */
.btn-primary,.btn-danger,.btn-success,.btn-warning{background:var(--ky-primary)!important;border-color:var(--ky-primary)!important;color:var(--ky-on-primary)!important;font-weight:700}
.btn-primary:hover,.btn-danger:hover,.btn-success:hover,.btn-warning:hover{background:var(--ky-primary-hover)!important}
.btn-secondary,.btn-outline-secondary,.btn-light{background:var(--ky-surface)!important;border:1px solid var(--ky-border-strong)!important;color:var(--ky-text)!important}
.bg-primary,.navbar.bg-primary,.navbar-dark.bg-primary,.bg-danger,.bg-gradient{background:var(--ky-sidebar-bg)!important;background-image:none!important}
.card{background:var(--ky-surface);border:1px solid var(--ky-border);border-radius:var(--ky-r-lg);box-shadow:var(--ky-shadow-sm)}
.card-header{background:var(--ky-surface-2)!important;color:var(--ky-text)!important;border-bottom:1px solid var(--ky-border);background-image:none!important}
.form-control,.form-select{background:var(--ky-surface);color:var(--ky-text);border:1px solid var(--ky-border-strong);border-radius:var(--ky-r-md)}
.form-control:focus,.form-select:focus{border-color:var(--ky-primary);box-shadow:var(--ky-focus)}
.table thead th{background:var(--ky-surface-2);color:var(--ky-text-muted);font-size:12px;text-transform:uppercase;letter-spacing:.08em}
.table-dark{--bs-table-bg:var(--ky-sidebar-bg)}
.badge.bg-success{background:var(--ky-success-bg)!important;color:var(--ky-success-text)!important}.badge.bg-warning{background:var(--ky-warning-bg)!important;color:var(--ky-warning-text)!important}
.badge.bg-danger{background:var(--ky-danger-bg)!important;color:var(--ky-danger-text)!important}.badge.bg-info,.badge.bg-primary{background:var(--ky-info-bg)!important;color:var(--ky-info-text)!important}
.kpi-card,.stat-card,.small-box{background:var(--ky-surface)!important;background-image:none!important;color:var(--ky-text)!important;border:1px solid var(--ky-border)}
a{color:var(--ky-link)}
