/* Kaisfera · sistema de diseño 2027 (claude.ai/artifact/VvYo17nYxstggFkZGKRwYi): tokens.json + bundle.css,
   más las piezas propias del panel al final. Generado: los tokens se cambian en el sistema. */
:root{--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-6:24px;--space-8:32px;--radius-chip:5px;--radius-xs:6px;--radius-sm:7px;--radius:8px;--radius-lg:10px;--radius-panel:12px;--radius-full:999px;--control-h:32px;--row-h:46px;--nav-h:36px;--header-h:48px;--sidebar-w:256px;--column-w:768px;--font-sans:Geist, system-ui, "Segoe UI", Roboto, sans-serif;--font-mono:"Geist Mono", ui-monospace, Consolas, monospace;--surface-0:#0b0b0b;--surface-chrome:#101010;--surface-1:#151515;--surface-2:#1a1a19;--surface-3:#20201f;--text-1:#f0efec;--text-2:#c3c2b7;--text-3:#95938c;--text-disabled:rgba(255, 255, 255, 0.35);--text-on-primary:#0b0b0b;--text-on-danger:#ffffff;--line:rgba(255, 255, 255, 0.10);--line-strong:rgba(255, 255, 255, 0.20);--line-stronger:rgba(255, 255, 255, 0.40);--row-line:rgba(255, 255, 255, 0.05);--fill-primary:#ffffff;--fill-primary-hover:#e1e0d9;--fill-secondary:rgba(255, 255, 255, 0.10);--fill-secondary-hover:rgba(255, 255, 255, 0.14);--fill-field:rgba(255, 255, 255, 0.05);--fill-field-ring:rgba(255, 255, 255, 0.16);--fill-ghost-hover:rgba(255, 255, 255, 0.075);--fill-selected:rgba(255, 255, 255, 0.15);--fill-row-hover:rgba(255, 255, 255, 0.03);--fill-chip:rgba(255, 255, 255, 0.05);--fill-control:rgba(255, 255, 255, 0.10);--fill-disabled:rgba(255, 255, 255, 0.05);--knob:#ffffff;--accent-text:#6da7ec;--accent-bg:#032042;--accent-border:#0d366b;--accent-fill:#2a78d6;--success-text:#0ca30c;--success-bg:#11260f;--success-border:#074506;--success-fill:#009300;--warning-text:#db9300;--warning-bg:#311a00;--warning-border:#512e00;--warning-fill:#fab219;--danger-text:#ec7e7e;--danger-bg:#3c0e0e;--danger-border:#641919;--danger-fill:#d03b3b;--pro-text:#a096eb;--pro-bg:#1d1649;--pro-border:#322777;--brand-blue:#3478af;--brand-violet:#7060c1;--brand-rose:#c4726c;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #00000040;--focus-ring:inset 0 0 0 2px #2a78d6;color-scheme:dark}
:root[data-theme="light"]{--surface-0:#1c1c1a;--surface-chrome:#f1f0ec;--surface-1:#f8f7f4;--surface-2:#ffffff;--surface-3:#ffffff;--text-1:#1c1c1a;--text-2:#4a4943;--text-3:#6b6962;--text-disabled:rgba(28, 28, 26, 0.35);--text-on-primary:#ffffff;--text-on-danger:#ffffff;--line:rgba(28, 28, 26, 0.10);--line-strong:rgba(28, 28, 26, 0.20);--line-stronger:rgba(28, 28, 26, 0.40);--row-line:rgba(28, 28, 26, 0.06);--fill-primary:#1c1c1a;--fill-primary-hover:#33322e;--fill-secondary:rgba(28, 28, 26, 0.08);--fill-secondary-hover:rgba(28, 28, 26, 0.12);--fill-field:rgba(28, 28, 26, 0.04);--fill-field-ring:rgba(28, 28, 26, 0.22);--fill-ghost-hover:rgba(28, 28, 26, 0.06);--fill-selected:rgba(28, 28, 26, 0.10);--fill-row-hover:rgba(28, 28, 26, 0.03);--fill-chip:rgba(28, 28, 26, 0.06);--fill-control:rgba(28, 28, 26, 0.15);--fill-disabled:rgba(28, 28, 26, 0.05);--knob:#ffffff;--accent-text:#1d5fbf;--accent-bg:#e4eefb;--accent-border:#bcd4f5;--accent-fill:#2563eb;--success-text:#1d6b2a;--success-bg:#e5f4e8;--success-border:#b5dcbd;--success-fill:#1f7a33;--warning-text:#8a5300;--warning-bg:#fdf1d6;--warning-border:#efd18a;--warning-fill:#d98e04;--danger-text:#b3261e;--danger-bg:#fbe6e4;--danger-border:#f0b8b4;--danger-fill:#c62828;--pro-text:#5b3fc4;--pro-bg:#ece8fb;--pro-border:#cdc3f3;--brand-blue:#3478af;--brand-violet:#7060c1;--brand-rose:#c4726c;--shadow-md:0 4px 12px -2px #1c1c1a1f;--shadow-lg:0 16px 32px -8px #1c1c1a33;--focus-ring:inset 0 0 0 2px #2563eb;color-scheme:light}
html,body{margin:0;background:var(--surface-1);color:var(--text-1)}
/* Kaisfera: componentes. Todos los colores y medidas salen de tokens.css. */

.kf{font-family:var(--font-sans);font-size:14px;line-height:20px;color:var(--text-1);background:var(--surface-1);-webkit-font-smoothing:antialiased;font-feature-settings:"ss01"}
.kf *{box-sizing:border-box}
.kf h1,.kf h2,.kf h3,.kf p{margin:0}
.kf .i{width:16px;height:16px;flex:none;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}
.kf .i-20{width:20px;height:20px}
.kf .num{font-variant-numeric:tabular-nums}
.kf .mono{font-family:var(--font-mono);font-size:13px}
.kf .t2{color:var(--text-2)}
.kf .t3{color:var(--text-3)}
.kf .sm{font-size:12px;line-height:16px}

/* Botones */
.kf-btn{height:var(--control-h);padding:0 12px;border-radius:var(--radius);border:0;font:inherit;font-size:14px;display:inline-flex;align-items:center;gap:6px;cursor:pointer;white-space:nowrap;text-decoration:none;color:var(--text-1);background:var(--fill-secondary)}
.kf-btn:focus-visible{outline:none;box-shadow:var(--focus-ring)}
.kf-btn--primary{background:var(--fill-primary);color:var(--text-on-primary);font-weight:500}
.kf-btn--primary:hover{background:var(--fill-primary-hover)}
.kf-btn--secondary:hover{background:var(--fill-secondary-hover)}
.kf-btn--ghost{background:transparent;color:var(--text-2)}
.kf-btn--ghost:hover{background:var(--fill-ghost-hover)}
.kf-btn--danger{background:var(--danger-fill);color:var(--text-on-danger);font-weight:500}
.kf-btn--icon{width:var(--control-h);padding:0;justify-content:center;background:transparent;color:var(--text-2)}
.kf-btn--icon:hover{background:var(--fill-ghost-hover)}
.kf-btn--sm{height:28px;padding:0 10px;border-radius:var(--radius-sm)}
.kf-btn:disabled,.kf-btn[aria-disabled="true"]{background:var(--fill-disabled);color:var(--text-disabled);cursor:not-allowed}
.kf-link{color:var(--accent-text);text-decoration:none;font-size:14px;background:none;border:0;padding:0;font-family:inherit;cursor:pointer}
.kf-link:hover{text-decoration:underline}

/* Chips y contador */
.kf-chip{display:inline-flex;align-items:center;gap:4px;height:20px;padding:0 8px;border-radius:var(--radius-chip);font-size:12px;font-weight:500;line-height:16px;white-space:nowrap;background:var(--fill-chip);color:var(--text-2);vertical-align:middle}
.kf-chip .i{width:12px;height:12px}
.kf-chip--accent{background:var(--accent-bg);color:var(--accent-text);box-shadow:inset 0 0 0 1px var(--accent-border)}
.kf-chip--success{background:var(--success-bg);color:var(--success-text);box-shadow:inset 0 0 0 1px var(--success-border)}
.kf-chip--warning{background:var(--warning-bg);color:var(--warning-text);box-shadow:inset 0 0 0 1px var(--warning-border)}
.kf-chip--danger{background:var(--danger-bg);color:var(--danger-text);box-shadow:inset 0 0 0 1px var(--danger-border)}
.kf-chip--outline{background:transparent;box-shadow:inset 0 0 0 1px var(--line-strong)}
.kf-chip--scheduled{background:transparent;color:var(--accent-text);box-shadow:inset 0 0 0 1px var(--accent-border)}
.kf-chip--muted{background:transparent;color:var(--text-3);padding:0}
.kf-count{display:inline-flex;align-items:center;justify-content:center;height:22px;min-width:22px;padding:0 7px;border-radius:var(--radius-full);background:var(--fill-chip);color:var(--text-2);font-size:12px;font-weight:500;font-variant-numeric:tabular-nums}

/* Campos */
.kf-field{display:flex;flex-direction:column;gap:6px;min-width:0}
.kf-label{font-size:14px;font-weight:500;color:var(--text-1)}
.kf-input{height:var(--control-h);width:100%;padding:0 12px;border:0;border-radius:var(--radius);background:var(--fill-field);box-shadow:inset 0 0 0 1px var(--fill-field-ring);color:var(--text-1);font:inherit}
.kf-input::placeholder{color:var(--text-3)}
.kf-input:focus{outline:none;box-shadow:var(--focus-ring)}
.kf-input[readonly]{color:var(--text-2)}
.kf-help{font-size:12px;line-height:16px;color:var(--text-3)}
.kf-error{font-size:12px;line-height:16px;color:var(--danger-text)}
.kf-select{height:var(--control-h);padding:0 10px 0 12px;border:0;border-radius:var(--radius);background:var(--fill-field);box-shadow:inset 0 0 0 1px var(--fill-field-ring);color:var(--text-1);font:inherit;display:inline-flex;align-items:center;gap:8px;cursor:pointer}
.kf-select .chev{margin-left:auto;color:var(--text-3)}
.kf-search{position:relative;display:flex;align-items:center;min-width:0}
.kf-search>.i{position:absolute;left:10px;color:var(--text-3)}
.kf-search .kf-input{padding-left:32px}
.kf-kbd{font-size:12px;line-height:16px;padding:0 5px;border-radius:4px;box-shadow:inset 0 0 0 1px var(--line-strong);color:var(--text-3)}

/* Barra de filtros */
.kf-filters{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.kf-filter{height:var(--control-h);padding:0 10px;border:0;border-radius:var(--radius);background:var(--fill-field);box-shadow:inset 0 0 0 1px var(--fill-field-ring);color:var(--text-3);font:inherit;display:inline-flex;align-items:center;gap:6px;cursor:pointer;white-space:nowrap}
.kf-filter b{color:var(--text-1);font-weight:500}
.kf-filter .chev{color:var(--text-3)}
.kf-filter--on{color:var(--text-1)}
.kf-filters__end{margin-left:auto;display:flex;gap:4px;align-items:center}
.kf-dot{width:9px;height:9px;border-radius:2px;display:inline-block;flex:none}

/* Tabla */
.kf-table-wrap{overflow-x:auto}
.kf-table{width:100%;border-collapse:collapse}
.kf-table th{height:32px;padding:0 12px;text-align:left;font-size:13px;font-weight:500;color:var(--text-2);white-space:nowrap}
.kf-table td{height:var(--row-h);padding:8px 12px;border-top:1px solid var(--row-line);vertical-align:middle}
.kf-table th:first-child,.kf-table td:first-child{padding-left:0}
.kf-table th:last-child,.kf-table td:last-child{padding-right:0}
.kf-table tbody tr:hover td{background:var(--fill-row-hover)}
.kf-table .r{text-align:right}
.kf-table .act{width:40px;text-align:right}
.kf-table .sub{display:block;font-size:12px;line-height:16px;color:var(--text-3)}
.kf-name{display:inline-flex;align-items:center;gap:8px}
.kf-tfoot{display:flex;justify-content:space-between;align-items:center;gap:8px;height:40px;border-top:1px solid var(--row-line);font-size:13px;color:var(--text-3)}

/* Panel y métrica */
.kf-panel{border:1px solid var(--line);border-radius:var(--radius-panel);padding:16px;min-width:0}
.kf-panel__head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}
.kf-panel__title{font-size:15px;line-height:20px;font-weight:600;display:flex;align-items:center;gap:8px}
.kf-panel__desc{font-size:13px;line-height:18px;color:var(--text-3);margin-top:2px}
.kf-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.kf-grid--2{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}
.kf-metric{border:1px solid var(--line);border-radius:var(--radius-panel);padding:16px;display:flex;flex-direction:column;min-width:0}
.kf-metric__top{display:flex;justify-content:space-between;align-items:center;gap:8px;color:var(--text-2);font-weight:500;min-height:20px}
.kf-metric__top .i{width:14px;height:14px;color:var(--text-3)}
.kf-metric__value{font-size:22px;line-height:28px;font-weight:600;font-variant-numeric:tabular-nums;margin-top:12px}
.kf-metric__sub{font-size:12px;line-height:16px;color:var(--text-3);margin-top:2px}
.kf-metric__foot{margin-top:12px}

/* Progreso */
.kf-bar{height:4px;border-radius:var(--radius-full);background:var(--fill-control);overflow:hidden}
.kf-bar>span{display:block;height:100%;background:var(--accent-fill);border-radius:inherit}
.kf-bar--warning>span{background:var(--warning-fill)}
.kf-bar--danger>span{background:var(--danger-fill)}

/* Interruptor y segmentado */
.kf-switch{position:relative;width:36px;height:20px;border-radius:var(--radius-full);border:0;background:var(--fill-control);padding:0;cursor:pointer;flex:none}
.kf-switch::after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:var(--knob);transition:transform .15s}
.kf-switch[aria-checked="true"]{background:var(--accent-fill)}
.kf-switch[aria-checked="true"]::after{transform:translateX(16px)}
.kf-switch:focus-visible{outline:2px solid var(--accent-fill);outline-offset:2px}
.kf-switch:disabled{opacity:.45;cursor:not-allowed}
.kf-seg{display:inline-flex;height:28px;padding:1px;border-radius:var(--radius-sm);background:var(--fill-field);gap:1px}
.kf-seg button{height:26px;padding:0 10px;border:0;border-radius:var(--radius-chip);background:transparent;color:var(--text-2);font:inherit;cursor:pointer;display:inline-flex;align-items:center;gap:6px}
.kf-seg button[aria-pressed="true"]{background:var(--fill-selected);color:var(--text-1)}

/* Página de ajustes */
.kf-section{display:flex;flex-direction:column}
.kf-section+.kf-section{margin-top:32px}
.kf-section__title{font-size:15px;line-height:20px;font-weight:600}
.kf-section__desc{margin-top:4px;color:var(--text-2)}
.kf-setting{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px 24px;padding:16px 0;border-top:1px solid var(--line)}
.kf-setting__text{flex:1 1 320px;min-width:0}
.kf-setting__title{font-size:14px;font-weight:500}
.kf-setting__desc{margin-top:2px;font-size:13px;line-height:18px;color:var(--text-2)}
.kf-setting__control{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.kf-form{display:flex;flex-direction:column;gap:16px}
.kf-form__row{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}
.kf-danger-zone{margin-top:32px;padding-top:16px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}

/* Estado vacío */
.kf-empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:4px;padding:40px 16px}
.kf-empty>.i{width:36px;height:36px;stroke-width:1.25;color:var(--text-3);margin-bottom:10px}
.kf-empty__title{font-size:14px;font-weight:500;color:var(--text-2)}
.kf-empty__text{font-size:13px;line-height:18px;color:var(--text-3);max-width:340px;margin-bottom:12px}
.kf-empty--small{padding:24px 16px}
.kf-empty--small .kf-empty__text{margin-bottom:0}

/* Fila de recurso */
.kf-res{display:flex;align-items:center;gap:12px;padding:12px;border:1px solid var(--line);border-radius:var(--radius-panel);color:inherit;text-decoration:none;min-width:0}
.kf-res:hover{border-color:var(--line-strong)}
.kf-res__icon{width:32px;height:32px;border-radius:var(--radius);background:var(--fill-chip);display:grid;place-items:center;flex:none;color:var(--text-2)}
.kf-res__body{flex:1;min-width:0}
.kf-res__title{font-weight:600;display:flex;align-items:center;gap:8px}
.kf-res__desc{font-size:12px;line-height:16px;color:var(--text-3)}
.kf-res__end{display:flex;align-items:center;gap:8px;color:var(--text-3)}

/* Avisos */
.kf-notice{display:flex;align-items:flex-start;gap:12px;padding:12px 16px;border:1px solid var(--line);border-radius:var(--radius-lg)}
.kf-notice>.i{margin-top:2px;color:var(--text-2)}
.kf-notice__body{flex:1;min-width:0}
.kf-notice__title{font-weight:500}
.kf-notice__text{margin-top:2px;font-size:13px;line-height:18px;color:var(--text-2)}
.kf-notice__actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.kf-notice--danger{border-color:var(--danger-border)}
.kf-notice--danger>.i,.kf-notice--danger .kf-notice__title{color:var(--danger-text)}
.kf-notice--warning{border-color:var(--warning-border)}
.kf-notice--warning>.i,.kf-notice--warning .kf-notice__title{color:var(--warning-text)}
.kf-notice--network>.i{color:var(--pro-text)}

/* Marco: barra superior, menú lateral, contenido */
.kf-shell{display:grid;grid-template-columns:var(--sidebar-w) minmax(0,1fr);grid-template-rows:var(--header-h) minmax(0,1fr);min-height:100%}
.kf-top{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 12px;background:var(--surface-chrome);border-bottom:1px solid var(--line);min-width:0}
.kf-brand{display:flex;align-items:center;gap:8px;font-weight:600;font-size:15px;flex:1 1 0;min-width:0}
.kf-brand img{width:22px;height:22px}
.kf-top__search{flex:0 1 420px;height:var(--control-h);border-radius:var(--radius);background:var(--fill-field);display:flex;align-items:center;gap:8px;padding:0 6px 0 10px;color:var(--text-3);min-width:0}
.kf-top__search .kf-kbd{margin-left:auto}
.kf-top__right{display:flex;align-items:center;gap:6px;flex:1 1 0;justify-content:flex-end;min-width:0}
.kf-pill{height:28px;padding:0 10px;border-radius:var(--radius-sm);display:inline-flex;align-items:center;gap:6px;color:var(--text-1);box-shadow:inset 0 0 0 1px var(--line);font-size:13px;text-decoration:none;white-space:nowrap}
.kf-side{background:var(--surface-chrome);border-right:1px solid var(--line);padding:8px;display:flex;flex-direction:column;gap:2px;min-height:0}
.kf-nav{height:var(--nav-h);padding:0 8px;border-radius:var(--radius);display:flex;align-items:center;gap:10px;color:var(--text-2);text-decoration:none;white-space:nowrap}
.kf-nav:hover{background:var(--fill-ghost-hover)}
.kf-nav[aria-current="page"]{background:var(--fill-selected);color:var(--text-1)}
.kf-nav>.i{width:18px;height:18px}
.kf-nav .chev{margin-left:auto;color:var(--text-3);width:14px;height:14px}
.kf-nav .kf-chip{margin-left:auto}
.kf-nav-group{font-size:12px;line-height:16px;color:var(--text-3);padding:16px 8px 6px}
.kf-nav-back{height:var(--nav-h);display:flex;align-items:center;gap:8px;padding:0 8px;font-weight:600;color:var(--text-1);text-decoration:none;border-radius:var(--radius)}
.kf-nav-back:hover{background:var(--fill-ghost-hover)}
.kf-nav-ctx{padding:2px 8px 10px;font-size:12px;line-height:16px;color:var(--text-3)}
.kf-nav-sep{height:1px;background:var(--line);margin:8px 0}
.kf-org{margin-top:auto;display:flex;align-items:center;gap:10px;padding:10px 8px 4px;border-top:1px solid var(--line);color:var(--text-1);text-decoration:none}
.kf-org__text{flex:1;min-width:0}
.kf-org__name{font-weight:500;line-height:18px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kf-org__sub{font-size:12px;color:var(--text-3);line-height:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kf-avatar{width:28px;height:28px;border-radius:var(--radius-xs);background:var(--fill-secondary);display:grid;place-items:center;font-size:12px;font-weight:600;color:var(--text-1);flex:none}
.kf-avatar--round{border-radius:50%}
.kf-main{padding:24px;min-width:0;background:var(--surface-1)}
.kf-col{max-width:var(--column-w);margin:0 auto}
.kf-ph{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap;margin-bottom:24px}
.kf-ph__title{font-size:22px;line-height:28px;font-weight:500;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.kf-ph__desc{margin-top:6px;color:var(--text-2)}
.kf-ph__actions{display:flex;gap:8px;flex-wrap:wrap}
.kf-stack{display:flex;flex-direction:column;gap:24px}
.kf-h2row{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}
.kf-footer{display:flex;gap:16px;margin-top:32px;font-size:13px;color:var(--text-3)}

/* Diálogo, menú, opción de pago */
.kf-scrim{background:rgba(0,0,0,.6);display:grid;place-items:center;padding:24px}
.kf-dialog{width:440px;max-width:100%;background:var(--surface-2);border-radius:var(--radius-panel);box-shadow:var(--shadow-lg),0 0 0 1px var(--line);padding:24px}
.kf-dialog__title{font-size:15px;line-height:20px;font-weight:600}
.kf-dialog__text{margin-top:8px;color:var(--text-2)}
.kf-dialog__body{margin-top:16px}
.kf-dialog__foot{display:flex;justify-content:flex-end;gap:8px;margin-top:24px}
.kf-menu{min-width:200px;background:var(--surface-3);border-radius:var(--radius);box-shadow:var(--shadow-md),0 0 0 1px var(--line);padding:4px;display:inline-flex;flex-direction:column}
.kf-menu button{height:32px;padding:0 8px;border:0;background:transparent;border-radius:var(--radius-xs);color:var(--text-1);font:inherit;text-align:left;display:flex;align-items:center;gap:8px;cursor:pointer}
.kf-menu button:hover{background:var(--fill-ghost-hover)}
.kf-menu .danger{color:var(--danger-text)}
.kf-menu hr{border:0;height:1px;background:var(--line);margin:4px 0}
.kf-option{display:flex;align-items:flex-start;gap:10px;padding:12px;border-radius:var(--radius-panel);box-shadow:inset 0 0 0 1px var(--line);cursor:pointer;min-width:0}
.kf-option[aria-checked="true"]{box-shadow:inset 0 0 0 2px var(--accent-fill)}
.kf-radio{width:16px;height:16px;border-radius:50%;box-shadow:inset 0 0 0 1px var(--line-stronger);flex:none;margin-top:2px;display:grid;place-items:center}
.kf-option[aria-checked="true"] .kf-radio{background:var(--accent-fill);box-shadow:none}
.kf-option[aria-checked="true"] .kf-radio::after{content:"";width:6px;height:6px;border-radius:50%;background:var(--knob)}
.kf-tooltip{display:inline-block;background:var(--surface-0);color:#ffffff;font-size:12px;line-height:16px;padding:6px 8px;border-radius:var(--radius-xs);max-width:240px}

@media (max-width:720px){
  .kf-shell{grid-template-columns:minmax(0,1fr)}
  .kf-side{display:none}
  .kf-top__search{display:none}
}
/* ── Piezas del panel (no están en el sistema de diseño porque son de la aplicación) ── */
body.kf{min-height:100%}
#kf-raiz{min-height:100vh}
.kf-shell{min-height:100vh}
.kf-side{position:sticky;top:var(--header-h);height:calc(100vh - var(--header-h));overflow-y:auto}
.kf-top{position:sticky;top:0;z-index:20}
.kf-main{padding:24px 24px 56px}
.kf-main[data-ruta="inicio"]>*{max-width:1080px;margin-left:auto;margin-right:auto}
/* Ajustes como en Claude: caja de 896 con 64 de aire por lado = 768 de contenido, centrada */
.kf-col{max-width:768px}
.kf-main:focus{outline:none}
.kf-brand__link{display:inline-flex;align-items:center;gap:8px;color:var(--text-1);text-decoration:none}
.kf-brand__ctx{margin-left:8px;padding-left:12px;border-left:1px solid var(--line);font-size:13px;font-weight:400;color:var(--text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kf-solo-movil{display:none}
.kf-org{width:100%;font:inherit;background:transparent;border:0;border-top:1px solid var(--line);border-radius:0;cursor:pointer;text-align:left}
.kf-org:hover{background:var(--fill-ghost-hover)}
.kf-grid--3{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.kf-dos{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:24px;margin-top:32px;align-items:start}
.kf-lista{display:flex;flex-direction:column;gap:8px}
.kf-footer{flex-wrap:wrap;align-items:center;gap:8px 16px}
.kf-footer>span{display:inline-flex;align-items:center;gap:6px}
.kf-pill{cursor:pointer}
.kf-pill .i{width:14px;height:14px}
.kf-aviso-cuenta,.kf-banda-prueba{margin-bottom:24px}
.kf-banda-prueba{border-color:var(--accent-border);align-items:center}
.kf-banda-prueba>.i{color:var(--accent-text)}
.kf-banda-prueba__ver{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-2)}
.kf-banda-prueba__ver .kf-input{width:auto}
.kf-volver{display:inline-flex;align-items:center;gap:6px;margin-bottom:12px;font-size:13px}
.kf-volver .i{width:14px;height:14px}

/* Cargando: tres puntos tranquilos */
.kf-cargando{display:flex;gap:6px;padding:32px 0}
.kf-cargando span{width:6px;height:6px;border-radius:50%;background:var(--text-3);animation:kf-p 1s infinite ease-in-out}
.kf-cargando span:nth-child(2){animation-delay:.15s}.kf-cargando span:nth-child(3){animation-delay:.3s}
@keyframes kf-p{0%,80%,100%{opacity:.25}40%{opacity:1}}

/* Planes */
.kf-planes{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.kf-plan{border:1px solid var(--line);border-radius:var(--radius-panel);padding:16px;display:flex;flex-direction:column;gap:8px;min-width:0}
.kf-plan--mio{border-color:var(--line-strong)}
.kf-plan__top{display:flex;justify-content:space-between;align-items:center;gap:8px}
.kf-plan__name{font-size:15px;font-weight:600}
.kf-plan__price{font-size:22px;line-height:28px;font-weight:600}
.kf-plan__price span{font-size:13px;font-weight:400;color:var(--text-3)}
.kf-plan__desc{font-size:13px;line-height:18px;color:var(--text-2)}
.kf-plan__feats{list-style:none;margin:4px 0 0;padding:0;display:flex;flex-direction:column;gap:6px;font-size:13px;line-height:18px;color:var(--text-2)}
.kf-plan__feats li{display:flex;gap:8px;align-items:flex-start}
.kf-plan__feats .i{width:14px;height:14px;margin-top:2px;color:var(--text-3)}
.kf-plan__foot{margin-top:auto;padding-top:8px}

/* Formularios del panel */
.kf-check{display:flex;gap:10px;align-items:flex-start;font-size:13px;line-height:18px;color:var(--text-2);cursor:pointer}
.kf-check input,.kf-check-in{width:16px;height:16px;margin:2px 0 0;accent-color:var(--accent-fill);flex:none}
.kf-radio-l{display:flex;align-items:center;gap:8px;font-size:13px;margin-top:6px;cursor:pointer}
.kf-radio-l input{accent-color:var(--accent-fill)}
.kf-planes-op{display:block;margin-top:2px}
.kf-option--off{opacity:.6}
.kf-btn--ancho{width:100%;justify-content:center}
.kf-pass{position:relative;display:block}
.kf-pass .kf-input{padding-right:40px}
.kf-pass .kf-btn--icon{position:absolute;right:0;top:0}
.kf-qr{background:#fff;border-radius:var(--radius-lg);padding:12px;width:184px;height:184px}
.kf-qr svg{width:160px;height:160px;display:block}
/* Códigos de reserva de la verificación en dos pasos: diez, en dos columnas, para copiarlos a mano si hace falta. */
.kf-codigos{display:grid;grid-template-columns:repeat(2,1fr);gap:8px 12px;padding:16px;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface-2)}
.kf .kf-codigos span{font-size:15px;line-height:22px;letter-spacing:.06em;color:var(--text-1);text-align:center;user-select:all}
.kf-codigos__acc{display:flex;flex-wrap:wrap;gap:8px}
select.kf-input{appearance:auto}
textarea.kf-input{height:auto;padding:8px 12px;resize:vertical;line-height:20px}
.kf-table--resumen td{height:36px}

/* Acceso */
.kf-auth{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;padding:32px 16px;background:var(--surface-1)}
.kf-auth__card{width:100%;max-width:380px;display:flex;flex-direction:column;gap:16px}
.kf-auth__brand{font-size:17px;margin-bottom:16px}
.kf-auth__title{font-size:22px;line-height:28px;font-weight:500}
.kf-auth__desc{color:var(--text-2);margin-top:-8px}
.kf-auth__links{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:13px}
.kf-auth__links .kf-link{font-size:13px}
.kf-auth__pie{font-size:12px}
.kf-auth__pie .kf-link{font-size:12px}

/* Avisos flotantes y menús */
.kf-capa{position:fixed;inset:0;z-index:60;overflow-y:auto}
.kf-dialog{max-height:calc(100vh - 48px);overflow-y:auto}
.kf-flota{position:absolute;z-index:70}
.kf-menu button:disabled{color:var(--text-disabled);cursor:not-allowed;background:transparent}
.kf-toast{position:fixed;right:24px;bottom:24px;z-index:80;display:flex;align-items:center;gap:10px;max-width:min(420px,calc(100vw - 32px));padding:12px 16px;background:var(--surface-3);color:var(--text-1);border-radius:var(--radius-lg);box-shadow:var(--shadow-md),0 0 0 1px var(--line);font-size:14px}
.kf-toast .i{color:var(--success-text)}
.kf-toast--error{box-shadow:var(--shadow-md),inset 0 0 0 1px var(--danger-border)}
.kf-toast--error .i{color:var(--danger-text)}

/* Gráfico de barras */
.kf-graf{width:100%;height:160px;display:block}
.kf-graf__barra{fill:var(--accent-fill)}
.kf-graf__barra:hover{fill:var(--accent-text)}
.kf-graf__eje{display:flex;justify-content:space-between;margin-top:6px}

/* Soporte */
.kf-fila-link{cursor:pointer}
.kf-fila-link:focus-visible{outline:none;box-shadow:var(--focus-ring)}
.kf-chat{display:flex;flex-direction:column;gap:12px;margin-top:8px}
.kf-msg{max-width:85%;padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius-panel)}
.kf-msg--mio{align-self:flex-end;background:var(--fill-chip);border-color:transparent}
.kf-msg__autor{font-size:12px;font-weight:500;color:var(--text-2);margin-bottom:4px}
.kf-msg__texto{line-height:21px;overflow-wrap:anywhere}
.kf-composer{display:flex;gap:8px;align-items:flex-end;margin-top:16px}
.kf-composer textarea{flex:1;min-height:40px;max-height:240px}
.kf-estrellas{display:flex;gap:4px;margin:12px 0}
.kf-estrellas button{width:32px;height:32px;border:0;background:transparent;color:var(--text-3);cursor:pointer;border-radius:var(--radius)}
.kf-estrellas button .i{width:20px;height:20px}
.kf-estrellas button.on{color:var(--warning-fill)}
.kf-estrellas button.on .i{fill:currentColor}

@media (max-width:960px){.kf-dos{grid-template-columns:minmax(0,1fr)}}
/* Por debajo de 960 el menú lateral pasa a cajón: con él fijo, a 768 solo quedaban 448 px de contenido */
@media (max-width:960px){
  .kf-shell{grid-template-columns:minmax(0,1fr)}
  .kf-main{padding:24px 24px 48px}
  .kf-solo-movil{display:inline-flex}
  .kf-side{display:flex;position:fixed;top:var(--header-h);left:0;bottom:0;width:min(280px,85vw);height:auto;z-index:40;transform:translateX(-100%);visibility:hidden;transition:transform .2s,visibility 0s linear .2s}
  .kf-side--abierto{transform:none;visibility:visible;transition:transform .2s}
  .kf-velo{position:fixed;inset:var(--header-h) 0 0 0;z-index:35;border:0;background:rgba(0,0,0,.5)}
}
@media (max-width:720px){
  .kf-main{padding:16px 16px 40px}
  .kf-brand__ctx{display:none}
  .kf-ph__actions{width:100%}
  .kf-msg{max-width:100%}
}
@media (prefers-reduced-motion:reduce){.kf-cargando span{animation:none;opacity:.6}.kf-side{transition:none}}
.kf-org__text{display:flex;flex-direction:column}
.kf-org__name,.kf-org__sub{display:block}

/* ── Consola interna ── */
.kf-bandeja{display:grid;grid-template-columns:minmax(260px,360px) minmax(0,1fr);gap:16px;align-items:start}
.kf-bandeja__lista{display:flex;flex-direction:column;gap:4px;max-height:calc(100vh - 260px);overflow:auto}
.kf-tk{text-align:left;border:1px solid var(--line);border-radius:var(--radius-lg);padding:10px 12px;background:transparent;color:var(--text-1);font:inherit;cursor:pointer;display:flex;flex-direction:column;gap:4px}
.kf-tk:hover{border-color:var(--line-strong)}
.kf-tk.on{border-color:var(--line-stronger);background:var(--fill-chip)}
.kf-tk__top{display:flex;justify-content:space-between;gap:8px;font-weight:500}
.kf-tk__meta{font-size:12px;line-height:16px;color:var(--text-3)}
.kf-bandeja__hilo{border:1px solid var(--line);border-radius:var(--radius-panel);padding:16px;min-height:320px;min-width:0}
.kf-hilo__cab{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}
.kf-hilo__acc{display:flex;gap:4px;flex-wrap:wrap;align-items:flex-start}
.kf-pre{white-space:pre-wrap;font-family:var(--font-mono);font-size:12px;line-height:18px;color:var(--text-2);margin:0;max-height:320px;overflow:auto}
.kf-fila-grupo td{font-weight:600;color:var(--text-2);background:var(--fill-chip);height:32px}
.kf-detalle td{background:var(--fill-row-hover)}
.kf-rol{text-align:left;background:transparent;color:inherit;font:inherit;cursor:pointer}
.kf-rol:hover{border-color:var(--line-strong)}
@media(max-width:960px){.kf-bandeja{grid-template-columns:minmax(0,1fr)}}
/* incorporaciones.js viene de la consola anterior: sus clases, con el lenguaje nuevo */
.kf-incorp{--border:var(--line);--surface:transparent;--muted:var(--text-2);--text:var(--text-1);--brand:var(--accent-text);--surface-2:var(--fill-chip)}
.kf-incorp h1{font-size:22px;line-height:28px;font-weight:500;margin:0 0 6px}
.kf-incorp .btn{height:32px;padding:0 12px;border-radius:var(--radius);border:0;font:inherit;background:var(--fill-secondary);color:var(--text-1);cursor:pointer}
.kf-incorp .btn-primary{background:var(--fill-primary);color:var(--text-on-primary);font-weight:500}
.kf-incorp .btn-sm{height:28px;padding:0 10px}
.kf-incorp .badge{display:inline-flex;align-items:center;height:20px;padding:0 8px;border-radius:var(--radius-chip);font-size:12px;font-weight:500;background:var(--fill-chip);color:var(--text-2)}
.kf-incorp .badge.active{background:var(--success-bg);color:var(--success-text)}
.kf-incorp .badge.trial{background:var(--accent-bg);color:var(--accent-text)}
.kf-incorp .badge.pendiente{background:var(--warning-bg);color:var(--warning-text)}
.kf-incorp input,.kf-incorp select,.kf-incorp textarea{min-height:32px;padding:6px 12px;border:0;border-radius:var(--radius);background:var(--fill-field);box-shadow:inset 0 0 0 1px var(--fill-field-ring);color:var(--text-1);font:inherit}
.kf-incorp table{width:100%;border-collapse:collapse}
.kf-incorp th{height:32px;padding:0 12px;text-align:left;font-size:13px;font-weight:500;color:var(--text-2)}
.kf-incorp td{padding:8px 12px;border-top:1px solid var(--row-line)}

/* ── Repaso para que coincida con Claude Console ── */
.kf :focus{outline:none}
.kf :focus-visible{outline:2px solid var(--accent-fill);outline-offset:2px}
.kf-btn--secondary,.kf-btn:not(.kf-btn--primary):not(.kf-btn--ghost):not(.kf-btn--icon):not(.kf-btn--danger){box-shadow:0 1px 2px rgba(0,0,0,.05)}
.kf-btn--primary{height:31px}
.kf-btn--sm{height:28px;padding:0 10px;border-radius:7px;font-size:14px}
.kf-top__right{gap:8px}
.kf-top-link{height:28px;padding:0 10px;border-radius:7px;display:inline-flex;align-items:center;gap:6px;color:var(--text-1);text-decoration:none;font-size:14px}
.kf-top-link:hover{background:var(--fill-ghost-hover)}
.kf-top-link .i{width:16px;height:16px;color:var(--text-2)}
.kf-pill{height:28px;padding:0 10px;border-radius:7px;box-shadow:0 1px 2px rgba(0,0,0,.05);background:var(--fill-secondary);color:var(--text-1);font-size:14px;border:0}
.kf-pill:hover{background:var(--fill-secondary-hover)}
.kf-table .kf-btn--icon,.kf-mas{width:28px;height:28px;border-radius:7px}
.kf-table td.act{white-space:nowrap}
.kf-mas-menu{min-width:200px}
/* Desplegables con el estilo de los filtros, no la flecha del sistema */
select.kf-input,.kf select{appearance:none;-webkit-appearance:none;padding-right:30px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23898781' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center;background-size:16px;cursor:pointer}
select.kf-input option{background:var(--surface-3);color:var(--text-1)}
.kf-filters .kf-input:not([type=search]):not(.kf-search .kf-input){width:auto}
.kf-filters select.kf-input{color:var(--text-1)}
.kf-seg button{white-space:nowrap}
.kf-filters{row-gap:8px}
.kf-ph{gap:12px 24px}
.kf-ph__actions{flex-shrink:0}
.kf-metric__top{flex-wrap:wrap;row-gap:4px}
.kf-brand .kf-chip{margin-left:2px}

/* ── Alta de cuentas ── */
.kf-auth__card.kf-alta{max-width:560px}
.kf-alta__top{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.kf-pasos{list-style:none;margin:0;padding:0;display:flex;gap:6px 16px;flex-wrap:wrap;font-size:13px;color:var(--text-3)}
.kf-pasos li{display:flex;align-items:center;gap:6px}
.kf-pasos li span{width:20px;height:20px;border-radius:50%;display:inline-grid;place-items:center;font-size:12px;box-shadow:inset 0 0 0 1px var(--line-strong)}
.kf-pasos li.actual{color:var(--text-1)}
.kf-pasos li.actual span{background:var(--fill-primary);color:var(--text-on-primary);box-shadow:none}
.kf-pasos li.hecho{color:var(--text-2)}
.kf-pasos li.hecho .i{width:14px;height:14px;color:var(--success-text)}
.kf-alta__pie{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;margin-top:4px}
.kf-opcion{width:100%;text-align:left;background:transparent;font:inherit;color:inherit;cursor:pointer}
.kf-opcion.on{border-color:var(--accent-fill);box-shadow:inset 0 0 0 1px var(--accent-fill)}
.kf-planes--alta{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.kf-plan--elegir{text-align:left;background:transparent;font:inherit;color:inherit;cursor:pointer}
.kf-plan--elegir:hover{border-color:var(--line-strong)}
.kf-plan--elegir[aria-pressed="true"]{border-color:var(--accent-fill);box-shadow:inset 0 0 0 1px var(--accent-fill)}
.kf-pedido{margin-top:4px}
.kf-ts{min-height:65px}
@media (max-width:560px){.kf-solo-ancho{display:none}}

/* ── Repaso de expertos: todas las resoluciones, fidelidad a Claude y accesibilidad ── */
/* Base: lo oculto se oculta siempre; texto solo para lector de pantalla; sin anillo al mover el foco por código */
[hidden]{display:none!important}
.kf-sr,.kf .kf-sr{position:absolute!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;clip-path:inset(50%)!important;white-space:nowrap!important;border:0!important;box-shadow:none!important;background:none!important}
/* Primera celda de una tabla de pares (th scope=row): se ve como una celda normal */
.kf-table tbody th{height:var(--row-h);padding:8px 12px;border-top:1px solid var(--row-line);vertical-align:middle;font-size:14px;font-weight:400;color:var(--text-2);white-space:normal;text-align:left}
.kf-table tbody th:first-child{padding-left:0}
.kf-table tbody tr:hover th{background:var(--fill-row-hover)}
.kf [tabindex="-1"]:focus,.kf [tabindex="-1"]:focus-visible{outline:none}
html{scroll-padding-top:calc(var(--header-h) + 8px)}
/* Un solo anillo de foco: los controles ya traen el suyo por dentro */
.kf .kf-btn:focus-visible,.kf .kf-input:focus-visible,.kf .kf-filter select:focus-visible,.kf .kf-filter input:focus-visible{outline:none}
.kf-filter:focus-within{box-shadow:var(--focus-ring)}
.kf-input[aria-invalid="true"]{box-shadow:inset 0 0 0 1px var(--danger-text)}
.kf-btn--primary{height:var(--control-h)}

/* Barra superior: logo | buscador centrado | ayuda. En rejilla para que el buscador encoja y nunca pise a los lados */
.kf-top{display:grid;grid-template-columns:minmax(max-content,1fr) minmax(0,448px) minmax(max-content,1fr)}
.kf-top>.kf-brand{min-width:max-content}
@media (max-width:1100px){.kf-top__search .kf-kbd{display:none}}
@media (max-width:720px){.kf-top{grid-template-columns:minmax(0,1fr) auto}.kf-top>.kf-brand{min-width:0}}
.kf-top__search{flex:0 1 448px;border:0;font:inherit;font-size:14px;cursor:pointer;text-align:left;box-shadow:inset 0 0 0 1px var(--fill-field-ring)}
.kf-top__search:hover{background:var(--fill-ghost-hover);color:var(--text-2)}
.kf-top__search>.i{width:16px;height:16px}
.kf-top__search-t{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kf-scrim:has(.kf-dialog--buscador){place-items:start center;padding-top:12vh}
.kf-dialog--buscador{padding:8px}
.kf-buscador .kf-search .kf-input{height:40px;font-size:15px}
.kf-buscador__lista{list-style:none;margin:8px 0 0;padding:0;max-height:min(360px,60vh);overflow-y:auto}
.kf-buscador__lista li{display:flex;align-items:center;gap:10px;min-height:36px;padding:0 10px;border-radius:var(--radius);cursor:pointer;color:var(--text-1)}
.kf-buscador__lista li .i{width:16px;height:16px;color:var(--text-3);flex:none}
.kf-buscador__lista li .t3{margin-left:auto;font-size:13px}
.kf-buscador__lista li:hover{background:var(--fill-ghost-hover)}
.kf-buscador__lista li[aria-selected="true"]{background:var(--fill-selected)}
.kf-buscador__nada{padding:12px 10px;color:var(--text-2);cursor:default!important}
.kf-toast__x{width:28px;height:28px;margin:-4px -8px -4px 2px}
.kf-toast .kf-toast__x .i{color:var(--text-2)}

/* Tipografía y ritmo como Claude: títulos de sección en 500, subtítulo separado del h1 */
.kf-section__title,.kf-panel__title,.kf-res__title,.kf-plan__name{font-weight:500}
.kf .kf-ph__desc{margin-top:8px}
.kf .kf-section__desc{margin-top:4px}
.kf .kf-input.mono::placeholder{font-family:var(--font-sans);font-size:14px}

/* Ajustes: filas sin raya entre ellas; una sola línea entre secciones; formularios a 448 */
.kf-col .kf-setting{border-top:0;padding:8px 0}
.kf-col .kf-section+.kf-section{margin-top:32px;padding-top:32px;border-top:1px solid var(--line)}
.kf-col>.kf-form{max-width:448px}

/* Menú lateral: «← Sección» centrado, y bandeja de soporte como filas */
.kf-nav-back{position:relative;justify-content:center;margin-bottom:8px}
.kf-nav-back>.i{position:absolute;left:8px}
.kf-tk{border:0;border-radius:var(--radius);padding:8px 10px}
.kf-tk:hover{background:var(--fill-ghost-hover)}
.kf-tk.on{background:var(--fill-selected);border:0}
.kf-bandeja__hilo{border:0;border-left:1px solid var(--line);border-radius:0;padding:0 0 0 24px}

/* Filtros «Etiqueta Valor ▾» */
.kf-filter select,.kf-filter input{height:30px;width:auto;border:0;background-color:transparent;box-shadow:none;color:var(--text-1);font:inherit;font-weight:500;padding:0 22px 0 0;background-position:right 0 center}
.kf-filter input[type=month]{padding-right:0}
.kf-filters>.kf-search{flex:1 1 160px!important;max-width:320px}
.kf-filters .kf-seg+.kf-seg{margin-left:8px}

/* Segmentado: se nota cuál está elegido sin usar blanco (el blanco es solo para la acción principal) */
.kf-seg{max-width:100%;overflow-x:auto;scrollbar-width:none}
.kf-seg::-webkit-scrollbar{display:none}
.kf-seg button{flex:none}
.kf-seg button[aria-pressed="true"]{box-shadow:inset 0 0 0 1px var(--line-strong);font-weight:500}

/* Opciones apagadas legibles; interruptor visible apagado; estrellas */
.kf-option--off{opacity:1;background:var(--fill-disabled)}
.kf-option--off .kf-check-in{opacity:.5}
.kf-switch[aria-checked="false"]{background:transparent;box-shadow:inset 0 0 0 1.5px var(--text-3)}
.kf-switch[aria-checked="false"]::after{background:var(--text-3)}
.kf-switch:disabled{opacity:1}
.kf-switch:disabled::after{background:var(--text-disabled)}
.kf-switch::before{content:"";position:absolute;inset:-10px -4px}
@media (prefers-reduced-motion:reduce){.kf-switch::after{transition:none}}
.kf-estrellas button.on{color:var(--warning-text)}

/* Pasos del alta: el actual no compite con el botón blanco */
.kf-pasos li.actual span{background:var(--fill-selected);color:var(--text-1);box-shadow:none}
.kf-auth__card.kf-alta:has(.kf-planes--alta){max-width:760px}
.kf-planes{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.kf-form>.kf-error:empty,.kf-auth__card>.kf-error:empty{margin-top:-16px}

/* Filas, cabeceras y rejillas que no deben romperse */
.kf-fila__a{color:inherit;font-weight:500;text-decoration:none}
.kf-fila__a:hover{text-decoration:underline}
.kf-res__title{flex-wrap:wrap;row-gap:2px}
.kf-ph>:first-child{flex:1 1 360px;min-width:0}
.kf-h2row{flex-wrap:wrap;row-gap:4px}
.kf-h2row>.kf-section__title{display:inline-flex;align-items:center;gap:8px;white-space:nowrap}
.kf-grid:has(>:nth-child(4):last-child){grid-template-columns:repeat(auto-fit,minmax(min(150px,100%),1fr))}
.kf-grid>div:not([class]){display:grid}
#i-ia>.kf-metric{height:100%}
.kf-table .mono,.kf-table td.num{white-space:nowrap}
.kf-table tbody tr:has(>td[colspan]):hover td{background:transparent}
.kf-precio{width:110px;height:28px;text-align:right}
@media (min-width:961px) and (max-width:1180px){.kf-dos{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}
/* La columna de acciones queda fija a la derecha cuando la tabla se desplaza */
.kf-table-wrap>.kf-table :is(th,td).act{position:sticky;right:0;z-index:1;background:var(--surface-1);padding-left:8px}
.kf-table-wrap>.kf-table tbody tr:hover td.act{background:linear-gradient(var(--fill-row-hover),var(--fill-row-hover)),var(--surface-1)}

/* Diálogos: caben con la barra del navegador del móvil y sus botones pueden bajar de línea */
.kf-dialog{max-height:calc(100vh - 48px);max-height:calc(100dvh - 48px)}
.kf-dialog__foot{flex-wrap:wrap}

@media (max-width:960px){
  .kf-bandeja__lista{max-height:none;overflow:visible}
  .kf-bandeja__hilo{min-height:0;border-left:0;padding:16px 0 0;border-top:1px solid var(--line);scroll-margin-top:calc(var(--header-h) + 8px)}
  .kf-bandeja__hilo:has(>.kf-empty:only-child){display:none}
}
@media (max-width:720px){
  .kf-toast{left:16px;right:16px;bottom:max(16px,env(safe-area-inset-bottom));max-width:none}
  /* Fila de producto: el botón baja debajo en vez de aplastar el texto */
  .kf-res:has(.kf-res__end .kf-btn){flex-wrap:wrap;row-gap:12px}
  .kf-res:has(.kf-res__end .kf-btn) .kf-res__body{flex:1 1 calc(100% - 44px)}
  .kf-res:has(.kf-res__end .kf-btn) .kf-res__end{flex:1 1 100%;padding-left:44px;flex-wrap:wrap}
  .kf-filters>.kf-search{flex-basis:100%!important;max-width:none}
  .kf-form__row>:nth-child(3):last-child{grid-column:1/-1}
  .kf-precio{width:88px;height:40px}
  /* Tablas del panel de clientes en móvil: cada fila apilada; la primera celda arriba y el «…» a la derecha */
  .kf:not([data-panel]) .kf-table-wrap>.kf-table:has(>thead:not(.kf-sr)),
  .kf:not([data-panel]) .kf-table-wrap>.kf-table:has(>thead:not(.kf-sr)) tbody{display:block}
  .kf:not([data-panel]) .kf-table-wrap>.kf-table:has(>thead:not(.kf-sr)) thead{display:none}
  .kf:not([data-panel]) .kf-table-wrap>.kf-table:has(>thead:not(.kf-sr)) tr{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;position:relative;padding:12px 0;border-top:1px solid var(--row-line)}
  .kf:not([data-panel]) .kf-table-wrap>.kf-table:has(>thead:not(.kf-sr)) td{height:auto;padding:0;border:0;min-width:0;background:none!important}
  .kf:not([data-panel]) .kf-table-wrap>.kf-table:has(>thead:not(.kf-sr)) td:first-child{flex:1 1 100%;padding-right:48px}
  .kf:not([data-panel]) .kf-table-wrap>.kf-table:has(>thead:not(.kf-sr)) td.r{margin-left:auto}
  .kf:not([data-panel]) .kf-table-wrap>.kf-table:has(>thead:not(.kf-sr)) td.r~td.r{margin-left:0}
  .kf:not([data-panel]) .kf-table-wrap>.kf-table:has(>thead:not(.kf-sr)) td.act{position:absolute;top:6px;right:0;width:auto}
  .kf:not([data-panel]) .kf-table-wrap>.kf-table:has(>thead:not(.kf-sr)) td.act:empty{display:none}
  .kf:not([data-panel]) .kf-table-wrap>.kf-table:has(>thead:not(.kf-sr)) td[colspan]{flex-basis:100%;padding-right:0}
  /* Organizaciones de la consola: apiladas, sin Centros ni Licencias (sin cabecera no se entienden) */
  #cf-tabla .kf-table,#cf-tabla tbody{display:block}
  #cf-tabla thead{display:none}
  #cf-tabla tr{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;padding:12px 0;border-top:1px solid var(--row-line)}
  #cf-tabla td{height:auto;padding:0;border:0}
  #cf-tabla td:first-child{flex:1 1 100%}
  #cf-tabla td:last-child{margin-left:auto}
  /* Resto de tablas de la consola: desplazamiento propio, sin celdas de diez líneas */
  [data-panel="consola"] .kf-table-wrap>.kf-table td:first-child{min-width:240px}
  [data-panel="consola"] .kf-table-wrap>.kf-table td:not(:first-child){white-space:nowrap}
  [data-panel="consola"] .kf-table td:first-child .sub{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:240px}
}
/* Táctil: nada por debajo de 40 px; campos a 16 px para que iOS no amplíe la página */
@media (max-width:720px),(pointer:coarse){
  .kf-btn,.kf-btn--primary,.kf-btn--sm{height:40px}
  .kf-top .kf-btn--icon,.kf-top-link{min-width:40px;height:40px;justify-content:center}
  .kf-pill{height:40px}
  .kf-nav,.kf-nav-back{height:44px}
  .kf-seg{height:auto}.kf-seg button{height:38px}
  .kf-table .kf-btn--icon,.kf-mas,.kf-tfoot .kf-btn--icon,.kf-pass .kf-btn--icon,.kf-estrellas button,.kf-toast__x{width:40px;height:40px}
  .kf-input,select.kf-input,.kf-filter{height:40px}
  .kf-input,select.kf-input,textarea.kf-input{font-size:16px}
  .kf-menu button{min-height:40px}
  .kf-auth__links .kf-link,.kf-auth__pie .kf-link{display:inline-block;padding:11px 0}
}
@media (max-width:480px){
  .kf-scrim{padding:12px;place-items:safe center}
  .kf-dialog{padding:20px 16px;max-height:calc(100dvh - 24px)}
  .kf-dialog__foot{flex-direction:column-reverse}
  .kf-dialog__foot .kf-btn{width:100%;justify-content:center}
  .kf-notice{flex-wrap:wrap}
  .kf-notice__body{flex:1 1 220px}
  .kf-notice__actions{margin-left:auto}
  .kf-pasos{flex-wrap:nowrap;gap:12px}
  .kf-pasos li:not(.actual){font-size:0;gap:0}
  .kf-pasos li:not(.actual) span{font-size:12px}
}

/* ── Soporte: centro de ayuda y mensajes (como support.claude.com) ── */
.kf-ayuda{max-width:1080px;margin:0 auto}
.kf-ayuda__hero{padding:8px 0 32px;border-bottom:1px solid var(--line);margin-bottom:32px}
.kf-ayuda__titulo{font-size:32px;line-height:40px;font-weight:500;letter-spacing:-.01em;margin:0;text-wrap:balance}
.kf-ayuda__buscar{max-width:560px;margin-top:20px}
.kf-ayuda__buscar>.i{left:14px;width:18px;height:18px}
.kf-ayuda__buscar .kf-input{height:44px;padding-left:42px;font-size:15px;border-radius:var(--radius-lg)}
.kf-ayuda__acc{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}
.kf-ayuda__cols{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:40px;align-items:start}
.kf-ayuda__main{min-width:0}
.kf-ayuda__lado{display:flex;flex-direction:column;gap:16px;min-width:0}
.kf-ayuda__temas{margin-top:40px}
.kf-arts{display:flex;flex-direction:column;margin-top:8px}
.kf-art{display:flex;align-items:center;gap:16px;padding:12px 0;border-bottom:1px solid var(--line);color:var(--text-1);text-decoration:none}
.kf-art:hover .kf-art__t{text-decoration:underline}
.kf-art__c{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.kf-art__t{font-weight:500}
.kf-art__r{font-size:13px;line-height:18px;color:var(--text-2)}
.kf-art__i{width:18px;height:18px;color:var(--text-3);flex:none}
.kf-temas{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(280px,100%),1fr));gap:12px;margin-top:12px}
.kf-tema{display:flex;gap:12px;align-items:flex-start;padding:16px;border-radius:var(--radius-panel);box-shadow:inset 0 0 0 1px var(--line);color:var(--text-1);text-decoration:none;min-width:0}
.kf-tema:hover{box-shadow:inset 0 0 0 1px var(--line-strong);background:var(--fill-ghost-hover)}
.kf-tema__ic{width:32px;height:32px;border-radius:var(--radius);display:grid;place-items:center;background:var(--fill-chip);flex:none}
.kf-tema__ic .i{width:16px;height:16px;color:var(--text-2)}
.kf-tema__c{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.kf-tema__t{font-weight:500}
.kf-tema__d{font-size:13px;line-height:18px;color:var(--text-2)}
.kf-tema__n{font-size:12px;color:var(--text-3);margin-top:4px}
.kf-tema__chev{width:16px;height:16px;color:var(--text-3);margin-top:8px;flex:none}
.kf-migas{display:flex;align-items:center;flex-wrap:wrap;gap:4px;font-size:13px;color:var(--text-3);margin-bottom:12px}
.kf-migas a{color:var(--text-2);text-decoration:none}
.kf-migas a:hover{color:var(--text-1);text-decoration:underline}
.kf-migas__sep{width:14px;height:14px}
.kf-migas [aria-current]{max-width:40ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kf-tema-n{margin:-12px 0 8px}
.kf-articulo{max-width:720px}
.kf-articulo__t{font-size:28px;line-height:36px;font-weight:500;margin:0 0 6px;text-wrap:balance}
.kf-articulo__cuerpo{margin-top:24px;font-size:15px;line-height:24px}
.kf-articulo__cuerpo p{margin:0 0 14px}
.kf-articulo__cuerpo h2{font-size:18px;line-height:26px;font-weight:500;margin:28px 0 10px}
.kf-articulo__cuerpo ol,.kf-articulo__cuerpo ul{margin:0 0 14px;padding-left:22px}
.kf-articulo__cuerpo li{margin:4px 0}
.kf-nota{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:var(--radius-lg);background:var(--fill-chip);margin:0 0 14px}
.kf-nota .i{width:16px;height:16px;color:var(--text-2);margin-top:4px;flex:none}
.kf-nota p{margin:0}
.kf-util{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:16px 0;margin:8px 0 24px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);color:var(--text-2)}
.kf-util>span:first-child{margin-right:4px}
.kf-contacto{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-top:32px;padding:20px;border-radius:var(--radius-panel);box-shadow:inset 0 0 0 1px var(--line)}
.kf-estado-svc__fila{display:flex;gap:10px;align-items:flex-start}
.kf-estado-svc__fila>span{display:flex;flex-direction:column;gap:2px}
.kf-estado-svc__fila .i{width:18px;height:18px;margin-top:1px;flex:none;color:var(--text-3)}
.kf-estado-svc--ok .i{color:var(--success-text)}
.kf-estado-svc--mal .i{color:var(--warning-text)}
/* Lista de conversaciones */
.kf-convs{display:flex;flex-direction:column}
.kf-conv{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line);color:var(--text-1);text-decoration:none;min-width:0}
/* Al pasar por encima (Javi, 08-11-2026: «que aparezcan las cositas para saber que estoy seleccionando»): la fila se
   marca, el título se subraya, el círculo del icono se oscurece y aparece la flecha. */
.kf-conv{position:relative;border-radius:8px;transition:background .12s}
.kf-convs .kf-conv{padding-left:8px;padding-right:8px;margin:0 -8px}
.kf-conv:hover,.kf-conv:focus-visible{background:var(--fill-row-hover)}
.kf-conv:hover .kf-conv__t{text-decoration:underline;text-underline-offset:2px}
.kf-conv:hover .kf-conv__ic{background:var(--fill-selected)}
.kf-conv:hover .kf-conv__ic .i{color:var(--text-1)}
.kf-conv__ir{flex:none;display:grid;place-items:center;width:16px;opacity:0;transform:translateX(-4px);transition:opacity .12s,transform .12s}
.kf-conv__ir .i{width:16px;height:16px;color:var(--text-2)}
.kf-conv:hover .kf-conv__ir,.kf-conv:focus-visible .kf-conv__ir{opacity:1;transform:none}
.kf-conv--danger .kf-conv__ic .i{color:var(--danger-text)}
.kf-conv--warning .kf-conv__ic .i{color:var(--warning-text)}
.kf-conv--accent .kf-conv__ic .i{color:var(--accent-text)}
@media (prefers-reduced-motion:reduce){.kf-conv,.kf-conv__ir{transition:none}}
.kf-conv__ic{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:var(--fill-chip);flex:none}
.kf-conv__ic .i{width:16px;height:16px;color:var(--text-2)}
.kf-conv__c{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.kf-conv__t{font-weight:500;display:flex;align-items:center;gap:8px;min-width:0}
.kf-conv--nueva .kf-conv__t{font-weight:600}
.kf-conv__m{font-size:13px;color:var(--text-2)}
.kf-conv__d{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex:none}
.kf-convs--corta .kf-conv:last-child{border-bottom:0}
.kf-punto{width:8px;height:8px;border-radius:50%;background:var(--accent-fill);flex:none;display:inline-block}
/* Envíanos un mensaje */
.kf-nueva{max-width:640px}
.kf-nueva__pie{display:flex;justify-content:flex-end;gap:8px}
.kf-sugerencias{padding:12px 16px 4px;border-radius:var(--radius-panel);background:var(--fill-chip)}
.kf-sugerencias__t{display:flex;align-items:center;gap:8px;font-weight:500;font-size:13px}
.kf-sugerencias__t .i{width:16px;height:16px;color:var(--accent-text)}
.kf-sugerencias .kf-art:last-child{border-bottom:0}
/* Conversación: burbujas con avatar */
.kf-msg{display:flex;gap:10px;align-items:flex-start;max-width:85%;padding:0;border:0;background:none}
.kf-msg__av{width:28px;height:28px;border-radius:50%;flex:none}
.kf-msg__av--yo{display:grid;place-items:center;background:var(--fill-selected);font-size:11px;font-weight:600;color:var(--text-1)}
.kf-msg__c{min-width:0;padding:10px 14px;border-radius:var(--radius-panel);box-shadow:inset 0 0 0 1px var(--line)}
.kf-msg--mio{align-self:flex-end;flex-direction:row-reverse}
.kf-msg--mio .kf-msg__c{background:var(--fill-chip);box-shadow:none}
.kf-msg__autor{display:flex;gap:8px;flex-wrap:wrap}
/* Consola: bandeja de tres columnas */
.kf-inbox{display:grid;grid-template-columns:minmax(280px,340px) minmax(0,1fr) 280px;border-radius:var(--radius-panel);box-shadow:inset 0 0 0 1px var(--line);min-height:calc(100vh - 240px);overflow:hidden}
.kf-inbox__lista{border-right:1px solid var(--line);display:flex;flex-direction:column;min-width:0}
.kf-inbox__filtros{display:flex;flex-direction:column;gap:8px;padding:12px;border-bottom:1px solid var(--line)}
.kf-inbox__filtros .kf-search{flex:none!important;max-width:none}
.kf-inbox__filtros .kf-seg{width:100%}
.kf-inbox__filtros .kf-seg button{flex:1 0 auto;padding:0 8px;font-size:13px;justify-content:center}
.kf-inbox__items{overflow-y:auto;flex:1;max-height:calc(100vh - 320px);padding:6px}
.kf-inbox__hilo{padding:20px 24px;min-width:0;display:flex;flex-direction:column}
.kf-inbox__ficha{border-left:1px solid var(--line);padding:20px;display:flex;flex-direction:column;gap:20px;min-width:0}
.kf-inbox__vacio{margin:auto}
.kf-inbox__volver{display:none;margin-bottom:12px;align-self:flex-start;align-items:center;gap:6px}
.kf-tk{display:flex;flex-direction:row;gap:10px;align-items:flex-start;width:100%;text-align:left;border:0;border-radius:var(--radius);padding:10px;background:transparent;color:var(--text-1);font:inherit;cursor:pointer}
.kf-tk:hover{background:var(--fill-ghost-hover)}
.kf-tk.on{background:var(--fill-selected)}
.kf-tk__av{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:var(--fill-chip);font-size:12px;font-weight:600;flex:none;color:var(--text-1)}
.kf-tk__c{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.kf-tk__top{display:flex;justify-content:space-between;gap:8px;font-weight:400}
.kf-tk__quien{font-size:13px;color:var(--text-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kf-tk__cuando{font-size:12px;color:var(--text-3);flex:none}
.kf-tk__asunto{display:flex;align-items:center;gap:6px;font-size:14px;min-width:0}
.kf-tk--nueva .kf-tk__asunto{font-weight:600}
.kf-tk__meta{display:flex;flex-wrap:wrap;gap:4px 8px;align-items:center;font-size:12px;line-height:16px;color:var(--text-3);margin-top:2px}
.kf-hilo__cab{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;align-items:flex-start;padding-bottom:16px;border-bottom:1px solid var(--line)}
.kf-hilo__tit{min-width:0}
.kf-hilo__acc{display:flex;gap:6px;align-items:center}
.kf-inbox__hilo .kf-chat{flex:1;margin-top:16px}
.kf-ficha__t{font-size:12px;font-weight:500;color:var(--text-3);margin:0 0 8px}
.kf-ficha__head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.kf-ficha__head .kf-ficha__t{margin:0}
.kf-ficha__quien{display:flex;gap:10px;align-items:center}
.kf-ficha__nombre{min-width:0;overflow-wrap:anywhere}
.kf-ficha__subs{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-direction:column;gap:6px;font-size:13px}
.kf-ficha__subs li{display:flex;justify-content:space-between;gap:8px;align-items:center}
.kf-dl{display:grid;grid-template-columns:auto minmax(0,1fr);gap:6px 12px;margin:0;font-size:13px}
.kf-dl dt{color:var(--text-3)}
.kf-dl dd{margin:0;text-align:right;overflow-wrap:anywhere}
.kf-ficha__estrellas{color:var(--warning-text);letter-spacing:2px}
@media (max-width:1280px){
  .kf-inbox{grid-template-columns:minmax(260px,320px) minmax(0,1fr)}
  .kf-inbox__ficha{grid-column:2;border-left:0;border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
}
@media (max-width:960px){
  .kf-ayuda__cols{grid-template-columns:minmax(0,1fr)}
  .kf-ayuda__lado{order:-1}   /* en móvil, primero tus mensajes y el estado, como en el chat de Claude */
  .kf-inbox{grid-template-columns:minmax(0,1fr);box-shadow:none;border-radius:0;min-height:0}
  .kf-inbox__lista{border-right:0}
  .kf-inbox__filtros{padding:0 0 12px;border-bottom:0}
  .kf-inbox__items{max-height:none;padding:0}
  .kf-inbox__hilo,.kf-inbox__ficha{display:none!important;padding:16px 0}
  .kf-inbox--hilo .kf-inbox__lista{display:none}
  .kf-inbox--hilo .kf-inbox__hilo{display:flex!important}
  .kf-inbox--hilo .kf-inbox__ficha:not([hidden]){display:flex!important;grid-column:auto;border-top:1px solid var(--line)}
  .kf-inbox__volver{display:inline-flex}
}
@media (max-width:720px){
  .kf-ayuda__titulo{font-size:26px;line-height:32px}
  .kf-ayuda__hero{padding-bottom:24px;margin-bottom:24px}
  .kf-articulo__t{font-size:24px;line-height:30px}
  .kf-msg{max-width:100%}
  .kf-conv__d .kf-chip{display:none}
}

/* Facturación como Claude */
.kf-bill__avisos{display:flex;flex-direction:column;gap:12px;margin-bottom:24px}
.kf-bill__planes{display:flex;flex-direction:column;gap:12px;margin-top:12px}
.kf-bill__plan{display:flex;align-items:flex-start;gap:16px;padding:20px}
.kf-bill__body{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:4px}
.kf-bill__name{font-size:16px;line-height:22px;font-weight:600;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.kf-bill__price{font-size:14px;line-height:20px;color:var(--text-1)}
.kf-bill__desc{font-size:13px;line-height:18px;color:var(--text-2)}
.kf-bill__ctl{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.kf-bill__cuota{display:flex;flex-direction:column;gap:4px;margin-top:12px;padding:20px}
.kf-bill__big{font-size:28px;line-height:34px;font-weight:600;letter-spacing:-.01em}
.kf-bill__det{margin-top:8px}
.kf-bill__det>summary{cursor:pointer;width:max-content}
@media (max-width:600px){.kf-bill__plan{flex-wrap:wrap}.kf-bill__body{flex:1 1 0}.kf-bill__ctl{width:100%;padding-left:48px}}

/* Entrada como Claude Console */
.kf-login{min-height:100vh;display:flex;flex-direction:column;background:var(--surface-1)}
.kf-login__top{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;max-width:1280px;margin:0 auto;padding-block:22px;padding-left:max(24px,env(safe-area-inset-left,0px));padding-right:max(24px,env(safe-area-inset-right,0px))}
.kf-login__marca{display:inline-flex;align-items:center;gap:10px;color:var(--text-1);text-decoration:none}
.kf-login__palabra,.kf-login__serif{font-family:"Source Serif 4",Georgia,"Times New Roman",serif;font-weight:400;letter-spacing:-.01em}
.kf-login__palabra{font-size:24px;line-height:28px;display:inline-flex;align-items:center;gap:10px}
.kf-login__nav{display:flex;align-items:center;gap:28px;font-size:14px}
.kf-login__nav a{color:var(--text-1);text-decoration:none}
.kf-login__nav a:hover{color:var(--text-2)}
.kf-login__nav .kf-login__ventas{padding:7px 12px;border-radius:var(--radius);background:var(--fill-secondary)}
.kf-login__nav .kf-login__ventas:hover{background:var(--fill-secondary-hover);color:var(--text-1)}
.kf-login__hero{position:relative;flex:1;display:flex;flex-direction:column;align-items:center;text-align:center;padding-block:72px 72px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
.kf-login__hero::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background-image:radial-gradient(var(--line-strong) 1px,transparent 1.2px);background-size:18px 18px;-webkit-mask-image:linear-gradient(to bottom,transparent,#000 12%,#000 82%,transparent);mask-image:linear-gradient(to bottom,transparent,#000 12%,#000 82%,transparent);opacity:.55}
.kf-login__hero>*{position:relative;z-index:1}
.kf-login__titulo{font-size:40px;line-height:46px;font-weight:500;letter-spacing:-.02em;text-wrap:balance;max-width:680px}
.kf-login__sub{margin-top:14px;color:var(--text-2);font-size:15px;line-height:22px;max-width:440px;text-wrap:balance}
.kf-login__card{margin-top:40px;width:100%;max-width:448px;padding:24px;border:1px solid var(--line);border-radius:16px;background:var(--surface-1);text-align:left;gap:14px}
.kf-login__card .kf-input{height:42px;font-size:15px}
.kf-login__card .kf-btn--ancho{height:42px;font-size:15px}
.kf-login__card .kf-auth__links:empty{display:none}
.kf-login__quien{display:flex;justify-content:space-between;align-items:center;gap:8px;min-height:42px;padding:0 12px;border:1px solid var(--line);border-radius:var(--radius);background:var(--fill-field)}
.kf-login__correo{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:15px}
.kf-login__legal{margin-top:18px;font-size:12px;line-height:18px;color:var(--text-3);max-width:400px;text-wrap:balance}
.kf-login__legal a{color:var(--accent-text);text-decoration:underline;text-underline-offset:2px}
.kf-login__prods{text-align:center;padding-block:40px 56px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
.kf-login__prods h2{font-size:19px;line-height:26px;color:var(--text-1)}
.kf-login__fila{display:flex;flex-wrap:wrap;justify-content:center;gap:24px 56px;margin-top:28px}
.kf-login__prod{display:inline-flex;align-items:center;gap:10px;font-size:22px;line-height:28px;font-weight:600;letter-spacing:-.015em;color:var(--text-1)}
.kf-login__prod svg{width:24px;height:24px;color:var(--text-2)}
.kf-login__pie{display:grid;grid-template-columns:1.6fr repeat(4,1fr);gap:32px;width:100%;max-width:1280px;margin:0 auto;border-top:1px solid var(--line);padding-block:48px 56px;padding-left:max(24px,env(safe-area-inset-left,0px));padding-right:max(24px,env(safe-area-inset-right,0px))}
.kf-login__pie--corto{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;padding-block:24px;font-size:13px}
.kf-login__col{display:flex;flex-direction:column;gap:6px;min-width:0}
.kf-login__col--marca{gap:12px}
.kf-login__col--marca .kf-login__palabra{font-size:22px}
.kf-login__col h3{font-size:12px;line-height:16px;font-weight:500;color:var(--text-3);margin-bottom:4px}
.kf-login__col a{color:var(--text-1);font-size:13px;line-height:22px;text-decoration:none}
.kf-login__col a:hover{color:var(--text-2)}
@media (max-width:760px){
.kf-login__nav a:not(.kf-login__ventas){display:none}
.kf-login__palabra{font-size:21px}
.kf-login__hero{padding-block:40px 56px}
.kf-login__titulo{font-size:30px;line-height:36px}
.kf-login__card{margin-top:28px;padding:20px}
.kf-login__prod{font-size:18px}
.kf-login__fila{gap:18px 32px}
.kf-login__pie{grid-template-columns:1fr 1fr;gap:28px 16px}
.kf-login__col--marca{grid-column:1/-1}
}
.kf .kf-login__sub{margin-top:14px}
.kf .kf-login__legal{margin-top:18px}
.kf .kf-login__prod svg{width:22px;height:22px;flex:none}
.kf-login__card .kf-auth__links{row-gap:6px}
.kf-login__card .kf-auth__links:not(:has(> :not([hidden]))){display:none}
/* Marcas de los productos, como en kaisfera.com (Kai en su color). En oscuro, KaiEmpleo usa el azul de su icono. */
.kf-marca{font-family:"Hanken Grotesk",var(--font-sans);font-weight:800;letter-spacing:-.02em;color:var(--text-1);white-space:nowrap}
.kf-marca__kai{color:var(--marca-kai,var(--accent-text))}
.kf-marca--kaisalud{--marca-kai:#26786B}
.kf-marca--kairness{--marca-kai:#d97757}
.kf-marca--kaidoctor{--marca-kai:#db2777}
.kf-marca--kaiteams{--marca-kai:#2563EB}
.kf-marca--kaiempleo{--marca-kai:#5B7FE0}
.kf-marca--kaiformacion{--marca-kai:#0284c7}
.kf-login__fila{display:grid;grid-template-columns:repeat(6,auto);justify-content:space-between;align-items:center;gap:24px 40px;width:100%;max-width:1120px;margin:32px auto 0}
.kf .kf-login__prod{font-size:28px;line-height:34px;text-decoration:none;color:var(--text-1);opacity:.92;transition:opacity .15s}
.kf .kf-login__prod:hover{opacity:1}
.kf-login__palabra{font-size:25px}
@media (max-width:1000px){.kf-login__fila{grid-template-columns:repeat(3,auto);justify-content:space-around}}
@media (max-width:560px){.kf-login__fila{grid-template-columns:repeat(2,auto);gap:20px 28px}.kf .kf-login__prod{font-size:23px;line-height:28px}.kf-login__palabra{font-size:20px}}
/* La entrada en NEGRO, como el panel por dentro (Javi, 04-11-2026), con la marca de Kaisfera: el logo y el título con
   el degradado de siempre, Hanken Grotesk y un halo índigo muy suave detrás de la tarjeta. */
.kf-login{font-family:"Hanken Grotesk",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;background:radial-gradient(110% 700px at 50% 320px,rgba(91,91,214,.16),rgba(91,91,214,0) 70%) no-repeat,var(--surface-1)}
.kf-login__hero{background:none}
.kf-login__hero::before{opacity:.5}
.kf-login__titulo{font-weight:700;letter-spacing:-.03em;font-size:46px;line-height:50px}
.kf-login__grad,.kf-login__logo{background:linear-gradient(100deg,#d97757,#5b5bd6 38%,#0284c7 66%,#0d9488);-webkit-background-clip:text;background-clip:text;color:transparent}
.kf-login__logo{font-weight:800;letter-spacing:-.02em}
.kf-login__marca{gap:7px;align-items:baseline}
.kf-login__marca .kf-login__logo{font-size:22px}
.kf-login__sitio{font-weight:500;font-size:22px;letter-spacing:-.015em;color:var(--text-2)}
.kf-login__col--marca .kf-login__logo{font-size:24px}
.kf-login .kf-login__palabra{font-family:inherit}
.kf-login__card{box-shadow:0 18px 40px -18px rgba(0,0,0,.6)}
.kf-login__prods h2{font-family:inherit;font-weight:600;font-size:15px;line-height:22px;color:var(--text-2);letter-spacing:0}
.kf-login .kf-btn--primary{font-weight:600}
@media (max-width:760px){.kf-login__titulo{font-size:32px;line-height:37px}.kf-login__marca .kf-login__logo,.kf-login__sitio{font-size:19px}}
/* En negro, el verde de KaiSalud y el azul de KaiTeams se apagaban: un punto más claros, mismo tono. */
.kf-marca--kaisalud{--marca-kai:#2f9483}
.kf-marca--kaiteams{--marca-kai:#3b7bf0}
/* Las dos entradas, caja a caja iguales: el título ocupa el mismo ancho aunque cambien las palabras. */
.kf-login__titulo,.kf-login__sub{width:100%}

/* ── Barra de arriba: la misma marca en todas las páginas y en los dos paneles (Javi, 04-11-2026) ── */
.kf-logo{font-family:"Hanken Grotesk",var(--font-sans);font-weight:800;letter-spacing:-.02em;background:linear-gradient(100deg,#d97757,#5b5bd6 38%,#0284c7 66%,#0d9488);-webkit-background-clip:text;background-clip:text;color:transparent}
.kf-top .kf-brand__link{align-items:baseline;gap:6px;font-size:18px;line-height:24px}
.kf-brand__sitio{font-family:"Hanken Grotesk",var(--font-sans);font-weight:500;letter-spacing:-.015em;color:var(--text-2)}
@media (max-width:560px){.kf-top .kf-brand__link{font-size:16px;gap:4px}}

/* ── Inicio y resúmenes con el patrón de Claude Console (Javi, 04-11-2026): más estrecho, tarjetas compactas ── */
.kf-main[data-ruta="inicio"]>*{max-width:944px}
.kf-ph--saludo{align-items:center;margin-bottom:16px}
.kf-ph__title.kf-saludo{font-family:"Source Serif 4",Georgia,"Times New Roman",serif;font-weight:400;font-size:26px;line-height:32px;letter-spacing:-.01em}
.kf-revisar{margin-bottom:12px}
.kf-tarjetas{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr))}
.kf-tarjeta{border:1px solid var(--line);border-radius:var(--radius-panel);background:var(--surface-2);padding:16px;display:flex;flex-direction:column;min-width:0;min-height:140px}
.kf-tarjeta--ancha{margin-top:12px;min-height:0}
.kf-tarjeta__top{display:flex;align-items:center;justify-content:space-between;gap:6px 8px;flex-wrap:wrap;font-size:14px;line-height:20px;color:var(--text-2);min-height:28px}
.kf-tarjeta__t{display:inline-flex;align-items:center;gap:6px}
.kf-info{display:inline-flex;color:var(--text-3);cursor:help;border-radius:50%}
.kf .kf-info .i{width:15px;height:15px}
.kf-tarjeta__titulo{margin:0;font-size:14px;line-height:20px;font-weight:600;color:var(--text-1);display:flex;align-items:center;gap:8px}
.kf-tarjeta__fila{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:auto;padding-top:20px}
.kf-tarjeta__izq{min-width:0;display:flex;flex-direction:column;gap:2px}
.kf-tarjeta__lado{display:flex;align-items:center;gap:16px;flex:none}
.kf-tarjeta__valor{font-size:22px;line-height:28px;font-weight:600;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.kf-tarjeta__sub{font-size:13px;line-height:19px;color:var(--text-3)}
.kf-tarjeta__pie{padding-top:14px;display:flex;align-items:center;gap:8px 14px;flex-wrap:wrap}
.kf-tarjeta .kf-table{margin-top:6px}
.kf-tarjeta .kf-empty--small{padding-block:16px}
.kf .kf-abrir{display:inline-flex;align-items:center;gap:4px;font-size:13px;line-height:20px;font-weight:500;color:var(--text-1);text-decoration:none;white-space:nowrap}
.kf .kf-abrir .i{width:14px;height:14px;color:var(--text-3);transition:transform .15s,color .15s}
.kf .kf-abrir:hover{text-decoration:underline;text-underline-offset:3px}
.kf .kf-abrir:hover .i{transform:translateX(2px);color:var(--text-1)}
.kf-anillo{width:48px;height:48px;flex:none;transform:rotate(-90deg)}
.kf-anillo circle{fill:none;stroke-width:3.5}
.kf-anillo__fondo{stroke:var(--line-strong)}
.kf-anillo__valor{stroke:var(--accent-text);stroke-linecap:round}
.kf-anillo--lleno .kf-anillo__valor{stroke:var(--warning-text)}
.kf-resumen-dos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
@media (max-width:900px){.kf-resumen-dos{grid-template-columns:minmax(0,1fr)}}
.kf-inicio__sec{margin-top:28px}
.kf-inicio__sec>.kf-h2row{padding-inline:8px}
.kf-mini{display:flex;gap:5px;width:180px}
.kf-mini__col{flex:1;display:flex;flex-direction:column;gap:4px;min-width:0}
.kf-mini__pista{height:40px;display:flex;align-items:flex-end;border-radius:3px;background:var(--fill-chip)}
.kf-mini__barra{display:block;width:100%;border-radius:3px;background:var(--accent-text);opacity:.85}
.kf-mini__dia{font-size:10px;line-height:12px;color:var(--text-3);text-align:center;text-transform:capitalize}
@media (max-width:560px){.kf-mini{display:none}}
/* Productos, como los modelos en Claude Console: pequeños, su color arriba con el icono y lo esencial debajo */
.kf-prods{display:grid;gap:12px;grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:900px){.kf-prods{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.kf-prods{grid-template-columns:repeat(2,minmax(0,1fr))}.kf .kf-prod__cab{height:72px}.kf .kf-prod__cuerpo{padding:10px 12px 12px}}
.kf .kf-prod{--prod:#5b5bd6;border:1px solid var(--line);border-radius:var(--radius-panel);background:var(--surface-2);overflow:hidden;display:flex;flex-direction:column;min-width:0;color:var(--text-1);text-decoration:none;transition:border-color .15s}
.kf .kf-prod:hover{border-color:var(--line-stronger)}
.kf .kf-prod--kaisalud{--prod:#2f9483}.kf .kf-prod--kairness{--prod:#d97757}.kf .kf-prod--kaidoctor{--prod:#db2777}.kf .kf-prod--kaiteams{--prod:#3b7bf0}.kf .kf-prod--kaiempleo{--prod:#5B7FE0}.kf .kf-prod--kaiformacion{--prod:#0284c7}
.kf-prod__cab{height:90px;display:grid;place-items:center;background:color-mix(in srgb,var(--prod) 72%,#fff)}
.kf .kf-prod__cab .i{width:44px;height:44px;color:#141413;stroke-width:1.4}
.kf-prod__cuerpo{padding:12px 16px 16px;display:flex;flex-direction:column;gap:8px;flex:1}
.kf-prod__nombre{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:16px;line-height:22px}
.kf-prod__nombre .kf-chip{font-family:var(--font-sans);letter-spacing:0}
.kf-prod__tags{display:flex;flex-wrap:wrap;gap:6px}
/* Recursos: icono y título en una línea, y dos líneas de texto */
.kf-recursos{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(min(200px,100%),1fr))}
.kf .kf-recurso{border:1px solid var(--line);border-radius:var(--radius-panel);background:var(--surface-2);padding:16px;display:flex;flex-direction:column;gap:6px;color:var(--text-1);text-decoration:none;transition:border-color .15s}
.kf .kf-recurso:hover{border-color:var(--line-stronger)}
.kf-recurso__t{display:flex;align-items:center;gap:8px;font-size:14px;line-height:20px;font-weight:600}
.kf .kf-recurso__t .i{width:16px;height:16px;color:var(--text-2)}
.kf-recurso__d{font-size:13px;line-height:19px;color:var(--text-2);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
#kf-pagina>.kf-footer{margin-top:28px}
.kf-inicio__sec>.kf-tarjeta{min-height:0}
/* Medidas de Claude Console (Javi: «mismo tamaño que usa Claude»): saludo de 24, más aire arriba, nombre de 15 */
.kf-main[data-ruta="inicio"]{padding-top:44px}
.kf-ph__title.kf-saludo{font-size:24px;line-height:30px}
.kf .kf-prod__cuerpo{padding:14px 16px 16px}
.kf-prod__nombre{font-size:15px;line-height:20px}
@media (max-width:560px){.kf-main[data-ruta="inicio"]{padding-top:24px}.kf .kf-prod__cuerpo{padding:10px 12px 12px}}
/* Globos de las «i» (siempre oscuros, como en Claude Console) */
.kf-globo{position:absolute;z-index:200;max-width:min(280px,calc(100vw - 16px));padding:7px 10px;border-radius:6px;background:#1c1c1a;border:1px solid rgba(255,255,255,.14);color:#f0efec;font-size:13px;line-height:18px;box-shadow:0 8px 24px -8px rgba(0,0,0,.6);pointer-events:none}
.kf-info:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}
/* Barra de arriba: Documentación y la campanita de avisos (como Claude Console) */
.kf .kf-campana{position:relative;font:inherit;background:none;border:0;cursor:pointer;padding:0;width:32px;justify-content:center}
.kf .kf-campana .i{color:var(--text-1)}
.kf-campana__punto{position:absolute;top:4px;right:6px;width:8px;height:8px;border-radius:50%;background:var(--warning-text);box-shadow:0 0 0 2px var(--surface-chrome)}
.kf-menu.kf-flota{max-width:min(360px,calc(100vw - 16px))}
.kf-menu.kf-flota button{white-space:normal;text-align:left}
/* En el móvil la barra cabe entera: la marca no se monta encima de los iconos y la prueba dice «Prueba 17 nov» */
@media (max-width:560px){.kf-top>.kf-brand{overflow:hidden}.kf .kf-top .kf-top-link,.kf .kf-top .kf-btn--icon{min-width:36px;padding:0 8px}.kf .kf-campana{width:36px}.kf-top__right{gap:2px}}
/* Tarjetas que llevan a su página, como en Claude Console: toda la tarjeta es el enlace y se ilumina al pasar por
   encima; sus botones, enlaces, «i» y barras quedan por encima y llevan a su sitio concreto. */
.kf-tarjeta--enlace{position:relative;isolation:isolate;transition:background-color .15s,border-color .15s}
.kf-tarjeta--enlace:hover{background:color-mix(in srgb,var(--surface-2) 94%,var(--text-1));border-color:var(--line-strong)}
.kf .kf-tarjeta__enlace{color:inherit;text-decoration:none;outline:none}
.kf-tarjeta__enlace::after{content:"";position:absolute;inset:0;border-radius:var(--radius-panel);z-index:0}
.kf-tarjeta__enlace:focus-visible::after{outline:2px solid var(--focus-ring);outline-offset:2px}
.kf-tarjeta--enlace :is(a:not(.kf-tarjeta__enlace),button,.kf-info,.kf-mini){position:relative;z-index:1}
.kf-mini__col{cursor:default}
[data-ancla]{scroll-margin-top:calc(var(--header-h) + 16px)}
[data-ancla]:focus{outline:none}
/* Filtros como en Claude Console: «Rango  Últimos 30 días ▾» y su desplegable con las fechas */
.kf-filtros{margin-bottom:16px}
.kf .kf-filtro{height:32px;display:inline-flex;align-items:center;gap:6px;padding:0 8px 0 10px;border:1px solid var(--line-strong);border-radius:var(--radius);background:transparent;color:var(--text-1);font:inherit;font-size:14px;cursor:pointer;max-width:100%}
.kf .kf-filtro:hover{background:var(--fill-ghost-hover)}
.kf-filtro__l{color:var(--text-3)}
.kf-filtro__v{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.kf .kf-filtro .i{width:15px;height:15px;color:var(--text-3)}
.kf-filtro[aria-expanded="true"]{background:var(--fill-ghost-hover)}
.kf-desp{z-index:60}
.kf-menu.kf-desp>button{justify-content:space-between}
.kf .kf-menu.kf-desp>button .i{width:15px;height:15px;color:var(--text-2)}
.kf-desp__form{display:flex;flex-direction:column;gap:10px;padding:8px 8px 6px;border-top:1px solid var(--line);margin-top:4px;min-width:260px}
.kf .kf-menu .kf-desp__form .kf-btn--primary{height:32px;justify-content:center;background:var(--fill-primary);color:var(--text-on-primary);font-weight:500}
.kf .kf-menu .kf-desp__form .kf-btn--primary:hover{background:var(--fill-primary-hover)}
.kf-desp__form .kf-input{width:100%}
.kf-bloque{margin-top:12px;min-height:0}
.kf-bloque .kf-graf{margin-top:12px}
.kf-graf__zona{fill:transparent}
.kf-graf__zona:hover{fill:var(--fill-ghost-hover)}
.kf-menu.kf-flota>button{height:auto;min-height:32px;padding-block:6px}
/* Tablas (Javi, 04-11-2026: «la iluminación se ve rara, en todas las tablas»): las filas no se iluminan al pasar el
   ratón (no se pulsan), la primera fila no lleva raya encima cuando no hay cabecera a la vista, y la columna de
   acciones toma el fondo de su caja en vez de un recuadro más oscuro. */
.kf .kf-table tbody tr:hover>:is(td,th){background:transparent}
.kf .kf-table-wrap>.kf-table tbody tr:hover{background:transparent}
.kf-table:is(:has(>thead.kf-sr),:not(:has(>thead))) tbody tr:first-child>:is(td,th){border-top:0}
.kf .kf-table-wrap>.kf-table tbody tr:hover td.act{background:var(--surface-1)}
.kf .kf-tarjeta .kf-table-wrap>.kf-table :is(th,td).act,.kf .kf-tarjeta .kf-table-wrap>.kf-table tbody tr:hover td.act{background:var(--surface-2)}
.kf .kf-tarjeta .kf-table-wrap>.kf-table tbody tr:first-child{border-top:0}

/* Barra lateral como Claude Console (Javi, 04-11-2026: «mira el sistema que tienen ellos y cópialo»): a la vista
   desde 768 px y el contenido se estrecha; por debajo, «☰» a la derecha abre el menú a pantalla completa, «✕» lo
   cierra, la búsqueda queda en un icono y «Documentación» y la prueba bajan al pie del menú. */
.kf-menu-claude{display:none}
.kf-side__extra{display:none}
html.kf-sin-scroll{overflow:hidden}
@media (min-width:768px) and (max-width:960px){
  .kf-shell.kf-shell--claude{grid-template-columns:var(--sidebar-w) minmax(0,1fr)}
  .kf-shell--claude>.kf-side{position:sticky;top:var(--header-h);height:calc(100vh - var(--header-h));width:auto;transform:none;visibility:visible;transition:none;z-index:auto}
  .kf-shell--claude>.kf-velo{display:none}
}
@media (max-width:767px){
  .kf-shell--claude .kf-top{grid-template-columns:minmax(0,1fr) auto auto}
  .kf .kf-shell--claude .kf-menu-claude{display:inline-flex}
  .kf-shell--claude .kf-top-doc,.kf-shell--claude .kf-top__right>.kf-pill,.kf-shell--claude .kf-top__right>.kf-chip{display:none}
  .kf .kf-shell--claude .kf-top__search{display:flex;flex:none;width:36px;height:36px;padding:0;justify-content:center;background:none;box-shadow:none}
  .kf-shell--claude .kf-top__search-t,.kf-shell--claude .kf-top__search .kf-kbd{display:none}
  .kf-shell--claude>.kf-side{inset:var(--header-h) 0 0 0;width:100%;border-right:0;transform:none;opacity:0;padding:8px 8px 0;transition:opacity .15s,visibility 0s linear .15s}
  .kf-shell--claude>.kf-side.kf-side--abierto{opacity:1;transition:opacity .15s}
  .kf-shell--claude>.kf-velo{display:none}
  .kf-shell--claude .kf-side__extra{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:auto;padding:10px 4px;border-top:1px solid var(--line)}
  .kf-shell--claude .kf-side__extra+.kf-org{margin-top:0}
}
/* Ajustes y Facturación alineados a la izquierda, como en Claude Console (antes iban centrados y no casaban con
   Miembros o el Registro de actividad) */
.kf-main .kf-col{margin-left:0;margin-right:auto}
.kf-org-id{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:20px;padding-top:16px;border-top:1px solid var(--line);font-size:13px;color:var(--text-2)}
.kf-org-id .mono{color:var(--text-1);overflow-wrap:anywhere}
.kf .kf-correo{color:var(--text-1);user-select:all}
.kf-main .kf-col.kf-col--ancha{max-width:none;margin-top:24px}
/* Productos (Javi, 04-11-2026): planes como los precios de Claude: nombre en serif, el botón justo debajo del precio
   y, separadas por una raya, todas sus ventajas. */
.kf .kf-plan{padding:20px;gap:6px;background:var(--surface-2)}
.kf .kf-plan__name{font-family:"Source Serif 4",Georgia,"Times New Roman",serif;font-weight:400;font-size:24px;line-height:30px}
.kf .kf-plan__price{margin-top:8px}
.kf-plan__nota{font-size:12px;line-height:17px;color:var(--text-3)}
.kf-plan__cta{margin-top:12px;padding-bottom:16px;border-bottom:1px solid var(--line)}
.kf-plan__estado{display:flex;align-items:center;justify-content:center;height:var(--control-h);border:1px solid var(--line);border-radius:var(--radius);font-size:13px;color:var(--text-2)}
.kf .kf-plan__feats{margin-top:8px}
.kf .kf-plan--mio{border-color:var(--line-stronger)}
.kf-inicio__sec.kf-sec--primera{margin-top:0}
.kf .kf-plan__top{flex-wrap:wrap;row-gap:4px}
/* Planes coherentes (Javi, 04-11-2026: «cada uno va a su bola»): las filas de todas las tarjetas se alinean entre sí
   (nombre, para quién es, precio, nota, botón y ventajas a la misma altura), con subgrid. */
.kf .kf-planes{grid-template-columns:repeat(auto-fill,minmax(min(220px,100%),1fr));align-items:stretch}
.kf .kf-plan{display:grid;grid-row:span 6;grid-template-rows:subgrid;row-gap:6px;align-content:start}
.kf .kf-plan__top{flex-wrap:nowrap;align-items:center;min-width:0}
.kf .kf-plan__name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kf .kf-plan__top .kf-chip{flex:none}
.kf .kf-plan__desc{align-self:start}
.kf .kf-plan__cta{align-self:start;margin-top:8px}
.kf .kf-plan__feats{align-self:start;margin-top:4px}
.kf-planes__todo{margin-top:12px}
.kf-planes__todo:empty{display:none}
/* Tus productos: tarjetas más anchas para que sus botones quepan en una fila */
.kf .kf-prods--mios{grid-template-columns:repeat(auto-fill,minmax(min(320px,100%),1fr))}
.kf .kf-prods--mios .kf-tarjeta__pie{flex-wrap:nowrap}
/* Los cinco planes en una fila cuando caben; si el nombre y su chip no caben, el chip baja y la fila sube en todas */
.kf .kf-planes{grid-template-columns:repeat(auto-fill,minmax(min(196px,100%),1fr))}
.kf .kf-plan__top{flex-wrap:wrap;row-gap:4px}
.kf .kf-plan__name{white-space:normal;overflow:visible}
/* Coherencia de las tarjetas (Javi, 04-11-2026): la cifra siempre a la misma distancia del título en todas las de una
   fila (antes se iba abajo y subía o bajaba según lo largo del texto de debajo) y el pie, con su «Abrir …», siempre
   abajo del todo. */
.kf .kf-tarjeta__fila{margin-top:0;padding-top:18px;align-items:center}
.kf .kf-tarjeta__pie{margin-top:auto}
.kf .kf-tarjeta>.kf-tarjeta__fila:last-child{margin-bottom:auto}
/* Mismo borde izquierdo en todas las páginas (Javi: «que sea todo coherente»): Soporte ya no va centrado, y los
   títulos de sección solo llevan el sangrado de 8 px en el inicio (como el panel de Claude). */
.kf .kf-ayuda{margin-left:0;margin-right:auto}
.kf-main:not([data-ruta="inicio"]) .kf-inicio__sec>.kf-h2row{padding-inline:0}
/* Temas de ayuda: «N artículos» siempre abajo, a la misma altura en las tarjetas de una fila */
.kf .kf-tema{align-items:stretch}
.kf .kf-tema>:not(.kf-tema__c){align-self:flex-start}
.kf .kf-tema__n{margin-top:auto;padding-top:6px}
/* «Añadir producto»: un hueco del mismo tamaño que los productos, con borde discontinuo y un «+» dentro */
.kf .kf-prod-nuevo{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:180px;padding:16px;border:1.5px dashed var(--line-stronger);border-radius:var(--radius-panel);color:var(--text-2);text-decoration:none;background:transparent;transition:border-color .15s,color .15s,background-color .15s;text-align:center}
.kf .kf-prod-nuevo:hover{border-color:var(--text-2);color:var(--text-1);background:var(--fill-ghost-hover)}
.kf-prod-nuevo__mas{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;border:1.5px dashed currentColor;margin-bottom:4px}
.kf .kf-prod-nuevo__mas .i{width:20px;height:20px}
.kf-prod-nuevo__t{font-weight:600;font-size:14px;line-height:20px}
.kf-prod-nuevo__d{font-size:12px;line-height:16px;color:var(--text-3)}
.kf .kf-prod__dl{margin-left:auto}
.kf .kf-plan__estado{opacity:1;color:var(--text-2);background:transparent;box-shadow:inset 0 0 0 1px var(--line);border:0;cursor:default}
/* Soporte como el centro de ayuda de Claude (Javi, 04-11-2026): título en serif, como el saludo del inicio, y los
   temas en tarjetas iguales con el icono arriba, cuatro por fila cuando caben, con «N artículos» siempre abajo. */
.kf .kf-ayuda__titulo{font-family:"Source Serif 4",Georgia,"Times New Roman",serif;font-weight:400;font-size:34px;line-height:42px;letter-spacing:-.01em}
@media (max-width:560px){.kf .kf-ayuda__titulo{font-size:28px;line-height:34px}}
.kf-ayuda__temas{margin-bottom:32px}
.kf .kf-temas{grid-template-columns:repeat(auto-fill,minmax(min(230px,100%),1fr))}
.kf .kf-tema{flex-direction:column;gap:12px;padding:20px;background:var(--surface-2)}
.kf .kf-tema__c{gap:4px;flex:1}
.kf .kf-tema__t{font-weight:600}
.kf-ayuda__res{margin-bottom:32px}
/* Productos en pantallas medianas (hasta 1080 px): 2 por fila, para que los botones de cada tarjeta quepan en una línea */
@media (max-width:1080px) and (min-width:561px){.kf .kf-prods{grid-template-columns:repeat(2,minmax(0,1fr))}}
.kf .kf-prod .kf-tarjeta__pie{flex-wrap:nowrap}
/* Soporte (Javi, 04-11-2026): artículos populares en tarjetas, con el icono y el nombre de su tema arriba, para que no
   se vean todos iguales; el estado de los servicios, en una línea al pie con su punto. */
.kf-arts-tarjetas{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(min(300px,100%),1fr));margin-top:12px}
.kf .kf-art-tarjeta{display:flex;flex-direction:column;gap:6px;padding:16px 18px;border:1px solid var(--line);border-radius:var(--radius-panel);background:var(--surface-2);color:var(--text-1);text-decoration:none;transition:border-color .15s,background-color .15s;min-width:0}
.kf .kf-art-tarjeta:hover{border-color:var(--line-stronger);background:color-mix(in srgb,var(--surface-2) 94%,var(--text-1))}
.kf-art-tarjeta__tema{display:inline-flex;align-items:center;gap:6px;font-size:12px;line-height:16px;color:var(--text-3)}
.kf .kf-art-tarjeta__tema .i{width:14px;height:14px}
.kf-art-tarjeta__t{font-weight:600;font-size:14px;line-height:20px}
.kf-art-tarjeta__r{font-size:13px;line-height:19px;color:var(--text-2);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
#ay-pop{margin-bottom:8px}
.kf-ayuda__estado{margin-top:32px}
.kf-estado-linea{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--text-2)}
.kf-estado-punto{width:8px;height:8px;border-radius:50%;background:var(--success-fill,#3aa76d);flex:none}
.kf-estado-linea--mal .kf-estado-punto{background:var(--warning-text)}
.kf-estado-linea--mal{color:var(--text-1)}
/* Notificaciones, como en Claude Console: pestañas «Avisos» y «Mensajes» con su contador */
.kf-pests{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:16px}
.kf .kf-pest{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;margin-bottom:-1px;border-bottom:2px solid transparent;color:var(--text-3);text-decoration:none;font-size:14px;font-weight:500}
.kf .kf-pest:hover{color:var(--text-1)}
.kf .kf-pest[aria-current="page"]{color:var(--text-1);border-bottom-color:var(--text-1)}
.kf-avisos{padding:4px 16px}
.kf-aviso{display:flex;align-items:center;gap:12px;padding:12px 0;border-top:1px solid var(--row-line)}
.kf-aviso:first-child{border-top:0}
.kf .kf-aviso>.i{color:var(--warning-text);flex:none}
.kf-aviso__t{flex:1;min-width:0}
.kf-aviso__p{width:8px;height:8px;border-radius:50%;flex:none;background:var(--line-strong)}
.kf-aviso__p--danger{background:var(--danger-fill)}
.kf-aviso__p--warning{background:var(--warning-fill)}
.kf-aviso__p--accent{background:var(--accent-fill)}
.kf-pests__desc{margin:-4px 0 16px}
.kf-fantasma{pointer-events:none}
/* Menú del móvil con las medidas de Claude Console (Javi, 04-11-2026: «copiar el tamaño y el espaciado»): filas de
   36 px, la de «←» de 32 px con 12 px debajo, letra de 14 px, y el pie (Documentación y la prueba) en filas de 28 px. */
@media (max-width:767px){
  .kf .kf-shell--claude .kf-side .kf-nav{height:36px;padding:0 8px;font-size:14px}
  .kf .kf-shell--claude .kf-side .kf-nav-back{height:32px;margin-bottom:12px;font-size:14px}
  .kf .kf-shell--claude .kf-side .kf-nav-group{padding:12px 8px 4px}
  .kf .kf-shell--claude .kf-side__extra{padding:4px 0;gap:8px}
  .kf .kf-shell--claude .kf-side__extra>.kf-top-link,.kf .kf-shell--claude .kf-side__extra>.kf-pill{height:28px;min-height:28px;min-width:0;padding:0 10px}
  .kf .kf-shell--claude .kf-side .kf-org{padding:6px 8px}
}
@media (max-width:767px){.kf .kf-shell--claude>.kf-side{padding:8px}.kf .kf-shell--claude .kf-side__entero{gap:0}.kf .kf-shell--claude .kf-side .kf-org{padding:7px 8px}}
@media (max-width:767px){.kf .kf-shell--claude>.kf-side{gap:0}}
#i-ia>.kf-tarjeta{height:100%}

/* Ventanas como las de Claude (Javi, 04-11-2026): 520 px de ancho, título de 22 px, ✕ arriba a la derecha,
   8 px entre etiqueta y campo, 16 px entre campos, ayudas de 13 px y la acción abajo a la derecha. */
.kf-scrim{background:rgba(0,0,0,.5)}
.kf-dialog.kf-dialog{position:relative;max-width:100%;padding:20px 24px 24px;border-radius:12px;box-shadow:inset 0 0 0 1px var(--line),0 4px 8px rgba(11,11,11,.08),0 12px 28px -2px rgba(0,0,0,.24)}
.kf-dialog__title{font-size:22px;line-height:28px;font-weight:600;padding-right:40px;text-wrap:balance}
.kf-dialog .kf-dialog__x{position:absolute;top:16px;right:16px}
.kf-dialog__text{margin-top:8px;line-height:20px}
.kf-dialog .kf-field{gap:8px}
.kf-dialog .kf-help{font-size:13px;line-height:18px}
.kf-dialog.kf-dialog--buscador{padding:8px}
@media (max-width:480px){
  .kf-scrim{padding:12px}
  .kf-dialog.kf-dialog{padding:16px 16px 20px}
  .kf-dialog__title{font-size:20px;line-height:26px}
  .kf-dialog .kf-dialog__x{top:12px;right:8px}
}
/* En el móvil la ventana no pasa del ancho de la pantalla (la rejilla del fondo no la encoge sola). */
.kf-dialog.kf-dialog{max-width:calc(100vw - 48px)}
@media (max-width:480px){.kf-dialog.kf-dialog{max-width:calc(100vw - 24px)}}

/* Hacienda en el móvil: cada factura en su bloque, para que el estado y el motivo no se queden fuera de la pantalla. */
@media (max-width:767px){
  .kf-table--hz,#hz-ret .kf-table{display:block;width:100%;min-width:0}
  .kf-table--hz thead,#hz-ret thead{display:none}
  .kf-table--hz tbody,#hz-ret tbody{display:block}
  .kf-table--hz tr,#hz-ret tr{display:grid;grid-template-columns:minmax(0,1fr) auto 32px;gap:6px 12px;padding:12px 0;border-bottom:1px solid var(--row-line)}
  .kf-table--hz td,#hz-ret td{display:block;position:static;height:auto;padding:0;border:0;max-width:none;overflow:visible;white-space:normal;background:none}
  .kf-table--hz td:nth-child(1),#hz-ret td:nth-child(1){grid-area:1/1}
  .kf-table--hz td:nth-child(3),#hz-ret td:nth-child(3){grid-area:1/2}
  .kf-table--hz td.act{grid-area:1/3}
  .kf-table--hz td:nth-child(2),#hz-ret td:nth-child(2){grid-column:1/-1;grid-row:2}
  .kf-table--hz td:nth-child(4){grid-column:1/-1;grid-row:3}
  #hz-ret td:nth-child(4){grid-column:1/-1;grid-row:3}
  .kf-table--hz td[colspan]{grid-column:1/-1}
}
/* En Notificaciones, el título y su frase en dos líneas. */
.kf-aviso__t .sub{display:block;margin-top:2px;font-size:13px;line-height:18px;color:var(--text-3)}
/* «Descargar PDF» como enlace dentro de la tabla, como en Claude. */
button.kf-link{padding:0;border:0;background:none;font:inherit;color:var(--accent-text);text-decoration:underline;text-underline-offset:2px;cursor:pointer}
.kf-table td.act .kf-link{white-space:nowrap}

/* Facturas en el móvil: fecha e importe en una línea, concepto y tag en la siguiente, y la descarga debajo. */
@media (max-width:767px){
  .kf:not([data-panel]) .kf-table-wrap>.kf-table.kf-table--fact:has(>thead:not(.kf-sr)) tr{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 12px;align-items:center}
  .kf:not([data-panel]) .kf-table-wrap>.kf-table.kf-table--fact:has(>thead:not(.kf-sr)) td{width:auto;text-align:left}
  .kf:not([data-panel]) .kf-table-wrap>.kf-table.kf-table--fact:has(>thead:not(.kf-sr)) td:first-child{grid-column:1;grid-row:1;padding-right:0}
  .kf:not([data-panel]) .kf-table-wrap>.kf-table.kf-table--fact:has(>thead:not(.kf-sr)) td:nth-child(4){grid-column:2;grid-row:1;align-self:start;margin:0;text-align:right}
  .kf:not([data-panel]) .kf-table-wrap>.kf-table.kf-table--fact:has(>thead:not(.kf-sr)) td:nth-child(2){grid-column:1;grid-row:2}
  .kf:not([data-panel]) .kf-table-wrap>.kf-table.kf-table--fact:has(>thead:not(.kf-sr)) td:nth-child(3){grid-column:2;grid-row:2;text-align:right}
  .kf:not([data-panel]) .kf-table-wrap>.kf-table.kf-table--fact:has(>thead:not(.kf-sr)) td.act{position:static;grid-column:1/-1;grid-row:3}
  .kf:not([data-panel]) .kf-table-wrap>.kf-table.kf-table--fact:has(>thead:not(.kf-sr)) td[colspan]{grid-column:1/-1;grid-row:auto}
}

/* Finanzas: las pestañas son botones; los botones de la página de antes quedan a la derecha, encima de su contenido. */
.kf button.kf-pest{background:none;border:0;border-bottom:2px solid transparent;font:inherit;font-size:14px;cursor:pointer}
.kf button.kf-pest[aria-current="page"]{border-bottom-color:var(--text-1)}
.fz-acc{display:flex;justify-content:flex-end;gap:8px;margin-bottom:12px}
.kf-filters>.fz-acc{margin:0 0 0 auto}
.kf-entra{color:var(--success-text)}
.kf-sale{color:var(--danger-text)}

/* Finanzas en el móvil: pestañas en una línea que se desliza, y cada fila apilada con su etiqueta. */
[data-panel="consola"] #kf-main[data-ruta^="finanzas/"] .kf-pests{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}
[data-panel="consola"] #kf-main[data-ruta^="finanzas/"] .kf-pests::-webkit-scrollbar{display:none}
[data-panel="consola"] #kf-main[data-ruta^="finanzas/"] .kf-pest{flex:none;white-space:nowrap}
@media (max-width:767px){
  [data-panel="consola"] :is(#kf-main[data-ruta^="finanzas/"],#kf-main[data-ruta="ficha"]) .kf-table-wrap{overflow:visible}
  [data-panel="consola"] :is(#kf-main[data-ruta^="finanzas/"],#kf-main[data-ruta="ficha"]) .kf-table-wrap>.kf-table,[data-panel="consola"] :is(#kf-main[data-ruta^="finanzas/"],#kf-main[data-ruta="ficha"]) .kf-table-wrap>.kf-table tbody{display:block;width:100%;min-width:0}
  [data-panel="consola"] :is(#kf-main[data-ruta^="finanzas/"],#kf-main[data-ruta="ficha"]) .kf-table-wrap>.kf-table thead{display:none}
  [data-panel="consola"] :is(#kf-main[data-ruta^="finanzas/"],#kf-main[data-ruta="ficha"]) .kf-table-wrap>.kf-table tr{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 16px;position:relative;padding:12px 0;border-top:1px solid var(--row-line)}
  [data-panel="consola"] :is(#kf-main[data-ruta^="finanzas/"],#kf-main[data-ruta="ficha"]) .kf-table-wrap>.kf-table td{display:block;height:auto;padding:0;border:0;min-width:0!important;white-space:normal!important;background:none!important}
  [data-panel="consola"] :is(#kf-main[data-ruta^="finanzas/"],#kf-main[data-ruta="ficha"]) .kf-table-wrap>.kf-table td:first-child{flex:1 1 100%;padding-right:48px}
  [data-panel="consola"] :is(#kf-main[data-ruta^="finanzas/"],#kf-main[data-ruta="ficha"]) .kf-table-wrap>.kf-table td:first-child .sub{white-space:normal;max-width:none}
  [data-panel="consola"] :is(#kf-main[data-ruta^="finanzas/"],#kf-main[data-ruta="ficha"]) .kf-table-wrap>.kf-table td[data-l]:not(:first-child)::before{content:attr(data-l) " ";color:var(--text-3);font-size:13px}
  [data-panel="consola"] :is(#kf-main[data-ruta^="finanzas/"],#kf-main[data-ruta="ficha"]) .kf-table-wrap>.kf-table td.act{position:absolute;top:8px;right:0;width:auto}
  [data-panel="consola"] :is(#kf-main[data-ruta^="finanzas/"],#kf-main[data-ruta="ficha"]) .kf-table-wrap>.kf-table td.act:empty{display:none}
  [data-panel="consola"] :is(#kf-main[data-ruta^="finanzas/"],#kf-main[data-ruta="ficha"]) .kf-table-wrap>.kf-table td[colspan]{flex-basis:100%;padding-right:0}
}
@media (max-width:767px){
  [data-panel="consola"] #kf-main[data-ruta^="finanzas/"] .kf-seg{flex-wrap:nowrap;overflow-x:auto;max-width:100%;scrollbar-width:none}
  [data-panel="consola"] #kf-main[data-ruta^="finanzas/"] .kf-seg button{flex:none;white-space:nowrap}
  [data-panel="consola"] #kf-main[data-ruta^="finanzas/"] .kf-filters>.fz-acc{margin:0;width:100%;justify-content:center}
}

/* Recorrido de una factura (Javi, 05-11-2026): los 6 pasos en vertical, un punto de color por estado y la línea que los
   une, verde entre pasos hechos. Fecha a la derecha; en móvil, debajo del título. */
.kf-recorrido__cab{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 12px;margin-bottom:20px}
.kf-recorrido{list-style:none;margin:0;padding:0}
.kf-hito{position:relative;display:grid;grid-template-columns:3px minmax(0,1fr) auto;column-gap:14px;row-gap:2px;padding-bottom:16px}
.kf-hito:last-child{padding-bottom:0}
/* Cada paso, una barrita de su color a la izquierda, de su alto (Javi, 06-11-2026: «no me gustan los puntos»). */
.kf-hito__punto{grid-column:1;grid-row:1/4;align-self:stretch;width:3px;min-height:20px;border-radius:2px;background:var(--line-strong)}
.kf-hito--hecho .kf-hito__punto{background:var(--success-fill)}
.kf-hito--aviso .kf-hito__punto{background:var(--warning-fill)}
.kf-hito--fallo .kf-hito__punto{background:var(--danger-fill)}
.kf-hito--no_aplica .kf-hito__punto{background:var(--line-strong);opacity:.5}
.kf-hito__titulo{grid-column:2;grid-row:1;font-weight:500;color:var(--text-1);line-height:20px}
.kf-hito--en_espera .kf-hito__titulo,.kf-hito--no_aplica .kf-hito__titulo{color:var(--text-2);font-weight:400}
.kf-hito--fallo .kf-hito__titulo{color:var(--danger-text)}
.kf-hito--aviso .kf-hito__titulo{color:var(--warning-text)}
.kf-hito__cuando{grid-column:3;grid-row:1;font-size:12px;line-height:20px;color:var(--text-3);white-space:nowrap;text-align:right;font-variant-numeric:tabular-nums}
.kf-hito__texto{grid-column:2/4;grid-row:2;font-size:13px;line-height:18px;color:var(--text-2)}
@media (max-width:520px){
  .kf-hito{grid-template-columns:3px minmax(0,1fr)}
  .kf-hito__cuando{grid-column:2;grid-row:2;text-align:left;white-space:normal}
  .kf-hito__texto{grid-column:2;grid-row:3}
}
/* La factura a la que lleva el enlace del correo. */
.kf .kf-table-wrap>.kf-table tbody tr.kf-fila--destacada>td,.kf .kf-table-wrap>.kf-table tbody tr.kf-fila--destacada>td.act{background:var(--surface-2)}

/* Ventana de Datos de facturación: aire entre la frase y el formulario. */
.kf-dialog__text + .kf-form,.kf-dialog__text + .kf-notice{margin-top:16px}

/* Misma página repintada: si lo nuevo tarda, lo de antes se atenúa en vez de verse a medio pintar. */
.kf-fantasma--espera{opacity:.55;transition:opacity .15s}

/* Menú de los filtros (píldoras): la opción elegida con su marca a la derecha. */
.kf-menu--filtro button{justify-content:space-between}
.kf-menu--filtro button[aria-current="true"]{font-weight:500}
.kf-menu--filtro button .i{width:14px;height:14px;color:var(--text-2);flex:none}

/* Organizaciones: columnas de ancho fijo, para que no bailen al pasar de página (Javi, 05-11-2026). */
@media (min-width:721px){
  #cf-tabla .kf-table{table-layout:fixed;width:100%}
  #cf-tabla th:nth-child(1){width:44%}#cf-tabla th:nth-child(2){width:20%}#cf-tabla th:nth-child(3){width:22%}#cf-tabla th:nth-child(4){width:14%}
  #cf-tabla td{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
}

/* Píldoras de filtro: marcada cuando hay un filtro puesto; en el menú, el número de cada opción a la derecha. */
.kf .kf-filter.kf-filter--on{color:var(--text-1);background:var(--fill-selected)}
.kf-menu__fin{display:inline-flex;align-items:center;gap:8px;margin-left:16px}
.kf-menu__n{color:var(--text-3);font-variant-numeric:tabular-nums}
.kf-menu__hueco{width:14px;flex:none}
/* En el menú de filtros, la opción con el foco se marca con fondo, como en Claude, no con el anillo azul. */
.kf .kf-menu--filtro button:focus-visible{outline:none;box-shadow:none;background:var(--fill-ghost-hover)}

/* Ficha de una organización: el mismo ancho y el mismo ritmo en todas las pestañas (Javi, 05-11-2026). */
.kf-ficha__cuerpo{margin-top:12px}
.kf-ficha__cifras{margin-bottom:8px}
.kf-datos{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px 32px}
.kf-dato__l{font-size:12px;line-height:16px;color:var(--text-3)}
.kf-dato__v{margin-top:4px;color:var(--text-1);overflow-wrap:anywhere}
.kf-dato--ancho{grid-column:1/-1}

/* Sin flechitas en los campos de número (Javi, 05-11-2026); el menú propio, con scroll si es largo; «Más opciones» plegable. */
.kf input[type=number]{-moz-appearance:textfield;appearance:textfield}
.kf input[type=number]::-webkit-outer-spin-button,.kf input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.kf-menu--filtro{max-height:min(360px,60vh);overflow-y:auto}
.kf-mas-op{display:flex;flex-direction:column;gap:inherit}
.kf-mas-op>summary{cursor:pointer;color:var(--text-2);font-size:14px;padding:4px 0;list-style:none}
.kf-mas-op>summary::-webkit-details-marker{display:none}
.kf-mas-op>summary::before{content:"+ "}
.kf-mas-op[open]>summary::before{content:"\2212  "}
.kf-mas-op[open]>summary{margin-bottom:12px}
.kf-mas-op>.kf-field+.kf-field{margin-top:16px}

/* Cliente: dos columnas; a la derecha, listas cortas. «Lo cambia el cliente» en lo que es suyo. */
.kf-ficha__dos{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:0 48px;align-items:start}
@media (max-width:1100px){.kf-ficha__dos{grid-template-columns:1fr}}
.kf-quien{display:inline-flex;align-items:center;gap:6px;color:var(--text-3);font-size:12px;white-space:nowrap}
.kf-quien .i{width:12px;height:12px}
.kf-lineas{display:flex;flex-direction:column}
.kf-lineas__fila{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:10px 0;border-top:1px solid var(--row-line);color:var(--text-1);text-decoration:none;font-size:14px}
.kf-lineas__fila:first-child{border-top:0;padding-top:0}
.kf-lineas__fila .sub{display:block;margin-top:2px;color:var(--text-3);font-size:12px}
.kf-lineas__fin{text-align:right;flex:none;font-variant-numeric:tabular-nums}
a.kf-lineas__fila:hover>span:first-child{text-decoration:underline}

/* Cliente: una caja con sus datos y jerarquía clara (Javi, 05-11-2026: «todas las palabras son iguales»): el título de la
   caja, la etiqueta de cada grupo a la izquierda, el nombre del campo pequeño y gris y el valor marcado. */
.kf-caja{margin-top:32px;border:1px solid var(--line);border-radius:var(--radius-panel);background:var(--surface-2)}
.kf-caja__cab{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:20px 24px}
.kf-caja__t{margin:0;font-size:16px;line-height:22px;font-weight:600;color:var(--text-1)}
.kf-caja__d{margin:4px 0 0;font-size:13px;line-height:18px;color:var(--text-3)}
.kf-caja__grupo{display:grid;grid-template-columns:160px minmax(0,1fr);gap:12px 24px;padding:20px 24px;border-top:1px solid var(--line)}
.kf-caja__g{font-size:11px;line-height:20px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-3)}
.kf-pares{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px 32px;margin:0}
.kf-pares>div{min-width:0}
.kf-pares__ancho{grid-column:1/-1}
.kf-pares dt{margin:0 0 4px;font-size:12px;line-height:16px;color:var(--text-3)}
.kf-pares dd{margin:0;font-size:15px;line-height:20px;font-weight:500;color:var(--text-1);overflow-wrap:anywhere}
@media (max-width:720px){
  .kf-caja__cab,.kf-caja__grupo{padding:16px}
  .kf-caja__grupo{grid-template-columns:1fr;gap:8px}
}
.kf-caja+.kf-caja{margin-top:16px}

/* Cliente compacto (Javi, 05-11-2026: «ocupa demasiado»): dos cajas lado a lado con filas de «campo | valor». */
.kf-cajas{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:24px;align-items:start}
@media (max-width:960px){.kf-cajas{grid-template-columns:1fr}}
.kf-cajas .kf-caja{margin-top:0}
.kf-caja--fina .kf-caja__cab{align-items:center;padding:14px 20px;border-bottom:1px solid var(--line)}
.kf-caja--fina .kf-caja__t{font-size:15px;line-height:20px}
.kf-filas{margin:0;padding:4px 20px 8px}
.kf-filas>div{display:grid;grid-template-columns:136px minmax(0,1fr);gap:16px;padding:9px 0;border-top:1px solid var(--row-line)}
.kf-filas>div:first-child{border-top:0}
.kf-filas dt{margin:0;font-size:13px;line-height:20px;color:var(--text-3)}
.kf-filas dd{margin:0;font-size:14px;line-height:20px;color:var(--text-1);overflow-wrap:anywhere}
.kf-caja__enlace{font-size:13px}

/* Tarjetas con su logo (Javi, 05-11-2026): la placa a la izquierda, «Visa •••• 0001» y, debajo, la caducidad y el centro. */
.kf-logo-tarjeta{display:inline-flex;flex:none;width:32px;height:20px;border-radius:3px;overflow:hidden;box-shadow:0 0 0 1px var(--line);vertical-align:middle}
.kf-logo-tarjeta svg{display:block;width:100%;height:100%}
.kf-medios{display:flex;flex-direction:column;gap:12px}
.kf-medio{display:grid;grid-template-columns:32px minmax(0,1fr) auto;column-gap:12px;row-gap:2px;align-items:center}
.kf-medio>.kf-logo-tarjeta{grid-row:1/3}
.kf-medio__t{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kf-medio__fin{justify-self:end}
.kf-medio__s{grid-column:2/4;font-size:12px;line-height:16px;color:var(--text-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kf-medio__s:empty{display:none}
.kf-medio-linea{display:inline-flex;align-items:center;gap:10px;white-space:nowrap}
.kf-setting__title .kf-logo-tarjeta{margin-right:8px;vertical-align:-5px}

/* Módulos extra con su icono; la caja de lista sin la rejilla de filas. */
.kf-mod-icono{grid-row:1/3;display:inline-grid;place-items:center;width:32px;height:32px;border-radius:8px;background:var(--surface-3);color:var(--text-2)}
.kf-mod-icono .i{width:16px;height:16px}
.kf-filas--lista{padding:14px 20px}
.kf-filas dd .sub{display:block;margin-top:2px;font-size:12px;line-height:16px;color:var(--text-3)}
.kf-caja__lista{padding:14px 20px}
.kf .kf-caja__enlace{text-decoration:none}
.kf .kf-caja__enlace:hover{text-decoration:underline}

/* Cuota 2.ª vuelta: las condiciones en una caja a dos columnas, el aviso del precio nuevo en pequeño con su ⓘ, el icono del
   módulo dentro de la tabla y la fecha a la derecha de «Paga» y «Baja» en Centros. */
.kf-caja--sola{margin-top:24px}
.kf-filas--dos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:48px}
.kf-filas--dos>div:nth-child(2){border-top:0}
@media (max-width:960px){.kf-filas--dos{grid-template-columns:1fr}.kf-filas--dos>div:nth-child(2){border-top:1px solid var(--row-line)}}
.kf-aviso-mini{display:flex;align-items:center;gap:6px;margin-top:4px;font-size:12px;line-height:16px;color:var(--warning-text)}
.kf-aviso-mini .i{width:13px;height:13px;flex:none}
.kf-mod-icono--sm{grid-row:auto;width:26px;height:26px;border-radius:7px;margin-right:10px;flex:none}
.kf-mod-icono--sm .i{width:14px;height:14px}
.kf-estado-fecha{display:inline-flex;align-items:center;gap:8px;white-space:nowrap}

/* Módulos extra en su caja: la etiqueta y el «…» a la derecha; la ⓘ del título con su explicación. */
.kf-medio__fin{display:inline-flex;align-items:center;gap:4px}
.kf-caja__info{display:inline-flex;vertical-align:-2px;margin-left:6px;color:var(--text-3);cursor:help}
.kf-caja__info .i{width:14px;height:14px}

/* Consulta de soporte dentro de la ficha. */
.kf-chat--ventana{max-height:min(420px,55vh);overflow-y:auto}
.kf-dialog__foot--entre{justify-content:space-between;align-items:center}

/* El «…» de la cabecera de una caja no la hace más alta: las cajas de una fila alinean su título. */
.kf-caja--fina .kf-caja__cab{min-height:48px;box-sizing:border-box}
.kf .kf-caja__cab .kf-mas{width:28px;height:28px;min-height:0;margin:-6px -6px -6px 0}

/* Filas que se pueden pulsar (Javi, 05-11-2026): al pasar por cualquier parte de la fila se subraya su nombre, en toda la app. */
.kf-table tbody tr.kf-fila-link:hover .kf-fila__a,.kf-table tbody tr.kf-fila-link:hover td:not(.act) .kf-link{text-decoration:underline;text-underline-offset:2px}

/* Soporte nuevo (Javi, 05-11-2026): la lista con columnas fijas y, en cada consulta, la conversación a la izquierda y las
   cajas del cliente, la consulta y la asignación a la derecha. */
.kf-volver{display:inline-flex;align-items:center;gap:6px;margin-bottom:12px;font-size:13px;text-decoration:none}
.kf-volver .i{width:14px;height:14px}
@media (min-width:721px){
  #sp-tabla .kf-table{table-layout:fixed;width:100%}
  #sp-tabla th:nth-child(1){width:42%}#sp-tabla th:nth-child(2){width:12%}#sp-tabla th:nth-child(3){width:11%}#sp-tabla th:nth-child(4){width:14%}#sp-tabla th:nth-child(5){width:21%}
  #sp-tabla td{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
}
.kf-tk-nombre{display:inline-flex;align-items:center;gap:8px;max-width:100%;min-width:0}
.kf-tk-nombre .kf-fila__a{overflow:hidden;text-overflow:ellipsis}

.kf-consulta{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:16px;align-items:start;margin-top:24px}
@media (max-width:1100px){.kf-consulta{grid-template-columns:1fr}}
.kf-consulta__lado{display:flex;flex-direction:column;gap:16px}
.kf-consulta .kf-caja{margin-top:0}
/* Consulta, 2.ª vuelta (Javi, 05-11-2026): la conversación llega hasta abajo (la altura la pone el script) con la caja de
   escribir pegada abajo; a la derecha, un solo panel con el cliente, la asignación y la consulta. */
.kf-consulta__hilo{display:flex;flex-direction:column;min-height:0}
.kf-consulta__hilo>.kf-caja__cab{flex:none}
.kf-detalle__resumen{margin:0 20px 12px;padding:10px 0 4px;border-top:1px solid var(--row-line)}
.kf-detalle__resumen-t{font-size:13px;line-height:20px;color:var(--text-3)}
.kf-detalle__resumen p{margin:4px 0 0;font-size:14px;line-height:21px;color:var(--text-1);overflow-wrap:anywhere}
.kf-chat--pagina{flex:1;min-height:0;margin:0;padding:20px;overflow-y:auto}
@media (max-width:1100px){.kf-chat--pagina{max-height:65vh;max-height:65dvh}}
.kf-consulta__escribir{flex:none;padding:4px 16px 16px}
.kf-consulta__cerrada{flex:none;margin:0;padding:14px 20px;border-top:1px solid var(--line)}
.kf-detalle{overflow-y:auto;padding-bottom:4px}
.kf-detalle__cli{display:flex;align-items:center;gap:12px;padding:14px 12px 12px 20px;min-height:48px}
.kf-detalle__av{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;flex:none;background:var(--fill-selected);font-size:13px;font-weight:600;color:var(--text-1)}
.kf-detalle__quien{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:2px}
.kf-detalle__nombre{max-width:100%;padding:0;border:0;background:none;font:inherit;font-size:15px;line-height:20px;font-weight:500;color:var(--text-1);text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
button.kf-detalle__nombre{cursor:pointer}
button.kf-detalle__nombre:hover{text-decoration:underline;text-underline-offset:3px}
.kf-detalle__quien .sub{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kf-detalle__sec{border-top:1px solid var(--line)}
.kf-detalle__t{margin:0;padding:14px 20px 0;font-size:12px;line-height:16px;font-weight:500;color:var(--text-3)}
.kf-detalle .kf-filas>div{grid-template-columns:128px minmax(0,1fr)}
/* La caja de escribir, como la de Claude. */
.kf-escribir{display:flex;flex-direction:column;gap:6px;padding:12px 10px 10px 16px;border-radius:16px;background:var(--fill-field);box-shadow:inset 0 0 0 1px var(--line-strong);cursor:text;transition:box-shadow .15s}
.kf-escribir:focus-within{box-shadow:inset 0 0 0 1px var(--line-stronger),0 2px 10px rgba(0,0,0,.08)}
.kf-escribir textarea{display:block;width:100%;min-height:22px;max-height:200px;margin:0;padding:0 6px 0 0;border:0;outline:0;background:none;box-shadow:none;resize:none;overflow-y:auto;font:inherit;font-size:14px;line-height:22px;color:var(--text-1)}
.kf-escribir textarea::placeholder{color:var(--text-3)}
.kf-escribir textarea:is(:focus,:focus-visible){outline:0!important;box-shadow:none!important}
@media (hover:none){.kf-escribir__atajo{display:none}}
.kf-escribir__pie{display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:default}
.kf-escribir__nota{font-size:12px;line-height:16px;color:var(--text-3)}
.kf-escribir__enviar{flex:none;display:grid;place-items:center;width:32px;height:32px;padding:0;border:0;border-radius:50%;background:var(--fill-primary);color:var(--text-on-primary);cursor:pointer;transition:opacity .15s,background .15s}
.kf-escribir__enviar:hover:not(:disabled){background:var(--fill-primary-hover)}
.kf-escribir__enviar:disabled{opacity:.3;cursor:default}
.kf-escribir__enviar:focus-visible{outline:2px solid #2a78d6;outline-offset:2px}
.kf-escribir__enviar .i{width:16px;height:16px}
.kf-ventana__escribir{margin-top:16px}
/* Incorporaciones (Javi, 05-11-2026): en la lista, el paso con su barrita de 12; en su página, el recorrido en tres
   fases, el siguiente paso y los avisos a la izquierda y sus datos a la derecha. */
.kf-inc-paso{display:block}
.kf-inc-barra{display:flex;gap:2px;width:132px;max-width:100%;margin-top:6px}
.kf-inc-barra>span{flex:1;height:4px;border-radius:2px;background:var(--fill-chip)}
.kf-inc-barra>span.on{background:var(--accent-fill)}
.kf-inc-barra--fin>span.on{background:var(--success-fill)}
@media (min-width:721px){
  #inc-tabla .kf-table{table-layout:fixed;width:100%}
  #inc-tabla th:nth-child(1){width:30%}#inc-tabla th:nth-child(2){width:24%}#inc-tabla th:nth-child(3){width:16%}#inc-tabla th:nth-child(4){width:15%}#inc-tabla th:nth-child(5){width:15%}
  #inc-tabla td{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
}
.kf-inc-recorrido{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}
.kf-inc-recorrido>.kf-caja__cab,.kf-inc-recorrido>.kf-inc-sig{flex:none}
.kf-inc-recorrido .kf-caja__cab .kf-inc-barra{margin:0 4px 0 0;width:120px}
/* La tabla de los 12 pasos: filas bajas para que quepan todos; cada fase empieza con una raya más marcada. */
.kf-inc-tabla{flex:1 1 auto;min-height:0;overflow-y:auto;padding:0 20px}
.kf-inc-tabla .kf-table-wrap{margin:0}
@media (min-width:721px){
  .kf-inc-tabla .kf-table{table-layout:fixed;width:100%}
  .kf-inc-tabla th:nth-child(1){width:17%}.kf-inc-tabla th:nth-child(2){width:39%}.kf-inc-tabla th:nth-child(3){width:15%}.kf-inc-tabla th:nth-child(4){width:15%}.kf-inc-tabla th:nth-child(5){width:14%}
  .kf-inc-tabla td{height:36px;padding-top:6px;padding-bottom:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .kf-inc-tabla tr.kf-inc-fase1 td{border-top-color:var(--line-strong)}
}
.kf-inc-tabla tr.kf-inc-no .kf-fila__a{color:var(--text-2)}
.kf-inc-ventana .kf-filas{padding:0}
/* Recorrido como línea de tiempo, un paso por línea como las filas de una tabla (Javi, 05-11-2026: «no quiero hacer
   scroll en el timeline»): el punto (✓ verde hecho, azul ahora, vacío lo que falta) unido por una raya, el nombre, lo
   suyo resumido en gris, su aviso y su fecha. La caja llega abajo; solo se desplaza si la ventana es muy baja. */
.kf-inc-linea{display:flex;flex-direction:column;min-height:0;margin-top:24px}
.kf-inc-linea>.kf-caja__cab{flex:none;gap:12px}
.kf-inc-linea .kf-caja__cab .kf-inc-barra{margin:0 4px 0 auto;width:132px}
.kf-inc-tl{flex:1 1 auto;min-height:0;overflow-y:auto;padding:0 20px 12px}
.kf-tl__fase{margin:0;padding:12px 0 2px}
.kf-tl{list-style:none;margin:0;padding:0}
.kf-tl__i{position:relative;display:flex;align-items:center;gap:12px;min-height:36px}
.kf-tl__i::before{content:"";position:absolute;left:8px;top:27px;bottom:-9px;width:2px;border-radius:1px;background:var(--line)}
.kf-tl__i:last-child::before{display:none}
.kf-tl--hecho::before{background:var(--success-border)}
.kf-tl__punto{position:relative;z-index:1;flex:none;width:18px;height:18px;border-radius:50%;display:grid;place-items:center;background:var(--surface-2);box-shadow:inset 0 0 0 1.5px var(--line-strong)}
.kf-tl--hecho .kf-tl__punto{background:var(--success-fill);box-shadow:none;color:#fff}
.kf-tl__punto .i{width:12px;height:12px;stroke-width:3}
.kf-tl--ahora .kf-tl__punto{box-shadow:inset 0 0 0 5px var(--accent-fill)}
.kf-tl--prox .kf-tl__punto{box-shadow:inset 0 0 0 1.5px var(--accent-fill)}
.kf-tl__c{flex:1;min-width:0;display:flex;align-items:center;gap:10px;white-space:nowrap;overflow:hidden}
.kf-tl__t{flex:none;font-size:14px;line-height:20px;font-weight:500}
.kf-tl--no .kf-tl__t{font-weight:400;color:var(--text-3)}
.kf-tl--prox .kf-tl__t{color:var(--text-1);font-weight:500}
.kf-tl__l{flex:none;font-size:13px}
.kf-tl__d{min-width:0;overflow:hidden;text-overflow:ellipsis;font-size:13px;color:var(--text-3)}
.kf-tl__lado{flex:none;display:flex;align-items:center}
.kf-tl__btn.kf-btn{height:28px;padding:0 12px;font-size:13px}
.kf-tl__f{flex:none;width:84px;text-align:right;font-size:12px;line-height:20px;color:var(--text-3);white-space:nowrap}
.kf-tl--prox .kf-tl__f{color:var(--accent-text)}
@media (max-width:720px){.kf-tl__i{align-items:flex-start;padding:8px 0}.kf-tl__i::before{top:35px;bottom:-1px}.kf-tl__c{flex-wrap:wrap;white-space:normal;gap:2px 8px}.kf-tl__d{flex-basis:100%}.kf-tl__f{width:auto}}
/* Tareas de Personas: cada paso en una línea (con sus tareas hechas); el abierto, con sus casillas debajo. */
.kf-tarea__paso{flex:1;min-width:0;display:flex;align-items:center;gap:10px;min-height:36px;padding:0 8px;margin:0 -8px;border:0;border-radius:var(--radius);background:none;font:inherit;color:inherit;text-align:left;white-space:nowrap;overflow:hidden;cursor:pointer}
.kf-tarea__paso:hover{background:var(--fill-ghost-hover)}
.kf-tarea__flecha{flex:none;margin-left:auto;width:16px;height:16px;color:var(--text-3);transition:transform .15s}
.kf-tarea__flecha--arriba{transform:rotate(180deg)}
.kf-tareas .kf-tarea--abierta{flex-wrap:wrap;align-items:flex-start}
.kf-tareas .kf-tarea--abierta>.kf-tl__punto{margin-top:9px}
.kf-tareas .kf-tarea--abierta>.kf-tarea__paso{flex:1 1 calc(100% - 30px)}
.kf-tarea__lista{flex:1 1 100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px;padding:0 0 8px 30px}
@media (max-width:720px){.kf-tarea__lista{grid-template-columns:1fr}}
.kf-tarea{min-height:26px;font-size:14px}
/* En Tareas, filas algo más bajas para que quepa también el paso abierto (Javi: sin desplazarse). */
.kf-tareas .kf-tl__i{min-height:32px}
.kf-tareas .kf-tarea__paso{min-height:32px}
.kf-tareas .kf-tl__i::before{top:25px;bottom:-7px}
.kf-tareas .kf-tarea--abierta>.kf-tl__punto{margin-top:7px}
.kf-inc-tl .kf-tareas{margin-bottom:0}
.kf-inc-linea .kf-tareas+.kf-tl__fase,.kf-inc-tl:has(.kf-tareas) .kf-tl__fase{padding:8px 0 0}
.kf-tarea__sub{grid-column:1/-1;margin-top:4px;font-size:12px;line-height:16px;color:var(--text-3)}
.kf-tareas .kf-tarea--abierta::before{top:27px;bottom:-9px}
/* Tareas: el paso de ahora, qué es, sus tareas (casilla, qué hacer y cómo) y su aviso; abajo, «Siguiente». */
.kf-inc-modulo{margin-top:24px}
.kf-inc-modulo .kf-caja__cab{gap:10px}
.kf-inc-modulo__que{margin:0;padding:16px 20px 4px;font-size:14px;line-height:21px;color:var(--text-2)}
.kf-tareas2{list-style:none;margin:0;padding:4px 20px 8px}
.kf-tarea2{display:flex;gap:12px;padding:12px 0;border-top:1px solid var(--row-line)}
.kf-tarea2:first-child{border-top:0}
.kf-tarea2__marca{flex:none;padding-top:1px}
.kf-tarea2__marca input{width:16px;height:16px;margin:0;cursor:pointer}
.kf-tarea2__c{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.kf-tarea2__t{font-size:14px;line-height:20px;font-weight:500}
.kf-tarea2__e{margin:0;font-size:13px;line-height:19px;color:var(--text-3)}
.kf-tarea2--hecha .kf-tarea2__t{color:var(--text-3);text-decoration:line-through;text-decoration-color:var(--text-3)}
.kf-tarea2__docs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px;margin-top:6px}
@media (max-width:720px){.kf-tarea2__docs{grid-template-columns:1fr}}
.kf-tarea2__acc{align-self:flex-start;margin-top:8px}
.kf-inc-modulo__aviso{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;padding:10px 20px;border-top:1px solid var(--line);font-size:13px}
.kf-inc-modulo__aviso .kf-inc-recorrido__n{margin-left:auto}
/* Nueva incorporación: en dos columnas, la firma en una línea y el primer aviso tal como le llegará. */
.kf-nueva{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:8px 28px;align-items:start;max-width:none}
.kf-nueva__form{display:flex;flex-direction:column;gap:14px;min-width:0}
.kf-nueva__vista{position:sticky;top:0;display:flex;flex-direction:column;gap:10px;min-width:0}
.kf-nueva>.kf-error{grid-column:1/-1}
.kf-nueva__sec{margin:4px 0 0;padding-top:14px;border-top:1px solid var(--line);font-size:13px;line-height:18px;font-weight:500;color:var(--text-2)}
.kf-nueva__form>.kf-nueva__sec:first-child,.kf-nueva__vista>.kf-nueva__sec{margin-top:0;padding-top:0;border-top:0}
.kf-nueva__rejilla{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px;align-items:start}
.kf-nueva__rejilla[hidden]{display:none}
.kf-nueva__check{align-self:center;margin-top:18px}
.kf-nueva__check .sub{display:block;font-size:12px;line-height:16px;color:var(--text-3)}
.kf-nueva__firma{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:var(--radius);background:var(--fill-ghost-hover)}
.kf-nueva__quien{flex:1;min-width:0;font-size:14px;line-height:20px}
.kf-nueva__quien .sub{display:block;font-size:12px;line-height:16px;color:var(--text-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kf-nueva__nota{margin:-4px 0 0}
.kf .kf-nueva__firma .kf-link{text-decoration:none}
.kf .kf-nueva__firma .kf-link:hover{text-decoration:underline;text-underline-offset:3px}
.kf-correo__cab{display:flex;flex-direction:column;gap:2px;font-size:12px;line-height:17px;color:var(--text-2);overflow-wrap:anywhere}
.kf-correo__cab span{color:var(--text-3)}
.kf-correo__cab b{font-weight:500;color:var(--text-1)}
/* Un hueco por rellenar: cursiva sobre un fondo suave del color del texto. */
.kf-hueco{padding:0 4px;border-radius:4px;font-style:italic;font-weight:400;background:color-mix(in srgb,currentColor 14%,transparent);opacity:.85}
.kf-nueva__nota2{margin:0}
/* El aviso tal como le llega (emails.py › plantilla_aviso): en papel claro, a propósito también con el tema oscuro,
   con los colores del correo escritos (son los del panel claro). «mini», en la ventana de nueva incorporación. */
.kf-carta{padding:20px;border-radius:12px;background:#f8f7f4;color:#1c1c1a;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif}
.kf-carta__papel{background:#fff;border:1px solid #e6e5e0;border-radius:12px;overflow:hidden}
.kf-carta__cab{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 28px;border-bottom:1px solid #e6e5e0}
.kf-carta__cab .kf-logo{font-size:22px;line-height:26px}
.kf-carta__eti{font-size:13px;line-height:18px;color:#6b6962}
.kf-carta__arriba{padding:28px 28px 0}
.kf-carta__ante{font-size:13px;line-height:18px;font-weight:500;color:#6b6962}
.kf-carta__titular{margin-top:8px;font-size:26px;line-height:32px;font-weight:600;letter-spacing:-.02em;text-wrap:balance}
.kf-carta__dato{margin-top:10px;font-size:16px;line-height:24px;color:#4a4943}
.kf-carta__cuerpo{padding:24px 28px 18px;font-size:15px;line-height:24px}
.kf .kf-carta__cuerpo p{margin:0 0 16px}
.kf .kf-carta__cuerpo .kf-carta__texto{margin-bottom:20px;color:#4a4943}
.kf-carta__rec{margin:0 0 24px}
.kf-carta__rec-cab{display:flex;justify-content:space-between;gap:12px;margin-bottom:12px;font-size:13px;line-height:18px;color:#6b6962}
.kf-carta__rec-cab b{font-weight:600;color:#1c1c1a}
.kf-carta__barras{list-style:none;margin:0;padding:0;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:6px}
.kf-carta__barras i{display:block;height:4px;border-radius:2px;background:#e6e5e0}
.kf-carta__barras span{display:block;margin-top:8px;padding-right:8px;font-size:12px;line-height:16px;color:#6b6962}
.kf-carta__barras .hecho i{background:#1f7a33}
.kf-carta__barras .hecho span{color:#4a4943}
.kf-carta__barras .ahora i{background:#2563eb}
.kf-carta__barras .ahora span{color:#1c1c1a;font-weight:600}
.kf-carta__filas{margin:0 0 20px;border-bottom:1px solid #e6e5e0}
.kf-carta__fila{display:grid;grid-template-columns:38% minmax(0,1fr);gap:16px;padding:9px 0;border-top:1px solid #f0efea;font-size:14px;line-height:20px}
.kf-carta__fila:first-child{border-top-color:#e6e5e0}
.kf-carta__fila>span{color:#6b6962}
.kf-carta__fila>b{font-weight:500}
.kf-carta__botones{display:flex;flex-direction:column;align-items:flex-start;gap:10px}
.kf-carta__botones:empty{display:none}
.kf-carta__boton{display:inline-block;padding:12px 20px;border-radius:8px;background:#1c1c1a;color:#fff;font-size:15px;line-height:20px;font-weight:600}
.kf-carta__boton--2{padding:11px 19px;background:#fff;color:#1c1c1a;box-shadow:inset 0 0 0 1px #cfcdc6;font-weight:500}
.kf-carta__firma{display:flex;gap:12px;padding:20px 28px 24px;border-top:1px solid #e6e5e0;font-size:14px;line-height:20px}
.kf-carta__ini{flex:none;display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:#edece7;color:#4a4943;font-size:14px;font-weight:600}
.kf-carta__firma b{display:block;font-weight:600}
.kf-carta__firma div>span{display:block;font-size:13px;line-height:19px;color:#4a4943}
.kf-carta__firma .kf-carta__cargo{color:#6b6962}
.kf-carta__firma .kf-carta__contacto{margin-top:6px}
.kf-carta__pie{padding:16px 28px 0;font-size:12px;line-height:18px;color:#6b6962}
.kf-carta__pie b{display:block;font-weight:500;color:#4a4943}
.kf-carta--mini{padding:12px}
.kf-carta--mini .kf-carta__cab{padding:10px 16px}
.kf-carta--mini .kf-carta__cab .kf-logo{font-size:16px;line-height:20px}
.kf-carta--mini .kf-carta__eti{font-size:11px;line-height:15px}
.kf-carta--mini .kf-carta__arriba{padding:16px 16px 0}
.kf-carta--mini .kf-carta__ante{font-size:11px;line-height:15px}
.kf-carta--mini .kf-carta__titular{margin-top:4px;font-size:18px;line-height:23px}
.kf-carta--mini .kf-carta__dato{margin-top:6px;font-size:13px;line-height:19px}
.kf-carta--mini .kf-carta__cuerpo{padding:14px 16px 12px;font-size:13px;line-height:19px}
.kf .kf-carta--mini .kf-carta__cuerpo p{margin-bottom:10px}
.kf-carta--mini .kf-carta__rec{margin-bottom:14px}
.kf-carta--mini .kf-carta__rec-cab{margin-bottom:8px;font-size:11px;line-height:15px}
.kf-carta--mini .kf-carta__barras{gap:4px}
.kf-carta--mini .kf-carta__barras i{height:3px}
.kf-carta--mini .kf-carta__barras span{margin-top:5px;padding-right:4px;font-size:10px;line-height:13px}
.kf-carta--mini .kf-carta__boton{padding:7px 14px;font-size:13px;line-height:18px}
.kf-carta--mini .kf-carta__firma{gap:10px;padding:12px 16px 14px;font-size:12px;line-height:17px}
.kf-carta--mini .kf-carta__ini{width:30px;height:30px;font-size:11px}
.kf-carta--mini .kf-carta__firma div>span{font-size:11px;line-height:16px}
.kf-carta--mini .kf-carta__firma .kf-carta__contacto{margin-top:3px}
.kf-carta--mini .kf-carta__pie{padding:10px 16px 0;font-size:10.5px;line-height:15px}
@media (max-width:860px){.kf-nueva{grid-template-columns:1fr}.kf-nueva__vista{position:static}}
@media (max-width:640px){.kf-nueva__rejilla{grid-template-columns:1fr}.kf-nueva__check{margin-top:0}}
/* Persona, en apartados (sin cajas) como los ajustes de la consola de Claude: título con su «…» y sus filas. */
.kf-apartados{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 48px;margin-top:24px;align-items:start}
.kf-apartados__col{display:flex;flex-direction:column;gap:28px;min-width:0}
.kf-apartado__cab{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:32px;padding-bottom:8px;border-bottom:1px solid var(--line)}
.kf-apartado__t{margin:0;font-size:15px;line-height:20px;font-weight:500}
.kf-apartado .kf-filas{padding:0}
@media (max-width:900px){.kf-apartados{grid-template-columns:1fr}}
.kf-inc-ventana:focus{outline:0}
.kf-dialog .kf-inc-hist--ventana{padding:0}
.kf-inc-hecho{display:inline-flex;align-items:center;gap:6px;color:var(--text-2)}
.kf-inc-hecho .i{width:14px;height:14px;color:var(--success-text);stroke-width:2.5}
.kf-inc-ventana .kf-inc-paso__t{padding:16px 0 0}
.kf-inc-recorrido .kf-caja__cab{gap:12px}
.kf-inc-recorrido__n{margin:0 0 0 auto}
.kf-inc-fases{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
.kf-inc-fase{min-width:0;padding:0 16px 14px 20px;border-left:1px solid var(--line)}
.kf-inc-fase:first-child{border-left:0}
.kf-inc-fase ol{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:0}
.kf-inc-p{display:flex;gap:10px;align-items:flex-start;font-size:14px;line-height:20px;color:var(--text-3)}
/* Los pasos se pulsan: el elegido, con fondo; su ficha sale debajo (Javi, 05-11-2026). */
button.kf-inc-p{width:calc(100% + 16px);margin:0 -8px;padding:4px 8px;border:0;border-radius:var(--radius);background:none;font:inherit;text-align:left;cursor:pointer}
button.kf-inc-p:hover{background:var(--fill-ghost-hover)}
button.kf-inc-p.kf-inc-p--sel{background:var(--fill-selected)}
.kf-inc-p__t{min-width:0;flex:1}
.kf-inc-p__f{flex:none;font-size:12px;line-height:20px;color:var(--text-3);font-weight:400}
.kf-inc-p__i{width:18px;height:18px;margin-top:1px;border-radius:50%;flex:none;display:grid;place-items:center;box-shadow:inset 0 0 0 1.5px var(--line-strong)}
.kf-inc-p__i .i{width:12px;height:12px;stroke-width:3}
.kf-inc-p--hecho{color:var(--text-1)}
.kf-inc-p--hecho .kf-inc-p__i{background:var(--success-fill);box-shadow:none;color:#fff}
.kf-inc-p--ahora{color:var(--text-1);font-weight:500}
.kf-inc-p--ahora .kf-inc-p__i{box-shadow:inset 0 0 0 5px var(--accent-fill)}
.kf-inc-p .sub{display:block;font-weight:400;font-size:12px;line-height:16px;color:var(--text-3)}
.kf-inc-cols{display:grid;grid-template-columns:minmax(0,1.9fr) minmax(320px,1fr);gap:16px;align-items:stretch;margin-top:24px;min-height:0}
.kf-inc-cols>.kf-inc-datos{min-height:0;overflow-y:auto;margin-top:0}
.kf-inc-avisos{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}
.kf-inc-avisos>.kf-caja__cab{flex:none}
.kf-inc-avisos>.kf-inc-paso{flex:1 1 auto;min-height:0;overflow-y:auto}
.kf-inc-paso__t{margin:0;padding:14px 20px 0}
.kf-inc-hist__s{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.kf .kf-inc-ver{flex:none;font-size:13px;text-decoration:none}
.kf .kf-inc-ver:hover{text-decoration:underline;text-underline-offset:3px}
.kf-inc-docs{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.kf-inc-docs li{display:flex;gap:8px;align-items:flex-start}
.kf-inc-docs li>.t3{margin-left:auto;flex:none;font-size:13px}
.kf-inc-docs .kf-inc-p__i{margin-top:1px}
.kf-inc-docs--ok .kf-inc-p__i{background:var(--success-fill);box-shadow:none;color:#fff}
.kf-inc-hist--ventana{padding:0}
.kf-dialog .kf-ventana__sub{margin:4px 0 16px}
.kf-inc-col{display:flex;flex-direction:column;gap:16px;min-width:0;min-height:0}
.kf-inc-col .kf-caja{margin-top:0}
.kf-inc-sig{display:flex;align-items:center;justify-content:space-between;gap:8px 16px;flex-wrap:wrap;padding:12px 20px;border-top:1px solid var(--line);font-size:14px;line-height:20px}
.kf-inc-sig__c{min-width:0;flex:1 1 240px}
.kf-inc-sig__t{font-weight:500}
.kf-inc-parte__cab{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 12px 0 0}
.kf-inc-parte__cab .kf-detalle__t{padding-top:8px}
.kf-inc-datos .kf-inc-parte:first-child{border-top:0}
.kf-inc-texto{margin:0;padding:16px 20px;font-size:14px;line-height:21px;color:var(--text-2)}
.kf-inc-hist{list-style:none;margin:0;padding:4px 20px 8px}
.kf-inc-hist li{padding:10px 0;border-top:1px solid var(--row-line)}
.kf-inc-hist li:first-child{border-top:0}
.kf-inc-hist__t{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:14px;line-height:20px}
.kf-form__sep{margin-top:8px;padding-top:16px;border-top:1px solid var(--line);font-size:14px;font-weight:500;color:var(--text-1)}
.kf-form__sep-ayuda{margin:-8px 0 0}
@media (max-width:1100px){.kf-inc-cols{grid-template-columns:1fr}.kf-inc-cols>.kf-inc-datos{overflow:visible}.kf-inc-avisos>.kf-inc-hist{overflow:visible}}
@media (max-width:720px){.kf-inc-fases{grid-template-columns:1fr}.kf-inc-fase{border-left:0;border-top:1px solid var(--line);padding-top:4px}.kf-inc-fase:first-child{border-top:0}}
/* Soporte › Análisis: cajas de dos en dos, de la misma altura, con barras (el nombre y el número arriba, la barra debajo). */
.kf-analisis{align-items:stretch}
.kf-analisis>.kf-caja{min-width:0}
.kf-reparto{list-style:none;margin:0;padding:8px 20px 16px;display:flex;flex-direction:column;gap:14px}
.kf-reparto li{display:flex;flex-direction:column;gap:6px;min-width:0}
.kf-reparto__t{display:flex;justify-content:space-between;align-items:baseline;gap:12px;font-size:14px;line-height:20px}
.kf-reparto__n{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kf-reparto__barra{height:6px;border-radius:3px;background:var(--fill-chip)}
.kf-reparto__barra>span{display:block;height:100%;border-radius:3px;background:var(--text-3)}
.kf-reparto__vacio{margin:0;padding:16px 20px}
.kf-reparto__mas{margin:-4px 0 0;padding:0 20px 16px;font-size:13px}
/* Finanzas › Facturas: las cifras del mes en una línea encima de la tabla y la ventana de una factura (sus datos en
   filas, el recorrido debajo y los botones que tocan). */
/* Cada cifra en grande con su nombre debajo, separadas; una nota, en gris al lado. Y aire antes de la tabla. */
.kf-fz-linea{display:flex;flex-wrap:wrap;align-items:flex-end;gap:14px 36px;margin:8px 0 22px}
.kf-fz-cifra{display:flex;flex-direction:column;gap:2px;min-width:0}
.kf-fz-cifra>b{font-size:18px;line-height:24px;font-weight:600;color:var(--text-1);white-space:nowrap}
.kf-fz-cifra>span{font-size:12px;line-height:16px;color:var(--text-3)}
.kf-fz-nota{max-width:420px;padding-bottom:1px;font-size:12px;line-height:16px;color:var(--text-3)}
.kf-dialog .kf-fz-linea{margin-top:0}
.kf-fz-linea--texto{display:block;max-width:900px;font-size:13px;line-height:20px;color:var(--text-2)}
.kf-fz-botones{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap}
.kf-fz-inter{display:inline-flex;align-items:center;gap:10px}
.kf-fz-ajustes{max-width:820px}
/* Quién emite: el formulario en dos columnas y, al lado, cómo sale en la factura (en papel claro, como sale). */
.kf-emisor{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:40px;align-items:start}
.kf-emisor__rejilla{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 16px}
.kf-emisor__ancho{grid-column:span 2}
.kf-emisor__todo{grid-column:1/-1}
.kf-emisor__form{display:flex;flex-direction:column;gap:16px}
.kf-emisor__vista{position:sticky;top:16px;display:flex;flex-direction:column;gap:10px;min-width:0}
.kf-emisor__papel{padding:18px 20px;border-radius:10px;background:#ffffff;color:#5f6b72;box-shadow:inset 0 0 0 1px rgba(0,0,0,.08);font-size:13px;line-height:1.6;overflow-wrap:break-word}
.kf-emisor__papel b{color:#1c1c1a;font-weight:600}
@media (max-width:860px){.kf-emisor{grid-template-columns:1fr}.kf-emisor__vista{position:static}}
@media (max-width:560px){.kf-emisor__rejilla{grid-template-columns:1fr}.kf-emisor__ancho,.kf-emisor__todo{grid-column:auto}}
.kf-table .kf-fz-total td{border-top:1px solid var(--line-strong);font-weight:500}
.kf-fz-aviso{margin:10px 0 0;font-size:13px}
.kf-dialog__title .kf-chip{margin-left:6px;vertical-align:3px}
.kf-fz-factura .kf-filas{padding:0}
.kf-fz-factura .kf-filas>div{grid-template-columns:112px minmax(0,1fr)}
.kf-fz-factura__t{margin:20px 0 8px;font-size:13px;line-height:18px;font-weight:600;color:var(--text-1)}
.kf-fz-factura:focus{outline:none}
.kf-fz-factura__pie{flex-wrap:wrap}
/* Finanzas › Resumen, en una pantalla: cajas de tres en tres, de la misma altura, con filas de una línea (el nombre
   arriba y su detalle debajo, cortados si no caben) y el importe a la derecha; los ingresos de seis meses en columnas
   (verde lo cobrado, ámbar lo que falta por cobrar) que llenan su caja. */
.kf-fz-cajas{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:16px;align-items:stretch}
.kf-fz-cajas>.kf-caja{margin-top:0;min-width:0;display:flex;flex-direction:column}
@media (max-width:1100px){.kf-fz-cajas{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:720px){.kf-fz-cajas{grid-template-columns:1fr}}
.kf-fz-cajas .kf-caja__t .kf-count{margin-left:6px;vertical-align:1px;font-weight:500}
.kf-fz-filas{list-style:none;margin:0;padding:4px 20px 6px}
.kf-fz-filas li{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:8px 0;border-top:1px solid var(--row-line);font-size:14px;line-height:20px;min-width:0}
.kf-fz-filas li:first-child{border-top:0}
.kf-fz-fila__n{flex:1;min-width:0}
.kf-fz-fila__t{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kf-fz-fila__n .sub{display:block;margin-top:1px;font-size:12px;line-height:16px;color:var(--text-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kf-fz-fila__n .sub.kf-fz-urge{color:var(--warning-text)}
.kf-fz-fila__d{flex:none;font-weight:500;text-align:right}
.kf-fz-fila__d .t2,.kf-fz-fila__d .t3{font-weight:400}
.kf-fz-at{flex:1;display:flex;align-items:center;gap:10px;min-width:0;color:inherit;text-decoration:none}
.kf-fz-at>.i:first-child{color:var(--warning-text)}
.kf-fz-at>.i:last-child{color:var(--text-3)}
.kf-fz-at:hover .kf-fz-fila__t{text-decoration:underline;text-underline-offset:3px}
.kf-fz-avisos{padding:0}
.kf-caja:has(>.kf-fz-meses){display:flex;flex-direction:column}
.kf-fz-meses{flex:1;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;align-items:stretch;padding:12px 20px 4px}
.kf-fz-mes{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:0}
.kf-fz-mes__v{font-size:10.5px;line-height:14px;color:var(--text-3);white-space:nowrap;font-variant-numeric:tabular-nums}
.kf-fz-mes__col{flex:1;display:flex;flex-direction:column;justify-content:flex-end;width:100%;max-width:36px;min-height:44px;border-radius:5px;background:var(--fill-chip);overflow:hidden}
.kf-fz-mes__c{flex:none;background:var(--success-fill)}
.kf-fz-mes__p{flex:none;background:var(--warning-fill)}
.kf-fz-mes__m{font-size:12px;line-height:16px;color:var(--text-3)}
.kf-fz-mes--ahora .kf-fz-mes__m,.kf-fz-mes--ahora .kf-fz-mes__v{color:var(--text-1);font-weight:500}
.kf-fz-leyenda{display:flex;gap:14px;padding:6px 20px 12px;font-size:12px;line-height:16px;color:var(--text-3)}
.kf-fz-leyenda span{display:inline-flex;align-items:center;gap:6px}
.kf-fz-leyenda i{width:8px;height:8px;border-radius:2px}
.kf-fz-leyenda__u{margin-left:auto}
.kf-fz-c{background:var(--success-fill)}
.kf-fz-p{background:var(--warning-fill)}
.kf-ventana__filtros{margin:12px 0 4px}
.kf-opiniones--ventana{padding:0}
#op-lista:focus,.kf-ventana__lista:focus{outline:0}
.kf-ventana__lista{margin-top:4px}
.kf .kf-ventana__volver{margin:12px 0 4px;padding:0;border:0;background:none;font:inherit;font-size:13px;cursor:pointer;text-decoration:none}
.kf .kf-ventana__volver:hover{text-decoration:underline;text-underline-offset:3px}
/* Píldoras: el anillo azul solo cuando se llega con el teclado; tras elegir con el ratón, como siempre (Javi). */
.kf .kf-filter:focus-within:not(:has(:focus-visible)),.kf .kf-filter.kf-filter--raton:focus-within{box-shadow:inset 0 0 0 1px var(--fill-field-ring)}
.kf-ventana__volver+.kf-ventana__sub{margin:0 0 8px}
.kf-opiniones{list-style:none;margin:0;padding:4px 20px 8px}
.kf-opiniones li{display:flex;flex-direction:column;gap:4px;padding:12px 0;border-top:1px solid var(--row-line)}
.kf-opiniones li:first-child{border-top:0}
.kf-opiniones__t{display:flex;justify-content:space-between;gap:12px;font-size:13px}
.kf-opiniones p{margin:0;font-size:14px;line-height:21px}
.kf-opiniones__de{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
/* Marco medido con Claude Console (Javi, 05-11-2026: «son tonterías, pero dejarlo ya cuadrado»). Logo algo más grande;
   en la barra lateral, filas de 34 px y el texto 5 px más a la derecha; la cuenta, más grande y con más aire, y su raya
   de lado a lado. Solo en el ordenador: en el móvil el menú tiene sus propias medidas. */
.kf .kf-top .kf-brand__link{font-size:20px;line-height:26px}
@media (min-width:768px){
  .kf .kf-shell.kf-shell--claude .kf-side{gap:2px}
  .kf .kf-shell.kf-shell--claude .kf-side .kf-nav{height:34px;padding:0 9px;gap:14px;font-size:14px}
  .kf .kf-shell.kf-shell--claude .kf-side .kf-nav-group{padding:16px 10px 6px}
  .kf .kf-shell.kf-shell--claude .kf-side .kf-org{margin:auto -8px -8px;width:calc(100% + 16px);padding:16px 17px 18px;gap:12px}
  .kf .kf-shell.kf-shell--claude .kf-side .kf-org .kf-avatar{width:32px;height:32px;border-radius:8px;font-size:13px;box-shadow:inset 0 0 0 1px var(--line-strong)}
  .kf .kf-shell.kf-shell--claude .kf-side .kf-org__name{font-size:15px;line-height:18px}
  .kf .kf-shell.kf-shell--claude .kf-side .kf-org__sub{font-size:13px;line-height:16px}
}
.kf-ventana__cab{display:flex;align-items:baseline;justify-content:space-between;gap:8px 16px;flex-wrap:wrap;margin:0 0 16px}
.kf-ventana__cab .kf-help{margin:0}
.kf-ventana__cab .kf-link{font-size:14px;white-space:nowrap}
.kf-dialog .kf-ventana__t{margin:28px 0 4px;font-size:14px;line-height:20px;font-weight:500}
#au-pasada:focus{outline:none}
/* Los párrafos de explicación encima de una tabla o un formulario, con aire (.kf p los dejaba sin margen). */
.kf .kf-fz-linea--texto{margin:0 0 18px}
.kf-emisor__vista>.kf-nueva__sec{margin-top:0;padding-top:0;border-top:0}

/* Cobro automático: las dos cajas, con las filas un poco más anchas para el nombre. */
.kf-fz-cobro .kf-filas>div{grid-template-columns:150px minmax(0,1fr)}

/* Impuestos: el 303 a la izquierda y los próximos plazos a la derecha. */
.kf-fz-imp{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:24px;align-items:start}
.kf-fz-imp>.kf-caja{margin-top:0}
.kf-fz-imp .kf-fz-fila__d .sub{display:block;font-size:12px;line-height:16px;font-weight:400;color:var(--text-3)}
.kf-fz-imp .kf-fz-fila__d .sub.kf-fz-urge,.kf-table .sub.kf-fz-urge{color:var(--warning-text)}
@media (max-width:1000px){.kf-fz-imp{grid-template-columns:1fr}}

/* La ventana de una factura, que se lee como una factura: a quién, quién emite y el total; sus líneas; cómo va. */
.kf-fac{border:1px solid var(--line);border-radius:var(--radius-panel);background:var(--surface-2);overflow:hidden}
.kf-fac__cab{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:20px;padding:18px 20px;border-bottom:1px solid var(--line)}
.kf-fac__quien,.kf-fac__importe{display:flex;flex-direction:column;gap:2px;min-width:0;font-size:13px;line-height:19px;color:var(--text-2);overflow-wrap:break-word}
.kf-fac__quien b{font-size:14px;line-height:20px;font-weight:600;color:var(--text-1)}
.kf-fac__eti{margin-bottom:4px;font-size:11px;line-height:16px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-3)}
.kf-fac__importe{align-items:flex-end;text-align:right}
.kf-fac__importe b{font-size:24px;line-height:30px;font-weight:600;color:var(--text-1);white-space:nowrap}
.kf-fac__lineas{width:100%;border-collapse:collapse;font-size:14px;line-height:20px}
.kf-fac__lineas th{padding:10px 20px;font-size:12px;font-weight:500;color:var(--text-3);text-align:left;border-bottom:1px solid var(--row-line)}
.kf-fac__lineas th.r,.kf-fac__lineas td.r{text-align:right}
.kf-fac__lineas td{padding:10px 20px;border-bottom:1px solid var(--row-line);vertical-align:top}
.kf-fac__lineas td .sub{display:block;font-size:12px;line-height:16px;color:var(--text-3)}
.kf-fac__lineas tfoot td{padding:6px 20px;border-bottom:0;color:var(--text-2)}
.kf-fac__lineas tfoot tr:first-child td{padding-top:12px}
.kf-fac__lineas tfoot .kf-fac__total td{padding:10px 20px 14px;font-size:15px;font-weight:600;color:var(--text-1)}
.kf-fac__cuerpo{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,360px);gap:28px;align-items:start}
.kf-fac__tl{min-width:0}
.kf-fac__tl .kf-fz-factura__t{margin:2px 0 14px}
.kf-recorrido--compacto .kf-hito{padding-bottom:12px}
.kf-recorrido--compacto .kf-hito__texto{font-size:12px;line-height:17px}
.kf-hito--en_curso .kf-hito__punto{background:var(--accent-fill)}
@media (max-width:960px){.kf-fac__cuerpo{grid-template-columns:1fr}}
@media (max-width:720px){.kf-fac__cab{grid-template-columns:1fr}.kf-fac__importe{align-items:flex-start;text-align:left}}
.kf-table .kf-fz-rojo{color:var(--danger-text);font-weight:500}

/* Productos y planes: el producto, como título de su grupo; la ficha de un plan con quién lo tiene. */
.kf-table tbody tr.kf-pl-grupo td{padding-top:16px;padding-bottom:8px}
.kf-pl-grupo__t{font-size:13px;line-height:18px;font-weight:600;color:var(--text-1)}
.kf-pl-ficha{margin-top:4px}
.kf-pl-ficha .kf-table-wrap{padding:0 20px}
.kf-pl-ficha .kf-tfoot{padding:8px 20px 12px}
.kf .kf-pl-nadie{margin:0;padding:16px 20px}

/* API y servicios: la descripción en una línea (entera, en su ventana); la ficha de servicios de una empresa. */
.kf-table td .sub.kf-sv-desc{max-width:520px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kf-pest .kf-count{margin-left:6px}
.kf-sv-servs{list-style:none;margin:0;padding:0 20px}
.kf-sv-servs li{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;border-bottom:1px solid var(--row-line)}
.kf-sv-servs li:last-child{border-bottom:0}
.kf-sv-nuevo{display:flex;gap:8px;padding:12px 20px 16px;border-top:1px solid var(--line)}
.kf-sv-nuevo select{flex:1;min-width:0}
.kf-sv-ancha{grid-column:1/-1;min-width:0}
@media (max-width:720px){.kf-table td .sub.kf-sv-desc{max-width:none;white-space:normal}}

/* Consumo de IA: el mes arriba (gráfico y reparto por producto) y quién gasta debajo. */
.kf-co-arriba{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,340px);gap:16px;align-items:stretch;margin-bottom:24px}
.kf-co-arriba .kf-caja{margin-top:0}
.kf-co-total{font-size:14px;line-height:20px;font-weight:600;color:var(--text-1);white-space:nowrap}
.kf-co-dias{display:grid;grid-template-columns:repeat(var(--n),minmax(0,1fr));gap:3px;align-items:end;height:120px;padding:14px 20px 0}
.kf-co-dia{display:flex;flex-direction:column;justify-content:flex-end;height:100%;min-width:0;border-radius:3px 3px 0 0}
.kf-co-dia:hover>span{filter:brightness(1.3)}
.kf-co-dia>span{flex:none;display:block}
.kf-co-dia__s{background:var(--line-strong);border-radius:3px 3px 0 0}
.kf-co-dia__a{background:var(--accent-fill)}
.kf-co-dia__s[style^="height:0.00"]+.kf-co-dia__a{border-radius:3px 3px 0 0}
.kf-co-eje{display:grid;grid-template-columns:repeat(var(--n),minmax(0,1fr));gap:3px;padding:6px 20px 0;font-size:11px;line-height:14px;color:var(--text-3)}
.kf-co-eje span{white-space:nowrap;overflow:visible}
.kf-co-ley{display:flex;flex-wrap:wrap;gap:6px 16px;padding:10px 20px 14px;font-size:12px;line-height:16px;color:var(--text-3)}
.kf-co-ley i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:6px;vertical-align:-1px}
.kf-co-ley__a{background:var(--accent-fill)}
.kf-co-ley__s{background:var(--line-strong)}
.kf-co-rep{list-style:none;margin:0;padding:2px 20px 10px}
.kf-co-rep li{padding:9px 0 10px;border-bottom:1px solid var(--row-line)}
.kf-co-rep li:last-child{border-bottom:0}
.kf-co-rep__f{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;font-size:14px;line-height:20px;color:var(--text-1)}
.kf-co-rep__f .sub{display:block;font-size:12px;line-height:16px;color:var(--text-3)}
.kf-co-rep__f b{font-weight:600;white-space:nowrap}
.kf-co-rep__b{display:block;height:4px;margin-top:6px;border-radius:2px;background:var(--fill-chip);overflow:hidden}
.kf-co-rep__b>span{display:block;height:100%;border-radius:2px;background:var(--accent-fill)}
.kf-co-rep--sin .kf-co-rep__b>span{background:var(--line-strong)}
.kf-co-quien .kf-section__title{margin:0 0 10px;font-size:15px;line-height:20px}
.kf-co-arriba{margin-bottom:20px}
.kf-co-rep__f .kf-caja__info{vertical-align:-2px}
@media (max-width:960px){.kf-co-arriba{grid-template-columns:1fr}}
.kf-co-arriba--grande{margin-top:4px}
/* El gráfico grande, lo que deje la pantalla (entre 140 y 260 px), para que la pestaña quepa sin bajar. */
.kf-co-arriba--grande .kf-co-dias{height:clamp(140px,calc(100vh - 490px),260px)}
.kf-co-ley__tot{margin-left:auto;color:var(--text-2)}
.kf-co-suyo .kf-co-dias{height:120px}
.kf-table tbody tr.kf-co-yo td{color:var(--text-1);font-weight:500}
.kf-co-calc{vertical-align:-3px;cursor:help}
.kf-ad-graf{margin-top:20px}
.kf-ad-graf .kf-co-dias{height:clamp(110px,calc(100vh - 640px),200px)}
.kf-ad-graf .kf-co-graf{padding-bottom:14px}

/* Operaciones › Estado: la franja que lo resume, los servicios por producto con sus 30 barras (una por día). */
.kf-op-franja{display:flex;align-items:center;flex-wrap:wrap;gap:8px 10px;margin:4px 0 14px;padding:12px 18px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2)}
.kf-op-franja b{font-weight:600;color:var(--text-1)}
.kf-op-franja .t3{margin-left:auto;font-size:12px}
.kf-op-franja--warning{border-color:var(--warning-border)}
.kf-op-franja--danger{border-color:var(--danger-border)}
.kf-op-punto{flex:none;width:10px;height:10px;border-radius:50%;background:var(--success-fill)}
.kf-op-franja--warning .kf-op-punto{background:var(--warning-fill)}
.kf-op-franja--danger .kf-op-punto{background:var(--danger-fill)}
.kf-op-grupo{margin-bottom:10px}
.kf-op-grupo__t{margin:0 0 4px;font-size:13px;line-height:18px;font-weight:600;color:var(--text-2)}
.kf-op-lista{list-style:none;margin:0;padding:0;border-top:1px solid var(--row-line)}
.kf-op-serv{display:grid;grid-template-columns:minmax(160px,1fr) minmax(0,2fr) 76px 170px;gap:16px;align-items:center;padding:6px 0;border-bottom:1px solid var(--row-line);cursor:pointer}
.kf-op-serv:hover .kf-fila__a{text-decoration:underline;text-underline-offset:2px}
.kf-op-serv__n{display:flex;flex-direction:column;min-width:0}
.kf-op-serv__n .sub{font-size:12px;line-height:16px;color:var(--text-3)}
.kf-op-serv__p{text-align:right;font-size:13px;color:var(--text-2)}
.kf-op-serv__e{text-align:right}
.kf-op-barras{display:grid;grid-template-columns:repeat(30,minmax(0,1fr));gap:2px;height:20px}
.kf-op-barras--grandes{height:40px;margin-bottom:10px}
.kf-op-b{display:block;border-radius:2px;background:var(--fill-chip)}
.kf-op-b--bien{background:var(--success-fill)}
.kf-op-b--aviso{background:var(--warning-fill)}
.kf-op-b--mal{background:var(--danger-fill)}
.kf-op-b:hover{filter:brightness(1.3)}
.kf-op-ley{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:12px;line-height:16px;color:var(--text-3)}
.kf-op-ley i{display:inline-block;width:10px;height:10px;margin-right:6px;vertical-align:-1px}
.kf .kf-op-pie{margin:6px 0 0;font-size:12px}
.kf-op-texto{max-height:180px;overflow:auto;white-space:pre-wrap;font-size:14px;line-height:20px;color:var(--text-2)}
@media (max-width:720px){.kf-op-serv{grid-template-columns:minmax(0,1fr) auto}.kf-op-barras{grid-column:1/-1;grid-row:2}.kf-op-serv__p{display:none}}
/* Errores de Kairness: errores en rojo y anomalías en ámbar. */
.kf-er-err{background:var(--danger-fill)}
.kf-er-ano{background:var(--warning-fill)}
.kf-co-dia>span:first-child{border-radius:3px 3px 0 0}
.kf-er-graf .kf-co-dias{height:clamp(100px,calc(100vh - 700px),150px)}
.kf .kf-er-t{margin:22px 0 10px;font-size:15px;line-height:20px}
.kf-er-pre{max-height:240px;overflow:auto;font-size:12px}
.kf-op-b[data-opdia]{cursor:pointer}
.kf-op-barras--horas{grid-template-columns:repeat(24,minmax(0,1fr));height:36px}
.kf-op-eje{display:grid;grid-template-columns:repeat(24,minmax(0,1fr));gap:2px;margin:4px 0 6px;font-size:11px;line-height:14px;color:var(--text-3)}
.kf-op-eje span{white-space:nowrap;overflow:visible}
.kf-op-tramos{list-style:none;margin:0;padding:0;max-height:220px;overflow:auto}
.kf-op-tramos li{display:grid;grid-template-columns:110px minmax(0,1fr);gap:12px;padding:8px 0;border-bottom:1px solid var(--row-line);font-size:14px;line-height:20px}
.kf-op-tramos li:last-child{border-bottom:0}
.kf-op-tramos b{font-weight:500;color:var(--text-1)}
.kf-op-tramos .sub{display:block;font-size:12px;line-height:16px;color:var(--text-3)}
.kf-op-tramo__h{color:var(--text-2)}
/* Operaciones: el día con incidente lleva un punto encima de su barra; la historia de un incidente, con su altura. */
.kf-op-b{position:relative}
.kf-op-b--inc::after{content:"";position:absolute;left:50%;top:-6px;width:4px;height:4px;margin-left:-2px;border-radius:50%;background:var(--text-1)}
.kf-op-barras{margin-top:6px}
.kf-op-hist{max-height:320px;overflow:auto;padding-right:4px}
.kf-gv-texto{white-space:pre-wrap}
/* Equipo interno (06-11-2026): la ventana de cada persona, al mismo borde; el «…» del pie, a la izquierda; la tabla de
   roles, más apretada para que quepa. */
.kf-eq-ventana > .kf-filas{padding:0}
.kf-eq-ventana > .kf-filas>div{grid-template-columns:184px minmax(0,1fr)}
.kf-fz-ambar{color:var(--warning-text)}
/* Documentación del equipo: una barrita por documento (verde hecho, ámbar pendiente o por renovar, rojo caducado, gris no aplica). */
.kf-eq-docs{display:inline-flex;gap:2px;width:144px;max-width:100%;vertical-align:middle}
.kf-eq-docs>span{flex:1;height:6px;border-radius:2px;background:var(--fill-chip)}
.kf-eq-docs>.kf-eq-docs--hecho{background:var(--success-fill)}
.kf-eq-docs>.kf-eq-docs--pendiente,.kf-eq-docs>.kf-eq-docs--pronto{background:var(--warning-fill)}
.kf-eq-docs>.kf-eq-docs--caducado{background:var(--danger-fill)}
.kf-eq-docs>.kf-eq-docs--no_aplica{background:var(--line-strong);opacity:.5}
td .kf-eq-docs+.sub{margin-top:4px}
/* Registro de jornada: el botón de fichar (azul mientras se está dentro), lo anulado tachado. */
.kf-fichar{background:none;border:0;cursor:pointer;font:inherit;color:inherit}
.kf-fichar--dentro{color:var(--accent-text)}
.kf-fichar--dentro .i{color:var(--accent-text)}
.kf-jr-anulado{text-decoration:line-through;color:var(--text-3)}
.kf-jr-ahora{color:var(--accent-text);font-weight:500}
.kf-jr-tot{align-self:center}
.kf-eq-rolbar{margin-bottom:12px;justify-content:space-between;align-items:center;gap:12px}
.kf-fz-botones .t2{align-self:center;margin-right:4px;white-space:nowrap}
.kf-eq-permisos .kf-table td{padding-top:6px;padding-bottom:6px;vertical-align:middle}
.kf-eq-permisos .kf-eq-nivel{min-width:150px;height:32px;padding-top:0;padding-bottom:0}
.kf-eq-resumen{margin:8px 0 0}
.kf-eq-lista{margin:0;padding-left:18px;display:grid;gap:4px;font-size:14px;line-height:20px;color:var(--text-1)}

/* Ventanas con apartados (Javi, 06-11-2026: «esto se ve mal»): filas, títulos de apartado e historia al mismo borde. */
.kf-dialog__body:has(> .kf-fz-factura__t) > .kf-filas{padding:0}
.kf-dialog__body > .kf-fz-factura__t{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:22px 0 8px}
.kf-dialog__body > .kf-fz-factura__t:first-child{margin-top:0}
.kf-table .sub.kf-fz-ambar{color:var(--warning-text)}
.kf-er-cab{display:flex;align-items:center;gap:16px;flex-wrap:wrap;justify-content:flex-end}
.kf-cw-msg{white-space:pre-wrap;overflow-wrap:anywhere}.kf-cw-sel{user-select:all;overflow-wrap:anywhere}
[data-panel="consola"] #kf-main[data-ruta^="contactos"] .kf-pests{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}[data-panel="consola"] #kf-main[data-ruta^="contactos"] .kf-pest{white-space:nowrap}
/* Alta como la entrada (09-11-2026): misma tarjeta; con los planes, más ancha */
.kf-login--alta .kf-auth__card.kf-alta{max-width:448px}
.kf-login--alta .kf-auth__card.kf-alta:has(.kf-planes--alta){max-width:760px}
.kf-login--alta .kf-auth__links{justify-content:space-between}
/* Las opciones del alta (producto, cómo trabajas): el borde de color al pasar el ratón, como la elegida (Javi, 09-11-2026) */
.kf-opcion:hover,.kf-opcion:focus-visible{border-color:var(--accent-fill);box-shadow:inset 0 0 0 1px var(--accent-fill)}
.kf-login__legal .kf-link{font-size:inherit;line-height:inherit}
/* Menos azul (Javi, 09-11-2026): solo el enlace de acción de cada pantalla en azul y subrayado; el aviso
   legal en gris con sus enlaces subrayados en el mismo gris, como Anthropic. «Atrás», flechita arriba a la izquierda. */
.kf-login__card .kf-auth__links .kf-link{color:var(--accent-text);text-decoration:underline;text-underline-offset:2px}
.kf-login__legal a,.kf-login__legal .kf-link{color:inherit;text-decoration:underline;text-underline-offset:2px}
.kf-login__legal a:hover{color:var(--text-1)}
.kf-login--alta .kf-auth__links{justify-content:center}
.kf-alta__volver{align-self:flex-start;display:inline-flex;align-items:center;gap:6px;margin:-4px 0 2px;padding:0;border:0;background:none;color:var(--text-2);font:inherit;font-size:14px;cursor:pointer;text-underline-offset:4px}
.kf-alta__volver svg{width:16px;height:16px}
.kf-alta__volver:hover,.kf-alta__volver:focus-visible{color:var(--text-1);text-decoration:underline}
/* El precio de Avanzado tachado al lado del de la Red (09-11-2026). */
.kf-precio-antes{color:var(--text-3);font-weight:400;margin-right:2px}
.kf-plan__price .kf-precio-antes{font-size:18px}
/* La invitación a una Red en Notificaciones › Solicitudes (09-11-2026). */
.kf-invred{display:flex;flex-direction:column;gap:12px;padding:16px 20px;margin-bottom:16px}
.kf-invred__cab{display:flex;align-items:flex-start;gap:12px}
.kf-invred__cab>svg{width:20px;height:20px;flex:none;margin-top:2px;color:var(--text-2)}
.kf-invred__cab>div{flex:1;min-width:0}
.kf-invred__t{font-weight:600}
.kf-invred__sub{font-size:13px;color:var(--text-3)}
.kf-invred__lista{list-style:none;margin:0;padding:0;display:grid;gap:6px;font-size:14px;color:var(--text-2)}
.kf-invred__lista li{display:flex;gap:8px;align-items:flex-start}
.kf-invred__lista svg{width:16px;height:16px;flex:none;margin-top:2px}
.kf-invred__pie{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:12px}
/* El contrato de adhesión dentro de «Invitar un centro a tu Red» (09-11-2026). */
.kf-contrato{max-height:280px;overflow:auto;border:1px solid var(--line);border-radius:8px;padding:12px 16px;background:var(--surface-2);font-size:13px;line-height:1.55;color:var(--text-2)}
.kf-contrato h3{font-size:15px;margin:4px 0 8px;color:var(--text-1)}
.kf-contrato h4{font-size:13px;margin:12px 0 6px;color:var(--text-1)}
.kf-contrato p{margin:0 0 8px}
.kf-contrato hr{border:0;border-top:1px solid var(--line);margin:12px 0}
.kf-contrato__nota{padding-left:10px;border-left:2px solid var(--line);border-radius:0}
/* Aceptar la invitación a una Red (09-11-2026). */
.kf-invred__botones{display:flex;gap:8px;flex-wrap:wrap}
.kf-centros-red{border:0;margin:0;padding:0;display:grid;gap:6px}
.kf-centros-red legend{margin-bottom:6px;padding:0}
/* Entrar y alta: un paso a la vez, todo al mismo ancho, un solo botón que manda y los enlaces en gris (09-11-2026). */
.kf-login__card .kf-link,.kf-login__card .kf-auth__links .kf-link{color:var(--text-2);text-decoration:underline;text-underline-offset:2px}
.kf-login__card .kf-link:hover,.kf-login__card .kf-auth__links .kf-link:hover{color:var(--text-1)}
.kf-login__quien .kf-link{font-size:13px}
.kf-login__card .kf-auth__links--uno,.kf-login--alta .kf-login__card .kf-auth__links--uno{justify-content:center}
.kf-alta .kf-paso{gap:14px;margin-top:4px;padding-top:20px;border-top:1px solid var(--line)}
.kf .kf-alta .kf-paso .kf-section__desc{margin-top:-8px}
.kf-paso>.kf-error:empty{display:none}
.kf-login__card .kf-qr{align-self:center}
.kf-login__card .kf-qr+.kf-help{text-align:center}
/* Aviso en la pantalla de entrar que no es un error (cuenta cerrada): nota gris, no texto rojo. */
/* «Continuar con Google» y la «o» que lo separa del correo, como en Anthropic (Javi, 10-11-2026). */
.kf-login__google{gap:10px}
.kf-login__google svg{flex:none}
.kf-login__o{display:flex;align-items:center;gap:12px;color:var(--text-3);font-size:12px;line-height:16px}
.kf-login__o::before,.kf-login__o::after{content:"";flex:1;height:1px;background:var(--line)}
.kf-login__card>.kf-nota>.kf-link{flex:none;white-space:nowrap;font-size:13px;line-height:18px}
.kf-login__card>.kf-nota{margin:0}
.kf-login__card>.kf-nota p{font-size:13px;line-height:18px;color:var(--text-2)}
.kf-login__card>.kf-nota .i{margin-top:1px}

/* Productos con la cara de las cajas de kaisfera.com (Javi, 10-11-2026): su color en una raya arriba y un brillo en la
   esquina; al pasar por encima, un halo de su color. Sin la banda con el icono. */
.kf .kf-prod{position:relative;border:0;border-radius:16px;background:radial-gradient(120% 100% at 0% 0%,color-mix(in srgb,var(--prod) 18%,transparent),transparent 58%),var(--surface-2);box-shadow:0 0 0 1px var(--line);transition:box-shadow .2s}
.kf .kf-prod::before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--prod)}
.kf .kf-prod:hover{box-shadow:0 0 0 1px color-mix(in srgb,var(--prod) 50%,transparent),0 18px 50px -24px color-mix(in srgb,var(--prod) 55%,transparent)}
.kf .kf-prod .kf-prod__cuerpo{padding:20px;gap:8px}
.kf-prod__cat{font-family:var(--font-mono);font-size:11px;line-height:16px;letter-spacing:.14em;text-transform:uppercase;color:var(--text-3)}
.kf .kf-prod .kf-prod__nombre{font-size:20px;line-height:26px;font-weight:800;letter-spacing:-.02em}
.kf .kf-prod .kf-prod__nombre .kf-chip{font-weight:500}
.kf-prod__t{font-size:13px;line-height:20px;color:var(--text-2)}
@media (max-width:560px){.kf .kf-prod .kf-prod__cuerpo{padding:14px}.kf .kf-prod .kf-prod__nombre{font-size:17px;line-height:22px}}
.kf .kf-prod .kf-prod__tags{margin-top:auto;padding-top:4px}
/* Página de un producto: el estado y su «…» juntos en la cabecera de «Tu plan»; el hueco de «Añadir producto» como botón */
.kf-caja__acc{display:inline-flex;align-items:center;gap:8px}
.kf button.kf-prod-nuevo{font:inherit;width:100%;cursor:pointer;background:transparent}
/* Planes (Javi, 10-11-2026): tu plan con el color de su producto, como las cajas de productos; «Ver todo», centrado */
.kf .kf-plan.kf-plan--mio{position:relative;overflow:hidden;border-color:transparent;background:radial-gradient(120% 100% at 0% 0%,color-mix(in srgb,var(--prod) 18%,transparent),transparent 58%),var(--surface-2);box-shadow:0 0 0 1px color-mix(in srgb,var(--prod) 55%,transparent)}
.kf .kf-plan.kf-plan--mio::before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--prod)}
.kf .kf-planes__todo{display:flex;justify-content:center;margin-top:16px}
/* Planes como en la web: tantas columnas como planes (hasta 4), y las pestañas por tamaño junto a mensual/anual */
.kf .kf-planes:not(.kf-planes--alta){grid-template-columns:repeat(var(--cols,3),minmax(0,1fr))}
@media (max-width:900px){.kf .kf-planes:not(.kf-planes--alta){grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.kf .kf-planes:not(.kf-planes--alta){grid-template-columns:minmax(0,1fr)}}
.kf-planes__ctrl{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
/* Pestañas de tamaño de los planes: el nombre y, debajo, para quién es, en gris */
.kf .kf-pests--planes .kf-pest{flex-direction:column;align-items:flex-start;gap:2px;padding:8px 16px 10px 0;margin-right:16px}
.kf .kf-pest__sub{font-size:12px;line-height:16px;font-weight:400;color:var(--text-3)}
@media (max-width:560px){.kf .kf-pests--planes{overflow-x:auto;scrollbar-width:none}.kf .kf-pests--planes .kf-pest{flex:none}}
/* La barra de encima de los planes: pestañas de tamaño a la izquierda y la forma de pago a la derecha, con una raya debajo */
.kf .kf-planes__barra{display:flex;justify-content:space-between;align-items:flex-end;gap:8px 16px;flex-wrap:wrap;border-bottom:1px solid var(--line);margin:4px 0 16px}
.kf .kf-planes__barra .kf-pests{border-bottom:0;margin-bottom:0}
.kf .kf-planes__pago{display:flex;align-items:center;gap:8px;margin-left:auto;padding-bottom:8px;font-size:13px}
.kf .kf-servicios .kf-table td:first-child{white-space:normal;min-width:260px}.kf .kf-servicios .kf-table td .sub{white-space:normal}
.kf .kf-servicios .kf-table td:last-child{padding-right:8px}
/* La ventana de recarga de saldo, como «¿Necesitas más uso?» de Claude */
.kf-recarga__a{display:inline-block;padding:8px 12px;border-radius:var(--radius);background:var(--fill-field);font-size:13px;line-height:18px;color:var(--text-2)}
.kf-recarga__a b{color:var(--text-1);font-weight:600}
.kf-recarga__ops{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:16px 0 12px}
.kf .kf-recarga__op{display:flex;flex-direction:column;align-items:flex-start;gap:8px;min-height:76px;padding:12px;border:1px solid var(--line);border-radius:var(--radius-panel);background:var(--surface-2);color:var(--text-1);font:inherit;text-align:left;cursor:pointer}
.kf .kf-recarga__op:hover{border-color:var(--line-strong)}
.kf .kf-recarga__op[aria-pressed="true"]{border-color:var(--accent-fill);box-shadow:inset 0 0 0 1px var(--accent-fill)}
.kf-recarga__eur{font-size:16px;line-height:22px;font-weight:600}
.kf-recarga__resumen{display:flex;flex-direction:column;gap:8px;margin-top:12px;padding:14px 16px;border:1px solid var(--line);border-radius:var(--radius-panel);background:var(--surface-2)}
.kf-recarga__fila{display:flex;justify-content:space-between;gap:12px;font-size:14px;line-height:20px;color:var(--text-2)}
.kf-recarga__fila .num{color:var(--text-1)}
.kf-recarga__resumen hr{width:100%;border:0;border-top:1px solid var(--line);margin:4px 0}
.kf-recarga__fila--total{color:var(--text-1);font-weight:600}
.kf-recarga__pago{display:flex;align-items:center;gap:8px;margin-top:12px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius);font-size:14px}
.kf-recarga__legal{margin:12px 0 0;font-size:12px;line-height:18px;color:var(--text-3)}
.kf .kf-dialog__body .kf-notice{margin-top:12px}
@media (max-width:560px){.kf-recarga__ops{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* Resumen de Gasto en una pantalla: cuatro cifras y tres cajas iguales (Javi, 10-11-2026) */
.kf .kf-tarjetas--4{grid-template-columns:repeat(4,minmax(0,1fr))}
.kf-resumen-tres{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:16px;align-items:stretch}
.kf .kf-resumen-caja{display:flex;flex-direction:column}
.kf .kf-resumen-caja .kf-tarjeta__pie{margin-top:auto}
.kf .kf-resumen-caja .kf-table td .sub .kf-chip{margin-top:4px}
@media (max-width:1100px){.kf .kf-tarjetas--4{grid-template-columns:repeat(2,minmax(0,1fr))}.kf-resumen-tres{grid-template-columns:minmax(0,1fr)}}
@media (max-width:560px){.kf .kf-tarjetas--4{grid-template-columns:minmax(0,1fr)}}
/* Avisos de la cuenta arriba, junto a la campana: no mueven la página (Javi, 10-11-2026) */
.kf-top-avisos{display:flex;align-items:center;gap:6px;min-width:0}
.kf-top-avisos:empty{display:none}
.kf .kf-aviso-top{height:28px;padding:0 10px;border-radius:7px;display:inline-flex;align-items:center;gap:6px;font:inherit;font-size:13px;font-weight:500;white-space:nowrap;text-decoration:none;border:1px solid var(--line);background:transparent;color:var(--text-1);cursor:pointer}
.kf .kf-aviso-top .i{width:14px;height:14px}
.kf .kf-aviso-top:hover{background:var(--fill-secondary)}
.kf .kf-aviso-top--danger{color:var(--danger-text);border-color:var(--danger-border)}
.kf .kf-aviso-top--warning{color:var(--warning-text);border-color:var(--warning-border)}
.kf .kf-aviso-top--accent{color:var(--accent-text);border-color:var(--accent-border)}
.kf-aviso-top__n{font-size:12px;opacity:.8}
.kf-avisos-capa{display:flex;flex-direction:column;gap:12px;margin-top:12px}
.kf .kf-avisos-capa .kf-aviso-cuenta,.kf .kf-avisos-capa .kf-banda-prueba{margin:0}
@media (max-width:700px){.kf-aviso-top__t{display:none}}
.kf .kf-btn--atencion .i{color:var(--warning-text)}
/* Facturación y pagos por pestañas */
.kf-fp-cont{margin-top:8px}
/* Coste y gasto en una pantalla: la gráfica y «Por concepto», lado a lado */
.kf-coste-dos{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:12px;margin-top:12px;align-items:stretch}
.kf .kf-coste-dos>.kf-bloque{margin-top:0}
@media (max-width:1000px){.kf-coste-dos{grid-template-columns:minmax(0,1fr)}}
.kf .kf-coste-dos>.kf-bloque{display:flex;flex-direction:column}
.kf .kf-coste-dos>.kf-bloque .kf-graf{flex:1 1 auto;height:auto;min-height:160px}
/* Facturación y pagos a todo el ancho, con las cajas y tablas de la consola (Javi, 10-11-2026) */
.kf .kf-fp-cont>:first-child{margin-top:4px}
.kf .kf-fp-cont .kf-cajas{align-items:stretch}
.kf-caja__tabla{padding:4px 8px 12px}
.kf .kf-table td.kf-td-texto{white-space:normal;min-width:220px;max-width:420px}
.kf-cifra{font-size:20px;line-height:26px;font-weight:600}
.kf .kf-filas dd>div+div{margin-top:6px}
/* Uso de IA en una pantalla */
@media (min-width:1001px){.kf-coste-dos--mitad{grid-template-columns:repeat(2,minmax(0,1fr))}.kf-coste-dos--una{grid-template-columns:minmax(0,1fr)}}
/* Resumen de Gasto con dos cajas (sin el uso de IA) */
@media (min-width:1101px){.kf-resumen-tres--dos{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* Datos con logo en las fichas: el logo separado del texto y el chip al lado (Javi, 10-11-2026) */
.kf-dato-logo{display:inline-flex;align-items:center;gap:10px;flex-wrap:wrap}
.kf-dato-logo .kf-logo-tarjeta{width:36px;height:22.5px}
.kf-dato-fuerte{font-weight:500}
/* Tu Red: al salir, los planes que puedes elegir en tarjetas (Javi, 10-11-2026) */
@media (min-width:901px){.kf .kf-tarjetas--3{grid-template-columns:repeat(3,minmax(0,1fr))}}
/* «Tu plan» en una fila: sus datos uno al lado del otro (Javi, 10-11-2026) */
.kf-ficha-fila .kf-filas{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px 24px;padding:14px 20px 16px}
.kf-ficha-fila .kf-filas>div{display:block;padding:0;border-top:0}
.kf-ficha-fila .kf-filas dt{margin-bottom:2px}
.kf-filtros__nota{margin-left:auto;align-self:center}
@media (min-width:1001px){.kf-ficha-fila .kf-filas{grid-template-columns:repeat(4,minmax(0,1fr))}}
/* Comparador de planes tras salir de la Red (Javi, 10-11-2026): sin ventana, los planes flotan sobre el fondo
   oscurecido y se abren en abanico; la luz del recomendado sale de detrás. El ratón se mide sobre el hueco (que no se
   mueve) y lo que se mueve es la tarjeta de dentro, en su propia capa: así el giro no va a tirones. */
.kf-scrim.kf-capa--flota{background:rgba(6,6,8,.8);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);overflow-y:auto;place-items:safe center;padding:32px 20px}
.kf .kf-dialog.kf-dialog--flota,.kf-dialog.kf-dialog--flota{background:transparent;box-shadow:none;padding:0;max-height:none;overflow:visible;position:relative}
.kf-dialog--flota .kf-dialog__x{top:0;right:0}
.kf-fl__cab{text-align:center;margin-bottom:36px}
.kf-fl__cab .kf-dialog__title{padding:0 44px;font-family:"Source Serif 4",Georgia,"Times New Roman",serif;font-weight:400;font-size:34px;line-height:40px}
.kf-fl__cab .kf-dialog__text{font-size:15px;line-height:22px}
.kf-fl__planes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;align-items:stretch;isolation:isolate;max-width:1080px;margin:0 auto}
.kf-fl__planes--2{grid-template-columns:repeat(2,minmax(0,1fr));max-width:720px}
.kf-fl__hueco{position:relative;display:flex;min-width:0;--giro:0deg;--baja:0px;--desde:0%}
.kf-fl__hueco--ase{--giro:-2deg;--baja:12px;--desde:105%}
.kf-fl__hueco--rec{--giro:2deg;--baja:12px;--desde:-105%}
.kf-fl__planes--2 .kf-fl__hueco--mio{--giro:-1.5deg;--baja:8px}
.kf-fl__hueco:hover{z-index:2;--giro:0deg;--baja:-6px}
.kf-fl__plan{flex:1;display:flex;flex-direction:column;gap:6px;min-width:0;padding:24px;border:1px solid var(--line);border-radius:18px;background:var(--surface-2);box-shadow:0 24px 60px -18px rgba(0,0,0,.7);
  transform:translate3d(0,var(--baja),0) rotate(var(--giro));transform-origin:50% 100%;transition:transform .32s cubic-bezier(.22,1,.36,1);will-change:transform;backface-visibility:hidden;animation:kf-fl-abre .5s cubic-bezier(.22,1,.36,1) backwards}
@keyframes kf-fl-abre{from{opacity:0;transform:translate3d(var(--desde),36px,0) rotate(0deg) scale(.94)}}
.kf-fl__hueco--mio .kf-fl__plan{border-color:var(--line-stronger)}
.kf-fl__hueco--rec .kf-fl__plan{border-color:color-mix(in srgb,var(--success-text) 30%,var(--line));background:radial-gradient(130% 55% at 50% 0%,color-mix(in srgb,var(--success-text) 13%,transparent),transparent 62%),var(--surface-2)}
.kf-fl__hueco--rec::before{content:"";position:absolute;inset:4px;z-index:-1;border-radius:30px;background:color-mix(in srgb,var(--success-text) 50%,transparent);filter:blur(48px);pointer-events:none;animation:kf-fl-luz 1.4s ease-out .35s backwards}
@keyframes kf-fl-luz{from{opacity:0}}
.kf-fl__top{min-height:22px}
.kf-fl__dif{font-size:13px;line-height:18px;color:var(--text-3)}
.kf-fl__dif--baja{color:var(--success-text);font-weight:500}
.kf-fl__falta{font-size:13px;line-height:18px;color:var(--warning-text)}
.kf-fl__cta{padding-top:14px}
.kf-fl__bloque{margin-top:16px;padding-top:14px;border-top:1px solid var(--row-line)}
.kf-fl__h{font-size:12px;line-height:16px;font-weight:500;color:var(--text-3);margin-bottom:8px}
.kf-fl__lista{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px}
.kf-fl__lista li{display:flex;gap:10px;font-size:13px;line-height:18px;color:var(--text-1)}
.kf-fl__sig{flex:none;width:14px;height:18px;display:grid;place-items:center;font-size:16px;line-height:18px;font-weight:600}
.kf-fl__sig svg{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.kf-fl__lista li{gap:8px}
.kf-fl__lista--si .kf-fl__sig svg{width:13px;height:13px}
.kf-fl__lista--menos li{color:var(--text-2)}
.kf-fl__lista--si .kf-fl__sig{color:var(--text-3)}
.kf-fl__lista--si li{color:var(--text-2)}
.kf-fl__pie{margin-top:40px;text-align:center}
.kf .kf-fl__todos{display:inline-flex;align-items:center;gap:4px;font-size:14px;color:var(--text-2);text-decoration:none}
.kf .kf-fl__todos:hover{color:var(--text-1)}
.kf-fl__todos .i{width:14px;height:14px}
@media (max-width:900px){.kf-fl__planes,.kf-fl__planes--2{grid-template-columns:minmax(0,1fr);max-width:420px;gap:16px}.kf-fl__hueco{--giro:0deg!important;--baja:0px!important}.kf-fl__cab .kf-dialog__title{font-size:26px;line-height:32px}}
@media (prefers-reduced-motion:reduce){.kf-fl__plan,.kf-fl__hueco--rec::before{animation:none;transition:none}}
/* Ajustes a todo el ancho, con las fichas de la consola (Javi, 11-11-2026) */
.kf .kf-aj-cajas{margin-top:0;align-items:stretch}
.kf-id-org{display:inline-flex;align-items:center;gap:6px}
.kf .kf-filas dd .kf-seg{margin:2px 0 4px}
.kf-cen__desc{margin:-4px 0 12px}
/* Páginas de ajustes en filas, sin cajas (Javi, 11-11-2026): qué es, su estado y su botón, separados por rayas */
.kf-ajustes{display:flex;flex-direction:column;gap:28px}
.kf-aj-sec__t{margin:0 0 4px;font-size:15px;line-height:20px;font-weight:500;color:var(--text-1)}
.kf-aj-fila{display:grid;grid-template-columns:minmax(220px,380px) minmax(180px,360px) auto;justify-content:start;align-items:center;gap:8px 24px;padding:12px 0;border-bottom:1px solid var(--row-line)}
.kf-aj-fila__n{font-size:14px;line-height:20px;font-weight:500;color:var(--text-1)}
.kf-aj-fila__d{margin-top:2px;font-size:13px;line-height:18px;color:var(--text-3)}
.kf-aj-fila__v{min-width:0;font-size:14px;line-height:20px;color:var(--text-2);overflow-wrap:anywhere}
.kf-aj-fila__a{display:flex;justify-content:flex-start;gap:8px}
.kf-aj-sec--peligro .kf-aj-sec__t{color:var(--danger-text)}
.kf .kf-btn--peligro{color:var(--danger-text)}
@media (max-width:760px){.kf-aj-fila{grid-template-columns:minmax(0,1fr) auto}.kf-aj-fila__v{grid-column:1/-1;grid-row:2}.kf-aj-fila__a{grid-row:1/3;grid-column:2}}
.kf-aj-borrar{display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding-top:4px}
.kf-aj-borrar .kf-aj-sec__t{margin:0}
.kf-aj-borrar__d{margin:0;font-size:13px;line-height:18px;color:var(--text-3)}
/* Las rayas acaban donde acaba la fila más ancha, no al otro lado de la pantalla (Javi, 11-11-2026) */
.kf .kf-ajustes{width:fit-content;max-width:100%;min-width:min(100%,720px)}
/* Ajustes como en Claude Console (platform.claude.com/settings, 11-11-2026): columna centrada de 768 px, secciones
   separadas por una raya, etiqueta a la izquierda y campo a la derecha */
.kf-cfg{max-width:768px;margin:0 auto}
.kf-cfg .kf-ph{margin-bottom:8px}
.kf-cfg-sec{display:flex;flex-direction:column;gap:4px;padding:20px 0;border-bottom:1px solid var(--line)}
.kf-cfg-sec--fin{border-bottom:0}
.kf-cfg-sec__t{margin:0 0 4px;font-size:15px;line-height:20px;font-weight:500;color:var(--text-1)}
.kf-cfg-sec__d{margin:0 0 4px;font-size:13px;line-height:18px;color:var(--text-3)}
.kf-cfg-fila{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:44px;padding:4px 0}
.kf-cfg-fila__l{display:flex;flex-direction:column;gap:2px;min-width:0;font-size:14px;line-height:20px;font-weight:500;color:var(--text-1)}
.kf-cfg-fila__s{font-size:13px;line-height:18px;font-weight:400;color:var(--text-3)}
.kf-cfg-fila__c{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex:none;max-width:60%}
.kf .kf-cfg-campo{width:240px;height:32px}
.kf-cfg-valor{font-size:14px;line-height:20px;color:var(--text-2);overflow-wrap:anywhere;text-align:right}
.kf-cfg-id{display:flex;align-items:center;gap:6px;margin:8px 0 0;font-size:13px;color:var(--text-3)}
.kf-cfg-id .mono{color:var(--text-2)}
.kf-tema-sel{display:inline-flex;padding:2px;border-radius:9px;background:var(--fill-secondary)}
.kf .kf-tema-sel button{width:28px;height:28px;display:grid;place-items:center;border:0;border-radius:7px;background:transparent;color:var(--text-3);cursor:pointer}
.kf .kf-tema-sel button .i{width:15px;height:15px}
.kf .kf-tema-sel button[aria-checked="true"]{background:var(--surface-2);color:var(--text-1);box-shadow:0 1px 2px rgba(0,0,0,.25)}
@media (max-width:640px){.kf-cfg-fila{flex-direction:column;align-items:stretch}.kf-cfg-fila__c{justify-content:flex-start;max-width:none}.kf .kf-cfg-campo{width:100%}}
/* La ayuda en una pantalla (11-11-2026): la línea de cada tema, en dos líneas como mucho */
.kf .kf-tema__d{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.kf .kf-ayuda__temas{margin-bottom:24px}
/* Temas de la ayuda: el icono a la izquierda y el texto a su lado, para que la ayuda quepa en una pantalla */
.kf .kf-ayuda .kf-tema{flex-direction:row;gap:12px;padding:14px 16px}
.kf .kf-ayuda .kf-tema__c{gap:2px}
.kf .kf-ayuda .kf-tema__n{margin-top:2px;padding-top:0}
.kf .kf-ayuda__temas{margin-top:24px}
.kf .kf-ayuda .kf-art-tarjeta{padding:14px 16px;gap:4px}
.kf .kf-ayuda__estado{margin-top:12px;padding-top:12px}
.kf .kf-ayuda #ay-pop .kf-section__title,.kf .kf-ayuda__temas .kf-section__title{margin-bottom:0}
.kf .kf-ayuda__hero{padding:0 0 20px;margin-bottom:0}
/* Envíanos un mensaje, como el formulario de ayuda de Claude Console (11-11-2026) */
.kf-msj{display:flex;flex-direction:column;gap:20px;margin-top:8px}
.kf-msj__dos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.kf-msj__campo{display:flex;flex-direction:column;gap:6px;min-width:0}
.kf .kf-msj__campo .kf-input{width:100%}
.kf .kf-msj__texto{min-height:180px;resize:vertical;line-height:20px;padding-top:10px;padding-bottom:10px}
.kf-msj__desde{display:flex;align-items:center;gap:8px;margin:0;font-size:13px;color:var(--text-2)}
.kf-msj__desde .i{width:15px;height:15px}
.kf-msj__pie{display:flex;justify-content:flex-end;gap:8px;padding-top:4px}
@media (max-width:640px){.kf-msj__dos{grid-template-columns:minmax(0,1fr)}}
/* «Ver en la documentación» al final de cada artículo de Soporte (11-11-2026) */
.kf .kf-doc-enlace{display:flex;align-items:center;gap:12px;margin:24px 0 8px;padding:14px 16px;border:1px solid var(--line);border-radius:var(--radius-panel);background:var(--surface-2);color:var(--text-1);text-decoration:none;transition:border-color .15s}
.kf .kf-doc-enlace:hover{border-color:var(--line-stronger)}
.kf .kf-doc-enlace>.i{width:18px;height:18px;flex:none;color:var(--text-3)}
.kf .kf-doc-enlace>span{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;font-size:14px;line-height:20px}
.kf .kf-doc-enlace b{font-weight:500}
.kf .kf-doc-enlace span span{font-size:13px;color:var(--text-3)}
/* Facturación y pagos › Plan: la cuota como una tabla más, sin cajas (11-11-2026) */
.kf .kf-cuota-sec .kf-h2row{justify-content:flex-start;gap:10px}
.kf .kf-cuota-sec .kf-section__desc{margin:2px 0 8px}
.kf .kf-cuota-nota{margin-top:10px;max-width:72ch}
/* Soporte: «Envíanos un mensaje» con Kairos antes de pasar a una persona (11-11-2026) */
.kf-msj__dos--tres{grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width:900px){.kf-msj__dos--tres{grid-template-columns:minmax(0,1fr)}}
.kf-kairos{max-height:min(460px,52vh);overflow-y:auto;margin:0;padding:4px 2px}
.kf-kairos-docs{display:flex;flex-direction:column;gap:4px;margin-top:8px;padding-top:8px;border-top:1px solid var(--line)}
.kf-kairos-docs .kf-link{display:inline-flex;align-items:center;gap:6px;font-size:13px}
.kf-kairos-docs .i{width:14px;height:14px}
.kf-kairos__escribir{display:flex;gap:8px;align-items:flex-end}
.kf .kf-kairos__escribir .kf-input{flex:1;min-height:44px;resize:vertical;padding-top:10px;line-height:20px}
.kf-kairos__escribir .kf-btn{height:44px;width:44px;padding:0;justify-content:center}
.kf-kairos__pensando .kf-msg__texto{animation:kf-pensando 1.4s ease-in-out infinite}
@keyframes kf-pensando{50%{opacity:.45}}
@media (prefers-reduced-motion:reduce){.kf-kairos__pensando .kf-msg__texto{animation:none}}
/* Consola › Soporte › Análisis: lo de Kairos (11-11-2026) */
.kf .kf-an-kairos__t{margin:32px 0 12px}
.kf-an-falta{list-style:none;margin:0;padding:0 16px 8px}
.kf-an-falta li{display:flex;flex-direction:column;gap:2px;padding:10px 0;border-bottom:1px solid var(--line)}
.kf-an-falta li:last-child{border-bottom:0}
/* TPV de CaixaBank (tpv.js trae el marcado de la consola vieja: aquí se viste con el del panel) */
.kf-tpv{display:flex;flex-direction:column;gap:16px;margin-top:8px}
.kf-tpv .card2{display:flex;flex-direction:column;gap:14px;padding:20px;border:1px solid var(--line);border-radius:var(--radius-panel);background:var(--surface-1)}
.kf-tpv .sec-tit,.kf-tpv h3{margin:8px 0 0;font-size:15px;font-weight:500}
.kf .kf-tpv .ms-nota,.kf .kf-tpv-form .ms-nota{margin:0;color:var(--text-2);font-size:13px;line-height:20px}
.kf .kf-tpv label,.kf .kf-tpv-form label{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--text-2)}
.kf .kf-tpv .input,.kf .kf-tpv-form .input,.kf .kf-tpv select,.kf .kf-tpv input[type=text],.kf .kf-tpv input[type=password]{height:36px;padding:0 12px;border:1px solid var(--line-strong);border-radius:var(--radius-control,8px);background:var(--surface-2);color:var(--text-1);font:inherit}
.kf .kf-tpv .btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:32px;padding:0 12px;border-radius:var(--radius-control,8px);border:1px solid var(--line-strong);background:transparent;color:var(--text-1);font:inherit;font-size:13px;cursor:pointer}
.kf .kf-tpv .btn-primary{background:var(--text-1);color:var(--surface-1);border-color:transparent}
.kf .kf-tpv .btn-sm{height:28px;padding:0 10px}
.kf .kf-tpv table{width:100%;border-collapse:collapse;font-size:13px}
.kf .kf-tpv th,.kf .kf-tpv td{padding:10px 8px;border-bottom:1px solid var(--line);text-align:left}
.kf .kf-tpv-form .kf-dialog__body{display:flex;flex-direction:column;gap:12px}
/* Notificaciones: la lista de avisos mide lo que sus filas, no los 140 px de las tarjetas de cifras (11-11-2026) */
.kf .kf-tarjeta.kf-avisos{min-height:0;padding-top:0;padding-bottom:0}
.kf .kf-tarjeta.kf-avisos>.kf-aviso:first-child{border-top:0}
.kf .kf-mas-convs{margin:12px 0 0}
/* Conectores (11-11-2026) */
.kf-con-grupo{margin-bottom:24px}
.kf .kf-tarjeta.kf-con{min-height:0;gap:8px}
.kf-con__cab{display:flex;align-items:center;justify-content:space-between;gap:8px}
.kf-con__prod{font-size:13px}
.kf-con__t{font-size:15px;font-weight:500}
.kf-con__d{margin:0;color:var(--text-2);font-size:13px;line-height:19px;flex:1}
.kf-con__fuera{margin:0;font-size:12px}
.kf-con__pie{display:flex;gap:8px;margin-top:4px;min-height:28px}
.kf-con--off .kf-con__t,.kf-con--off .kf-con__d{opacity:.7}

/* Precios del 11-11-2026: la tienda (Servicios) en tres grupos, el precio del banco conectado y la tabla que compara
   los planes de KaiSalud. Las tres tablas de la tienda con las mismas columnas, para que el precio quede alineado. */
.kf-tienda__d{margin:-6px 0 8px;font-size:13px;line-height:19px;color:var(--text-2)}
.kf-tienda .kf-table{table-layout:fixed;width:100%}
.kf-tienda .kf-table th:nth-child(2){width:220px}
.kf-tienda .kf-table th:nth-child(3){width:170px}
.kf-tienda .kf-table th:nth-child(4){width:150px}
.kf-tienda .kf-table td .sub{white-space:normal}
.kf-tienda .kf-table td:first-child{padding-right:24px}
.kf-con__precio{margin:0;display:flex;flex-direction:column;gap:2px;font-size:13px;line-height:19px;color:var(--text-1)}
.kf-con__precio .t3{font-size:12px;line-height:16px}
.kf-compara .kf-table{min-width:880px}
.kf-compara__t th[scope="row"]{font-weight:500;color:var(--text-2);white-space:normal;width:170px;vertical-align:top;padding-top:10px}
.kf-compara__t td{vertical-align:top;font-size:13px;line-height:19px}
.kf-compara__t thead th{font-size:14px;color:var(--text-1)}
.kf-compara__t .kf-compara__mio{background:var(--fill-row-hover)}
.kf-compara__pie{margin:12px 0 0;font-size:13px;line-height:20px;color:var(--text-2)}
.kf-compara__pie b{color:var(--text-1);font-weight:500}
@media (max-width:720px){
  .kf-tienda .kf-table{table-layout:auto}
  .kf-tienda .kf-table th:nth-child(n+2){width:auto}
}

/* Notificaciones (Javi, 11-11-2026: «no tiene un tipo de diseño parecido»): las tres pestañas con las filas de Soporte
   y sin recuadro, como las notificaciones de la consola. */
.kf-notifs{min-width:0}
.kf-conv__acc{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex:none}
/* Toda la fila se pulsa (como en Soporte): el enlace del título la cubre y los botones quedan encima. */
.kf-conv__enlace{color:inherit;text-decoration:inherit;background:none;border:0;padding:0;font:inherit;text-align:left;cursor:pointer;min-width:0}
.kf-conv__enlace::after{content:"";position:absolute;inset:0;border-radius:8px}
.kf-conv__enlace:focus-visible{outline:none}
.kf-conv:has(.kf-conv__enlace:focus-visible){background:var(--fill-row-hover);box-shadow:0 0 0 2px var(--focus-ring, var(--accent-fill))}
.kf-conv__accion :is(a,button){position:relative;z-index:1}
.kf-invred__nota{margin:12px 0 0}
/* El estado, en columna: si alguna fila de la caja tiene botón, todas guardan su sitio. */
.kf-conv__estado,.kf-conv__accion{display:flex;justify-content:flex-end;align-items:center}
.kf-conv__accion:empty{display:none}
.kf-notifs:has(.kf-conv__accion > *) .kf-conv__accion{display:flex;min-width:128px}
@media (max-width:640px){.kf-notifs .kf-conv{flex-wrap:wrap}.kf-notifs .kf-conv__acc{flex-basis:100%;padding-left:44px;justify-content:flex-start}.kf-notifs:has(.kf-conv__accion > *) .kf-conv__accion{min-width:0}}
/* Ventas (11-11-2026): el próximo paso vencido, en rojo; la caja para apuntar, con su botón a la derecha. */
.kf-vencido{color:var(--danger-text)}
.kf-vnota{margin:8px 0 16px;max-width:720px}
.kf-vnota__pie{display:flex;justify-content:flex-end}
.kf-vh__t{white-space:pre-line}

/* Documentos de un cliente (peticiones al cliente, 11-11-2026): nombre que se descarga y, debajo, de dónde viene. */
.kf-docs { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.kf-docs li { display: grid; gap: 2px; min-width: 0; }
.kf-docs .kf-link { display: inline-flex; align-items: center; gap: 6px; text-align: left; overflow-wrap: anywhere; }
.kf-docs .kf-link svg { width: 14px; height: 14px; flex: none; }
.kf-pet-ayuda { margin: 0 0 16px; }
.kf-docs li:has(.kf-docs__quitar) { grid-template-columns: 1fr auto; column-gap: 12px; }
.kf-docs li:has(.kf-docs__quitar) .t3 { grid-column: 1; }
.kf-docs__quitar { grid-column: 2; grid-row: 1 / span 2; align-self: center; color: var(--danger-text); }
.kf-pet-subir { margin-top: 16px; }

/* Alta: «Ahora no: solo quiero crear la cuenta» (11-11-2026), debajo del botón, centrado y discreto. */
.kf-alta__ahorano { margin: 12px 0 0; text-align: center; }

/* Propuestas (12-11-2026): el editor de líneas y los totales a la derecha. */
.kf-prop-ed { display: grid; gap: 8px; }
.kf-prop-ed__cab, .kf-prop-ed__f { display: grid; grid-template-columns: minmax(0, 1fr) 84px 110px 120px 36px; gap: 8px; align-items: center; }
.kf-prop-ed__cab span { font-size: 12px; color: var(--text-tertiary, inherit); }
.kf-prop-ed__mas { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; margin: 8px 0 4px; }
.kf-prop-ed__mas select { flex: 0 1 320px; }
.kf-prop-tot { display: grid; gap: 4px; justify-content: end; margin: 12px 0 4px; }
.kf-prop-tot div { display: flex; gap: 24px; justify-content: space-between; min-width: 220px; }
@media (max-width: 640px) { .kf-prop-ed__cab { display: none; } .kf-prop-ed__f { grid-template-columns: 1fr 1fr; } .kf-prop-ed__f input[data-k=concepto] { grid-column: 1 / -1; } }

/* La propuesta como documento (12-11-2026): la misma hoja que su PDF, blanca en los dos temas, con la marca de Kaisfera. */
.kf-pdoc { background: #fff; color: #111; border-radius: 12px; overflow: hidden; box-shadow: 0 0 0 1px rgba(17, 17, 17, .08); font-size: 13px; line-height: 1.45; margin: 4px 0 12px; }
.kf-pdoc__franja { height: 5px; background: linear-gradient(100deg, #d97757, #5b5bd6 38%, #0284c7 66%, #0d9488); }
.kf-pdoc__hoja { padding: 26px 32px 28px; }
.kf-pdoc__arriba { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 18px; }
.kf-pdoc__rot { display: block; font-size: 10px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: #5c676d; margin-bottom: 3px; }
.kf-pdoc__marca { font: 800 22px/1.1 "Hanken Grotesk", Geist, system-ui, sans-serif; letter-spacing: -.02em; background: linear-gradient(100deg, #d97757, #5b5bd6 38%, #0284c7 66%, #0d9488);
  -webkit-background-clip: text; background-clip: text; color: transparent; }
.kf-pdoc .kf-pdoc__t { font-size: 26px; line-height: 1.15; font-weight: 700; margin: 0; color: #111; }
.kf-pdoc .kf-pdoc__para { font-size: 15px; color: #5c676d; margin: 2px 0 18px; }
.kf-pdoc .kf-pdoc__meta { display: flex; flex-wrap: wrap; gap: 8px 40px; margin: 0 0 16px; }
.kf-pdoc__meta dt { font-size: 10px; font-weight: 700; color: #5c676d; }
.kf-pdoc__meta dd { margin: 0; color: #111; }
.kf-pdoc__cifras { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; }
.kf-pdoc__cifra { border: 1px solid #e3e6eb; border-radius: 10px; padding: 10px 14px; display: grid; gap: 2px; background: #fff; }
.kf-pdoc__cifra.on { border-color: #5b5bd6; background: #f5f5fd; }
.kf-pdoc__cifra span { font-size: 10px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: #5c676d; }
.kf-pdoc__cifra b { font-size: 20px; font-variant-numeric: tabular-nums; color: #111; }
.kf-pdoc .kf-pdoc__nota { font-size: 12px; color: #5c676d; margin: 8px 0 20px; }
.kf-pdoc__partes { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-bottom: 4px; }
.kf-pdoc__partes > div { display: grid; gap: 1px; align-content: start; min-width: 0; overflow-wrap: anywhere; }
.kf-pdoc__g { color: #5c676d; }
.kf-pdoc .kf-pdoc__s { font-size: 14px; font-weight: 700; margin: 22px 0 6px; color: #111; }
.kf-pdoc__envoltura { overflow-x: auto; }
.kf-pdoc__tabla { width: 100%; border-collapse: collapse; }
.kf-pdoc__tabla th { font-size: 10px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: #5c676d; text-align: right; padding: 0 0 6px 12px; border-bottom: 1px solid #111; }
.kf-pdoc__tabla td { text-align: right; padding: 9px 0 9px 12px; border-bottom: 1px solid #e3e6eb; vertical-align: top; font-variant-numeric: tabular-nums; white-space: nowrap; color: #111; }
.kf-pdoc__tabla th:first-child, .kf-pdoc__tabla td:first-child { text-align: left; padding-left: 0; white-space: normal; }
.kf-pdoc__tabla td span { display: block; font-size: 11.5px; color: #5c676d; }
.kf-pdoc__tot { margin: 8px 0 0 auto; border-collapse: collapse; min-width: 240px; color: #111; }
.kf-pdoc__tot td { padding: 5px 0; border-top: 1px solid #e3e6eb; }
.kf-pdoc__tot td:last-child { text-align: right; padding-left: 24px; font-variant-numeric: tabular-nums; }
.kf-pdoc__tot .fin td { font-weight: 700; border-top: 1px solid #111; }
.kf-pdoc .kf-pdoc__txt { margin: 0; white-space: pre-line; color: #111; }
.kf-pdoc__pasos { background: #f6f7f9; border-radius: 10px; padding: 2px 18px 14px; margin-top: 22px; color: #111; }
.kf-pdoc__pasos .kf-pdoc__s { margin-top: 14px; }
.kf-pdoc__pasos ol { margin: 0; padding-left: 18px; display: grid; gap: 3px; }
@media (max-width: 560px) { .kf-pdoc__hoja { padding: 20px 16px; } .kf-pdoc__partes { grid-template-columns: 1fr; } .kf-pdoc__tot { min-width: 0; width: 100%; } }

/* Estados como recorrido (12-11-2026): los colores de siempre en la línea (mal rojo, aviso ámbar, fin gris), y la
   aceptación de una propuesta. */
.kf-tl--estados { margin: 0 0 14px; }
.kf-tl--mal .kf-tl__punto { background: var(--danger-fill, #d92d20); box-shadow: none; color: #fff; }
.kf-tl--aviso .kf-tl__punto { box-shadow: inset 0 0 0 5px var(--warning-fill, #dc6803); }
.kf-tl--fin .kf-tl__punto { background: var(--text-3, #98a2a8); box-shadow: none; }
.kf-tl--fin .kf-tl__t { color: var(--text-2, inherit); }
.kf-pdoc__acep { margin-top: 22px; padding-top: 2px; border-top: 1px solid #e3e6eb; }
.kf-pdoc__acep .kf-pdoc__partes { margin-top: 8px; }

/* «Tus centros» de KaiSalud (CC-2026-1274): el selector de mes, la tabla de cifras y su pie de totales. */
.kf-ks-mes{align-items:center}.kf-ks-mes__txt{padding:0 10px;min-width:132px;text-align:center;color:var(--text-1);white-space:nowrap}
.kf-ks-mes button[disabled]{opacity:.35;cursor:default}
.kf-table th.num,.kf-table td.num{text-align:right;font-variant-numeric:tabular-nums}
a.kf-name{color:inherit;text-decoration:none}a.kf-name:hover{text-decoration:underline}
.kf-ks-fila{cursor:pointer}.kf-ks-tabla tfoot td{font-weight:600;border-top:1px solid var(--line-strong)}
/* «Lo común» de KaiSalud (fase 3): filtros de la lista de servicios, roles y las tres barritas de nivel. */
.kf-ks-filtros{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.kf-ks-filtros .kf-search{flex:1;min-width:220px}.kf-ks-filtros select{width:auto;max-width:260px}
.kf-ks-roles__lista{flex-wrap:wrap;height:auto;margin-bottom:8px}
.kf-ks-barras{display:inline-flex;align-items:flex-end;gap:2px;height:12px}.kf-ks-barras i{width:3px;border-radius:1px;background:var(--line-strong)}
.kf-ks-barras i:nth-child(1){height:5px}.kf-ks-barras i:nth-child(2){height:8px}.kf-ks-barras i:nth-child(3){height:12px}.kf-ks-barras i.on{background:currentColor}
.kf-ks-marca__pie{display:flex;justify-content:flex-end;margin-top:16px}.kf-ks-form .kf-btn--sm{align-self:flex-start}
.kf-ks-enlace{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.kf-ks-enlace code{font-family:var(--font-mono);font-size:12px;color:var(--text-2);background:var(--fill-field);padding:6px 8px;border-radius:var(--radius-xs);overflow-wrap:anywhere}
.kf-ks-h2{margin-bottom:12px}select.kf-precio{text-align:left;width:auto}
/* Plantillas de historia: apartados y preguntas dentro de la ventana. */
.kf-ks-sec{border:1px solid var(--line);border-radius:var(--radius-panel);padding:12px;margin:0 0 12px;display:flex;flex-direction:column;gap:8px;min-width:0}
.kf-ks-sec__cab{display:flex;gap:8px;align-items:center}.kf-ks-sec__cab .kf-input{font-weight:600}
.kf-ks-campo{display:grid;grid-template-columns:minmax(0,1fr) 190px auto;gap:8px;align-items:center}.kf-ks-campo__ops{grid-column:1/3}.kf-ks-campo__ob{grid-column:1/-1}
#ks-pl{max-height:56vh;overflow:auto;padding-right:4px}
/* «Lo común» con las piezas del panel: áreas de texto a todo el ancho de la columna de ajustes y detalles. */
.kf-ks-cfg-area{padding:6px 0}.kf-ks-cfg-area .kf-input{width:100%}.kf-ks-oculto{display:none}.kf-ks-unidad{min-width:76px}
.kf-ks-pests{flex-wrap:wrap}.kf-cfg .kf-cfg-fila__s code{font-family:var(--font-mono);font-size:12px;overflow-wrap:anywhere}
.kf-resumen-caja>.kf-section__desc{margin:0 0 8px}.kf-resumen-caja .kf-table-wrap{margin-top:4px}
.kf-ks-tarjetas3{grid-template-columns:repeat(3,minmax(0,1fr))}@media (max-width:900px){.kf-ks-tarjetas3{grid-template-columns:minmax(0,1fr)}}
.kf-ks-lista-centros{border:1px solid var(--line);border-radius:var(--radius);padding:10px 12px;margin:0;display:flex;flex-direction:column;gap:8px;max-height:200px;overflow:auto}.kf-ks-lista-centros legend{padding:0 4px}
.kf-resumen-caja .kf-tarjeta__top .kf-btn--sm{margin-left:auto}
.kf-ks-h3{font-size:13px;font-weight:600;color:var(--text-2);margin:16px 0 4px}
