/* =====================================================================
   KYO Manager V15 — diseño según Manual de Marca TOKYO 2025
   Blanco 50% · Rojo Tokyo 30% · Negro Tokyo 20%. Titillium Web. Botones en mayúsculas.
   Todo está acotado a .kyo-shell / .kyo-login-card / .kyo-gate para no
   afectar el resto del sitio (V13 aplicaba box-sizing y variables globales).
   ===================================================================== */
.kyo-shell,.kyo-login-card,.kyo-gate{
 /* Manual de marca TOKYO 2025: Rojo Tokyo #DA291C · Negro Tokyo #212121 · Blanco. Predominancia 50 / 30 / 20 */
 --red:#DA291C;--primary:#DA291C;--primary-2:#B81F14;--primary-soft:#FCEDEB;
 --ink:#212121;--ink-2:#4A4A4A;--muted:#6E6E6E;--faint:#A3A3A3;
 --line:#E6E6E6;--line-2:#F0F0F0;--bg:#F5F5F5;--card:#fff;--carbon:#212121;--carbon-2:#2E2E2E;
 --pending:#9A5B00;--pending-bg:#FFF3DA;--pending-dot:#E19A0C;
 --confirmed:#11714A;--confirmed-bg:#E2F4EB;--confirmed-dot:#1F9D63;
 --rejected:#4A4A4A;--rejected-bg:#ECECEC;--rejected-dot:#8C8C8C;
 --r-lg:16px;--r-md:11px;--r-sm:8px;
 --font:"Titillium Web","Trebuchet MS",ui-sans-serif,system-ui,sans-serif;
 font-family:var(--font);color:var(--ink);-webkit-font-smoothing:antialiased;
}
.kyo-shell *,.kyo-shell *::before,.kyo-shell *::after,.kyo-login-card *,.kyo-gate *{box-sizing:border-box}
.kyo-shell h1,.kyo-shell h2,.kyo-shell h3,.kyo-shell h4,.kyo-login-card h1,.kyo-gate h2{font-family:var(--font);color:var(--ink);font-weight:700;letter-spacing:0;text-transform:none}
.kyo-shell a{text-decoration:none}
.kyo-shell button,.kyo-shell input,.kyo-shell select,.kyo-shell textarea{font-family:var(--font)}

/* ---------- Marca ---------- */
.kyo-mark{display:inline-flex;align-items:center;gap:12px;line-height:1}
.kyo-mark img{display:block;width:108px;height:auto;max-width:none}
.kyo-mark small{display:block;padding-left:12px;border-left:1px solid currentColor;font-size:13px;font-weight:600;line-height:1.15;opacity:.75}

/* ---------- Shell ---------- */
.kyo-shell{display:flex;align-items:stretch;min-height:calc(100vh - var(--wp-admin--admin-bar--height,0px));background:var(--bg);border-radius:0;position:relative;font-size:14.5px;line-height:1.45}
.kyo-shell.kyo-shell{--kyo-vw:calc(100vw - var(--kyo-sb,0px));width:var(--kyo-vw)!important;max-width:var(--kyo-vw)!important;margin-left:calc(50% - var(--kyo-vw) / 2)!important;margin-right:calc(50% - var(--kyo-vw) / 2)!important;margin-top:0;margin-bottom:0}
/* V16: el panel ocupa todo el ancho de la ventana aunque Elementor lo coloque en un contenedor "en caja" */
html:has(.kyo-shell),body:has(.kyo-shell){overflow-x:clip}
.kyo-sidebar{width:240px;flex:0 0 240px;background:var(--carbon);color:#fff;padding:24px 14px 16px;display:flex;flex-direction:column;position:sticky;top:var(--wp-admin--admin-bar--height,0px);height:calc(100vh - var(--wp-admin--admin-bar--height,0px));overflow-y:auto;z-index:30}
.kyo-sidebar-head{position:relative;padding:0 8px 22px}
.kyo-sidebar .kyo-mark small{color:#fff}
.kyo-sidebar nav{display:grid;gap:2px}
.kyo-nav-group{display:block;color:#8A8A8A;font-size:11.5px;font-weight:500;padding:16px 12px 6px}
.kyo-nav-group:first-child{padding-top:0}
.kyo-sidebar a{color:#C9C9C9!important;padding:10px 12px;border-radius:9px;display:flex;gap:12px;align-items:center;font-size:14px;font-weight:500;position:relative;transition:background .15s,color .15s}
.kyo-sidebar a .kyo-ico{flex:0 0 18px;opacity:.85}
.kyo-sidebar a:hover:not(.active){background:rgba(255,255,255,.05);color:#fff!important}
.kyo-sidebar a.active{background:var(--red);color:#fff!important;font-weight:600}
.kyo-sidebar a.active .kyo-ico{opacity:1}
.kyo-side-bottom{margin-top:auto;border-top:1px solid rgba(255,255,255,.08);padding-top:14px;display:grid;gap:6px}
.kyo-side-user{display:flex;gap:10px;align-items:center;padding:6px 10px}
.kyo-side-user strong{display:block;color:#fff;font-size:13px;font-weight:600}
.kyo-side-user small{display:block;color:#9A9A9A;font-size:12px}
.kyo-menu-close,.kyo-mobilebar,.kyo-sidebar-backdrop{display:none}

.kyo-main{flex:1;padding:28px 36px 44px;min-width:0;container-type:inline-size;container-name:kyomain}
.kyo-main>*{max-width:1560px;margin-left:auto;margin-right:auto}
.kyo-header{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:20px}
.kyo-header h1{margin:0;font-size:28px;line-height:1.1;font-weight:700}
.kyo-header p{margin:2px 0 0;color:var(--muted);font-size:14px}
.kyo-profile{display:flex;align-items:center;gap:10px;font-size:13px;font-weight:600;color:var(--ink)}
.kyo-profile small{display:block;color:var(--muted);font-size:12px;font-weight:400}
.kyo-avatar{width:34px;height:34px;flex:0 0 34px;border-radius:50%;display:grid;place-items:center;background:var(--carbon-2);color:#fff;font-weight:700;font-size:13px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.1)}
.kyo-sidebar .kyo-avatar{background:#3A3A3A}

/* ---------- Botones ---------- */
.kyo-shell .kyo-btn,.kyo-login-card .kyo-btn,.kyo-gate .kyo-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--primary);color:#fff!important;border:0;border-radius:10px;padding:11px 20px;font:600 14px/1.2 var(--font);cursor:pointer;transition:background .15s,transform .15s;box-shadow:none;text-transform:uppercase;letter-spacing:.06em;min-height:44px}
.kyo-shell .kyo-btn:hover,.kyo-login-card .kyo-btn:hover,.kyo-gate .kyo-btn:hover{background:var(--primary-2);color:#fff!important}
.kyo-shell .kyo-btn:active{transform:translateY(1px)}
.kyo-btn-block{width:100%}
.kyo-shell .kyo-btn-light{background:#fff;color:var(--red)!important;box-shadow:none}
.kyo-shell .kyo-btn-light:hover{background:#F5F5F5;color:var(--primary-2)!important}
.kyo-shell .kyo-btn-wa{background:var(--carbon)}
.kyo-shell .kyo-btn-wa:hover{background:#000}
.kyo-btn-outline{display:inline-flex;align-items:center;min-height:44px;padding:10px 20px;border-radius:10px;border:1.5px solid rgba(255,255,255,.7);color:#fff!important;font-weight:600;font-size:14px;text-transform:uppercase;letter-spacing:.06em;transition:border-color .15s,background .15s}
.kyo-btn-outline:hover{border-color:#fff;background:rgba(255,255,255,.1)}
.kyo-shell .kyo-ghost{display:inline-flex;align-items:center;min-height:36px;padding:7px 12px;border:1px solid var(--line);background:#fff;color:var(--ink)!important;border-radius:9px;font:500 13px/1.2 var(--font);cursor:pointer;transition:border-color .15s,background .15s;text-transform:none;letter-spacing:0}
.kyo-shell .kyo-ghost:hover{border-color:#C9CDD3;background:#FAFAFB;color:var(--ink)!important}
.kyo-shell .kyo-ghost.is-copied{border-color:var(--confirmed-dot);color:var(--confirmed)!important}
.kyo-shell :focus-visible,.kyo-login-card :focus-visible{outline:2px solid var(--ink);outline-offset:2px}
.kyo-sidebar :focus-visible{outline-color:#fff}

/* ---------- Dashboard ---------- */
.kyo-hero{display:flex;justify-content:space-between;align-items:center;gap:20px 32px;flex-wrap:wrap;background:var(--red);color:#fff;border-radius:var(--r-lg);padding:24px 28px;margin-bottom:14px;position:relative;overflow:hidden;isolation:isolate}
.kyo-hero::before{content:"";position:absolute;right:-70px;top:-110px;width:320px;height:320px;border-radius:50%;background:rgba(255,255,255,.07);z-index:-1}

.kyo-hero-date{display:block;color:rgba(255,255,255,.8);font-size:14px;margin-bottom:6px}
.kyo-hero h2{margin:0;font-size:30px;line-height:1.05;color:#fff!important;font-weight:700}
.kyo-hero p{margin:6px 0 0;color:#fff;font-size:15.5px}
.kyo-hero-actions{display:flex;gap:10px;flex-wrap:wrap;position:relative;z-index:1}
.kyo-hero-actions>*{white-space:nowrap}

.kyo-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;margin-bottom:14px}
.kyo-stats>a,.kyo-stats>div{background:#fff;padding:16px 20px;display:block;color:var(--ink)!important;transition:background .15s}
.kyo-stats>a:hover{background:#FAFAFB}
.kyo-stats span{display:flex;align-items:center;gap:8px;color:var(--ink-2);font-size:13px;font-weight:500}
.kyo-stats span::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--primary)}
.kyo-stats .is-pending span::before{background:var(--pending-dot)}
.kyo-stats .is-confirmed span::before{background:var(--confirmed-dot)}
.kyo-stats .is-rejected span::before{background:var(--rejected-dot)}
.kyo-stats .is-cond span::before{background:var(--red)}
.kyo-stats strong{display:block;font-size:32px;line-height:1;margin:10px 0 4px;font-weight:700;font-variant-numeric:tabular-nums}
.kyo-stats small{display:block;color:var(--muted);font-size:12.5px}

.kyo-two{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(320px,1fr);gap:14px;align-items:start}
.kyo-col{display:grid;gap:14px}
.kyo-col .kyo-panel{margin-bottom:0}

/* ---------- Panel ---------- */
.kyo-panel{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:20px 24px;margin-bottom:14px}
.kyo-panel-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px}
.kyo-panel-head h3{margin:0;font-size:17px;line-height:1.25;font-weight:700}
.kyo-panel-head p{margin:4px 0 0;color:var(--muted);font-size:13px}
.kyo-panel-head>a:not(.kyo-btn){color:var(--primary)!important;font-weight:600;font-size:13px;white-space:nowrap;padding-top:2px}
.kyo-panel-head>a:not(.kyo-btn):hover{text-decoration:underline}
.kyo-muted{color:var(--muted);font-size:13px;margin:4px 0}
.kyo-empty{display:grid;gap:6px;justify-items:start;padding:22px;border:1px dashed #D7DAE0;border-radius:var(--r-md);background:#FBFBFC}
.kyo-empty strong{font-size:14px;font-weight:600}
.kyo-empty span{color:var(--muted);font-size:13px}
.kyo-empty .kyo-btn{margin-top:8px}

/* ---------- Tablas ---------- */
.kyo-table-wrap{overflow:auto;margin:0 -8px}
.kyo-table{width:100%;border-collapse:separate;border-spacing:0;font-size:13.5px;margin:0;border:0}
.kyo-table th,.kyo-table td{text-align:left;padding:12px 8px;border:0;border-bottom:1px solid var(--line-2);vertical-align:top;background:transparent}
.kyo-table th{font-size:12px;font-weight:500;color:var(--muted);text-transform:none;letter-spacing:0;padding-top:4px}
.kyo-table tbody tr:last-child td{border-bottom:0}
.kyo-table tbody tr:hover td{background:#FAFAFB}
.kyo-table td strong{font-weight:600}
.kyo-table td b{font-weight:600;font-variant-numeric:tabular-nums}
.kyo-table td small{display:block;color:var(--muted);margin-top:3px;font-size:12px}
.kyo-td-actions{white-space:nowrap;text-align:right!important}
.kyo-td-actions>*{margin-left:6px;vertical-align:middle}
.kyo-edit{color:var(--primary)!important;font-weight:600;font-size:13px}
.kyo-search{width:100%;padding:11px 14px;border:1px solid var(--line);border-radius:10px;margin-bottom:12px;outline:none;font-size:14px;background:#FAFAFB;color:var(--ink)}
.kyo-search:focus{border-color:var(--primary);background:#fff;box-shadow:0 0 0 3px rgba(218,41,28,.14)}

/* ---------- Estados ---------- */
.kyo-status{display:inline-flex;align-items:center;gap:6px;padding:4px 10px 4px 8px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap;line-height:1.3}
.kyo-status::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.kyo-status.pending{background:var(--pending-bg);color:var(--pending)}
.kyo-status.confirmed{background:var(--confirmed-bg);color:var(--confirmed)}
.kyo-status.rejected{background:var(--rejected-bg);color:var(--rejected)}
.kyo-dot{width:8px;height:8px;border-radius:50%;flex:0 0 8px;margin-top:6px;background:var(--primary)}
.kyo-dot.pending{background:var(--pending-dot)}.kyo-dot.confirmed{background:var(--confirmed-dot)}.kyo-dot.rejected{background:var(--rejected-dot)}

/* ---------- Próximos eventos ---------- */
.kyo-upcoming>div{display:flex;gap:14px;align-items:flex-start;padding:12px 0;border-bottom:1px solid var(--line-2)}
.kyo-upcoming>div:last-child{border-bottom:0;padding-bottom:0}
.kyo-upcoming>div:first-child{padding-top:0}
.kyo-upcoming b{display:grid;justify-items:center;width:46px;flex:0 0 46px;padding:6px 0;border:1px solid var(--line);border-radius:10px;font-size:19px;font-weight:700;line-height:1;font-variant-numeric:tabular-nums}
.kyo-upcoming b small{font-size:11px;font-weight:500;color:var(--muted);margin-top:3px;text-transform:capitalize}
.kyo-upcoming>div>span{flex:1;min-width:0}
.kyo-upcoming strong{display:block;font-size:14px;font-weight:600}
.kyo-upcoming span small{display:block;color:var(--muted);margin-top:3px;font-size:12.5px}

/* ---------- Formularios ---------- */
.kyo-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px 18px}
.kyo-form-grid label,.kyo-login-card label,.kyo-modal-box label,.kyo-share label{display:flex;flex-direction:column;gap:7px;font-weight:600;font-size:13px;color:var(--ink-2)}
.kyo-form-grid label small{font-weight:400;color:var(--muted);font-size:12px}
.kyo-form-grid input,.kyo-form-grid select,.kyo-form-grid textarea,.kyo-login-card input:not([type=checkbox]),.kyo-modal-box input,.kyo-modal-box select,.kyo-share input{font:400 14px/1.4 var(--font);padding:11px 13px;border:1px solid #D9DCE1;border-radius:10px;background:#fff;color:var(--ink);outline:none;width:100%;min-height:44px;box-shadow:none;transition:border-color .15s,box-shadow .15s}
.kyo-form-grid input:focus,.kyo-form-grid select:focus,.kyo-form-grid textarea:focus,.kyo-login-card input:focus,.kyo-modal-box input:focus,.kyo-modal-box select:focus,.kyo-share input:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(218,41,28,.14)}
.kyo-form-grid .full{grid-column:1/-1}
.kyo-form-grid.is-4{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px 16px}
.kyo-form-grid .span-2{grid-column:span 2}.kyo-form-grid .span-3{grid-column:span 3}
.kyo-lbl{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap}
.kyo-opt{font-weight:400;color:var(--muted);font-size:12px}
.kyo-form-hint{margin:12px 0 0;color:var(--muted);font-size:13px}
.kyo-cond-create .kyo-form-actions{margin-top:14px}
.kyo-cond-create[hidden]{display:none}
.kyo-form-actions{display:flex;justify-content:flex-end;gap:14px;align-items:center;margin-top:22px;flex-wrap:wrap}
.kyo-form-actions.kyo-left{justify-content:flex-start;margin-top:0}
.kyo-form-actions>a:not(.kyo-btn):not(.kyo-ghost){color:var(--muted)!important;font-size:14px;font-weight:500}
.kyo-alert{padding:12px 14px;border-radius:10px;margin-bottom:14px;font-size:13.5px;border:1px solid transparent}
.kyo-alert.success{background:var(--confirmed-bg);color:var(--confirmed);border-color:#C5E8D6}
.kyo-alert.error{background:var(--rejected-bg);color:var(--rejected);border-color:#F6CFCB}
.kyo-check{display:flex!important;flex-direction:row!important;align-items:center;gap:8px!important;font-weight:400!important}
.kyo-check input{width:auto}

/* ---------- Login y acceso ---------- */
div.kyo-login-card,div.kyo-gate{max-width:420px;margin:72px auto;padding:40px 36px;background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:0 30px 60px -30px rgba(22,24,28,.25);position:relative;overflow:hidden}
.kyo-login-card::before,.kyo-gate::before{content:"";position:absolute;left:36px;top:0;width:44px;height:3px;background:var(--red)}
.kyo-login-card .kyo-mark img,.kyo-gate .kyo-mark img{width:120px}
.kyo-login-card .kyo-mark small,.kyo-gate .kyo-mark small{color:var(--ink)}
.kyo-login-card h1{margin:24px 0 6px;font-size:28px}
.kyo-login-card p{color:var(--muted);font-size:14px;margin:0 0 22px}
.kyo-login-card form{display:grid;gap:16px}
div.kyo-gate{max-width:480px;text-align:left}
.kyo-gate h2{margin:26px 0 8px;font-size:24px}
.kyo-gate p{margin:0 0 22px;color:var(--muted);font-size:14px}
.kyo-link{display:inline-block;margin-top:4px;color:var(--primary)!important;font-size:14px;font-weight:600}

/* ---------- Agenda ---------- */
.kyo-calendar{width:100%}
.kyo-calendar-legend{display:flex;gap:18px;align-items:center;margin:-4px 0 16px;color:var(--muted);font-size:13px;flex-wrap:wrap}
.kyo-calendar-legend span{display:flex;align-items:center;gap:7px}
.kyo-calendar-legend i{width:8px;height:8px;border-radius:50%;display:inline-block}
.kyo-calendar-legend i.pending{background:var(--pending-dot)}.kyo-calendar-legend i.confirmed{background:var(--confirmed-dot)}.kyo-calendar-legend i.rejected{background:var(--rejected-dot)}
.kyo-cal-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px}
.kyo-cal-head h3{margin:0;font-size:22px;line-height:1.1;white-space:nowrap;text-align:center;flex:1;font-weight:700}
.kyo-shell .kyo-cal-head button{background:#fff;color:var(--ink);border:1px solid var(--line);width:40px;height:40px;min-width:40px;border-radius:10px;font-size:22px;font-weight:500;line-height:1;display:grid;place-items:center;padding:0;cursor:pointer;box-shadow:none;transition:background .15s,border-color .15s}
.kyo-shell .kyo-cal-head button:hover{background:var(--primary);border-color:var(--primary);color:#fff}
.kyo-week,.kyo-cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.kyo-week span{text-align:left;padding:8px 10px;font-size:12px;font-weight:500;color:var(--muted)}
.kyo-cal-grid{border-top:1px solid var(--line);border-left:1px solid var(--line);border-radius:12px;overflow:hidden}
.kyo-day{min-height:118px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:8px;background:#fff;min-width:0}
.kyo-day>b{display:block;font-size:13px;font-weight:600;color:var(--ink-2);margin:0 0 4px 2px;font-variant-numeric:tabular-nums}
.kyo-day-empty{background:#FAFAFB}
.kyo-shell .kyo-event{display:block;width:100%;text-align:left;border:0;border-left:3px solid var(--primary);background:var(--primary-soft);color:var(--ink);padding:6px 8px;margin-top:5px;border-radius:6px;font-size:12px;cursor:pointer;line-height:1.25;transition:filter .15s}
.kyo-shell .kyo-event:hover{filter:brightness(.97);background:var(--primary-soft);color:var(--ink)}
.kyo-shell .kyo-event.pending{border-left-color:var(--pending-dot);background:var(--pending-bg)}
.kyo-shell .kyo-event.confirmed{border-left-color:var(--confirmed-dot);background:var(--confirmed-bg)}
.kyo-shell .kyo-event.rejected{border-left-color:var(--rejected-dot);background:var(--rejected-bg)}
.kyo-event strong{display:block;color:var(--ink);font-size:12px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kyo-event small{display:block;color:var(--ink-2);font-size:11px;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kyo-event.has-cond strong::after,.kyo-mobile-event.has-cond strong::after{content:"";display:inline-block;width:6px;height:6px;margin-left:6px;border-radius:50%;background:var(--confirmed-dot);vertical-align:middle}
.kyo-mobile-agenda{display:none}

/* ---------- Modales ---------- */
.kyo-modal{position:fixed;inset:0;background:rgba(18,20,24,.55);backdrop-filter:blur(3px);display:grid;place-items:center;padding:20px;z-index:99999}
.kyo-modal[hidden]{display:none}
.kyo-modal-box{position:relative;background:#fff;width:min(500px,100%);padding:28px;border-radius:18px;box-shadow:0 40px 80px -20px rgba(0,0,0,.35);display:grid;gap:16px;max-height:calc(100vh - 40px);overflow:auto}
.kyo-modal-box h3{margin:0;font-size:20px}
.kyo-modal-box form{display:grid;gap:14px}
.kyo-shell .kyo-modal-close{position:absolute;right:14px;top:14px;border:0;background:#F2F3F5;color:var(--ink);width:34px;height:34px;border-radius:50%;font-size:20px;line-height:1;cursor:pointer;display:grid;place-items:center;padding:0}
.kyo-shell .kyo-modal-close:hover{background:#E5E7EB;color:var(--ink)}
.kyo-event-detail{width:min(560px,100%);gap:0}
.kyo-event-detail-top{display:flex;gap:12px;align-items:center;margin-bottom:14px;padding-right:40px}
.kyo-event-detail-top>span:last-child{color:var(--muted);font-size:13px}
.kyo-event-detail h3{font-size:24px;margin:0 0 4px;line-height:1.15}
.kyo-detail-company{margin:0 0 18px;color:var(--muted);font-size:14px}
.kyo-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}
.kyo-detail-grid>div{background:#F7F8F9;border-radius:10px;padding:12px 14px}
.kyo-detail-grid small,.kyo-detail-notes small{display:block;color:var(--muted);font-size:12px;margin-bottom:4px}
.kyo-detail-grid strong{font-size:14px;font-weight:600}
.kyo-detail-cond{margin-bottom:14px}
.kyo-detail-cond[hidden]{display:none}
.kyo-detail-notes{border-top:1px solid var(--line-2);padding-top:16px}
.kyo-detail-notes p{margin:0;color:var(--ink-2);line-height:1.6;font-size:14px;white-space:pre-wrap}

/* ---------- Usuarios / cuenta / configuración ---------- */
.kyo-user-list{display:grid;gap:8px}
.kyo-user-row{display:grid;grid-template-columns:40px 1fr auto auto;align-items:center;gap:14px;padding:12px 14px;border:1px solid var(--line);border-radius:12px}
.kyo-user-row .kyo-avatar{width:40px;height:40px}
.kyo-user-row strong{font-weight:600}
.kyo-user-row small{display:block;color:var(--muted);margin-top:2px;font-size:12.5px}
.kyo-role{font-size:12px;font-weight:500;padding:4px 10px;border-radius:999px;background:#F2F3F5;color:var(--ink-2)}
.kyo-user-actions{display:flex;gap:4px}
.kyo-shell .kyo-user-actions button{border:0;background:none;color:var(--primary);font:600 13px var(--font);cursor:pointer;padding:6px 8px;border-radius:7px}
.kyo-shell .kyo-user-actions button:hover{background:var(--primary-soft);color:var(--primary)}
.kyo-shell .kyo-user-actions form button{color:var(--rejected)}
.kyo-shell .kyo-user-actions form button:hover{background:var(--rejected-bg);color:var(--rejected)}
.kyo-user-actions form{margin:0}
.kyo-settings{display:grid;gap:8px}
.kyo-settings div{padding:16px 18px;border:1px solid var(--line);border-radius:12px}
.kyo-settings strong,.kyo-settings span{display:block}
.kyo-settings strong{font-weight:600}
.kyo-settings span{color:var(--muted);margin-top:4px;font-size:13px}
.kyo-account-card{display:flex;align-items:center;gap:16px;padding:18px;border:1px solid var(--line);border-radius:12px;background:#FAFAFB}
.kyo-account-avatar{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;background:var(--carbon);color:#fff;font-size:20px;font-weight:700}
.kyo-account-card strong,.kyo-account-card span,.kyo-account-card small{display:block}
.kyo-account-card strong{font-size:16px;font-weight:600}
.kyo-account-card span{color:var(--muted);font-size:13px;margin-top:2px}
.kyo-account-card small{color:var(--primary);font-size:12px;font-weight:600;margin-top:4px}
.kyo-password-help{margin-top:12px;color:var(--muted);font-size:12.5px}

/* ---------- Condiciones de sede ---------- */
.kyo-cond-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.35fr);gap:14px;align-items:start}
.kyo-cond-layout .kyo-panel{margin-bottom:0}

.kyo-cond-badge{flex:0 0 auto;display:inline-flex;align-items:center;gap:6px;padding:4px 10px 4px 8px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap;background:#F2F3F5;color:var(--ink-2)}
.kyo-cond-badge::before{content:"";flex:0 0 6px;width:6px;height:6px;border-radius:50%;background:currentColor}
.kyo-cond-badge.is-sent{background:#F0F0F0;color:var(--ink)}
.kyo-cond-badge.is-sent::before{background:var(--red)}
.kyo-cond-badge.is-opened{background:var(--pending-bg);color:var(--pending)}
.kyo-cond-badge.is-accepted{background:var(--confirmed-bg);color:var(--confirmed)}
.kyo-cond-badge.is-expired,.kyo-cond-badge.is-revoked{background:#F2F3F5;color:var(--muted)}
.kyo-cond-inline{display:block;margin-top:6px;font-size:12px;font-weight:500;color:var(--muted)!important}
.kyo-cond-inline::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;margin-right:6px;background:var(--faint);vertical-align:middle}
.kyo-cond-inline.is-accepted{color:var(--confirmed)!important}.kyo-cond-inline.is-accepted::before{background:var(--confirmed-dot)}
.kyo-cond-inline.is-sent::before{background:var(--red)}.kyo-cond-inline.is-opened::before{background:var(--pending-dot)}
.kyo-cond-inline:hover{text-decoration:underline}
.kyo-cond-mini{list-style:none;margin:0;padding:0}
.kyo-cond-mini li{border-bottom:1px solid var(--line-2)}
.kyo-cond-mini li:last-child{border-bottom:0}
.kyo-cond-mini a{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 0;color:var(--ink)!important}
.kyo-cond-mini li:first-child a{padding-top:0}
.kyo-cond-mini a>span{min-width:0}
.kyo-cond-mini strong{display:block;font-size:14px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kyo-cond-mini small{display:block;color:var(--muted);font-size:12.5px;margin-top:2px}
.kyo-back{display:inline-flex;align-items:center;gap:6px;color:var(--muted)!important;font-size:13.5px;font-weight:500;margin-bottom:14px}
.kyo-back::before{content:"";width:7px;height:7px;border-left:1.6px solid currentColor;border-bottom:1.6px solid currentColor;transform:rotate(45deg);margin-right:2px}
.kyo-back:hover{color:var(--ink)!important}
.kyo-cond-detail{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;align-items:start}
.kyo-cond-detail .kyo-panel{margin-bottom:0}
.kyo-cond-detail-head h3{margin:12px 0 4px;font-size:24px;line-height:1.15;font-weight:700}
.kyo-cond-detail-head p{margin:0;color:var(--muted);font-size:13.5px}
.kyo-share{margin:20px 0 4px;padding:18px;border-radius:12px;background:#F7F8F9}
.kyo-share input{font-size:13px;background:#fff;color:var(--ink-2)}
.kyo-share-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.kyo-share-note{margin:12px 0 0;color:var(--muted);font-size:12.5px}
.kyo-facts{display:grid;grid-template-columns:1fr 1fr;gap:16px 20px;margin:20px 0 0}
.kyo-facts>div{min-width:0}
.kyo-facts .full{grid-column:1/-1}
.kyo-facts dt{font-size:12px;color:var(--muted);margin:0 0 3px}
.kyo-facts dd{margin:0;font-size:14px;font-weight:600;overflow-wrap:anywhere}
.kyo-shell .kyo-revoke{margin:22px 0 0;padding-top:16px;border-top:1px solid var(--line-2)}
.kyo-shell .kyo-revoke button{background:none;border:0;padding:0;color:var(--rejected);font:600 13px var(--font);cursor:pointer}
.kyo-shell .kyo-revoke button:hover{text-decoration:underline;background:none;color:var(--rejected)}
.kyo-receipt .kyo-facts{margin-top:0}
.kyo-subhead{margin:22px 0 10px;font-size:14px;font-weight:600}
.kyo-checklist-done{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.kyo-checklist-done li{position:relative;padding-left:24px;font-size:13px;color:var(--muted);line-height:1.45}
.kyo-checklist-done li::before{content:"";position:absolute;left:0;top:2px;width:15px;height:15px;border-radius:4px;border:1.5px solid #CDD1D7}
.kyo-checklist-done li.ok{color:var(--ink-2)}
.kyo-checklist-done li.ok::before{background:var(--confirmed-dot);border-color:var(--confirmed-dot)}
.kyo-checklist-done li.ok::after{content:"";position:absolute;left:5px;top:5px;width:4px;height:7px;border:solid #fff;border-width:0 1.6px 1.6px 0;transform:rotate(45deg)}
.kyo-evidence{margin:18px 0 0;font-size:12px;color:var(--faint)}
.kyo-cond-event .kyo-panel-head{margin-bottom:14px}

/* ---------- Tablet ---------- */

@media(max-width:1050px){.kyo-main{padding:24px}.kyo-sidebar{width:216px;flex-basis:216px}}
/* Diseño según el ancho disponible del área de contenido (no de la pantalla) */
@container kyomain (max-width:1080px){.kyo-two,.kyo-cond-detail{grid-template-columns:minmax(0,1fr)}}
@container kyomain (max-width:900px){
 .kyo-stats{grid-template-columns:1fr 1fr}
 .kyo-form-grid.is-4{grid-template-columns:repeat(2,minmax(0,1fr))}
 .kyo-form-grid.is-4 .span-3{grid-column:1/-1}
}
@container kyomain (max-width:560px){
 .kyo-form-grid,.kyo-form-grid.is-4{grid-template-columns:minmax(0,1fr)}
 .kyo-form-grid .span-2,.kyo-form-grid .span-3,.kyo-form-grid .full{grid-column:auto}
}

/* ---------- Móvil ---------- */
@media(max-width:760px){
 .kyo-shell{display:block;min-height:100vh;font-size:14px}
 .kyo-mobilebar{height:60px;background:var(--carbon);display:flex;align-items:center;justify-content:space-between;padding:0 14px;position:sticky;top:0;z-index:25}
 .kyo-mobilebar .kyo-mark img{width:92px}
 .kyo-mobilebar .kyo-mark small{display:none}
 .kyo-shell .kyo-menu-btn{width:42px;height:42px;border:1px solid rgba(255,255,255,.14);background:transparent;border-radius:10px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:4px;cursor:pointer;padding:0}
 .kyo-shell .kyo-menu-btn:hover{background:rgba(255,255,255,.06)}
 .kyo-menu-btn span{width:18px;height:2px;background:#fff;border-radius:2px;display:block}
 .kyo-mobile-brand{position:absolute;left:50%;transform:translateX(-50%)}
 .kyo-mobile-user{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;color:#fff;font-size:13px;font-weight:700;background:var(--red)}
 .kyo-sidebar{position:fixed;left:0;top:0;bottom:0;height:auto;width:286px;max-width:86vw;transform:translateX(-105%);transition:transform .25s ease;box-shadow:18px 0 45px rgba(0,0,0,.25);padding:22px 14px 16px;z-index:100000;overflow-y:auto}
 .kyo-shell.menu-open .kyo-sidebar{transform:translateX(0)}
 .kyo-sidebar-backdrop{position:fixed;inset:0;background:rgba(15,18,24,.5);z-index:99998;opacity:0;pointer-events:none;transition:opacity .25s}
 .kyo-shell.menu-open .kyo-sidebar-backdrop{display:block;opacity:1;pointer-events:auto}
 .kyo-shell .kyo-menu-close{display:grid;place-items:center;position:absolute;right:4px;top:-4px;border:0;background:rgba(255,255,255,.08);color:#fff;width:36px;height:36px;border-radius:9px;font-size:22px;line-height:1;cursor:pointer;padding:0}
 .kyo-sidebar a{padding:12px;font-size:15px}
 .kyo-main{padding:20px 16px 32px}
 .kyo-header{margin-bottom:16px}
 .kyo-header h1{font-size:24px}
 .kyo-header p{font-size:13px}
 .kyo-profile{display:none}
 .kyo-hero{display:block;padding:22px 20px 20px;margin-bottom:12px}
 .kyo-hero::before{right:-150px;top:-150px}
 .kyo-hero h2{font-size:27px}
 .kyo-hero p{font-size:14px}
 .kyo-hero-actions{margin-top:18px}
 .kyo-hero-actions>*{flex:1 1 auto;justify-content:center}
 .kyo-stats{grid-template-columns:1fr 1fr;margin-bottom:12px}
 .kyo-stats>a,.kyo-stats>div{padding:14px}
 .kyo-stats strong{font-size:28px;margin:10px 0 4px}
 .kyo-stats small{font-size:12px}
 .kyo-two{gap:12px}
 .kyo-col{gap:12px}
 .kyo-panel{padding:18px 16px;margin-bottom:12px;border-radius:14px}
 .kyo-panel-head{flex-wrap:wrap}
 .kyo-panel-head .kyo-btn{width:100%}
 .kyo-form-grid{grid-template-columns:1fr}
 .kyo-form-grid .full{grid-column:auto}
 .kyo-form-actions .kyo-btn{flex:1}
 .kyo-user-row{grid-template-columns:40px 1fr}
 .kyo-user-actions{grid-column:2}
 .kyo-role{grid-column:2;justify-self:start}
 .kyo-table{min-width:640px}
 .kyo-table-wrap{-webkit-overflow-scrolling:touch}
 .kyo-facts{grid-template-columns:1fr}
 .kyo-share-actions>*{flex:1 1 100%;justify-content:center}
 .kyo-cond-detail-head h3{font-size:21px}
 .kyo-account-card{padding:15px}
 .kyo-password-grid .full{grid-column:auto}
 div.kyo-login-card,div.kyo-gate{margin:28px 12px;padding:34px 22px}
 .kyo-login-card::before,.kyo-gate::before{left:22px}

 /* Agenda en móvil: lista por día en lugar de grilla (comportamiento V11 conservado) */
 .kyo-calendar{overflow:visible}
 .kyo-cal-head{display:grid;grid-template-columns:40px minmax(0,1fr) 40px;gap:10px;align-items:center;margin:2px 0 14px}
 .kyo-cal-head h3{font-size:19px;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 .kyo-shell .kyo-cal-head button{background:var(--primary);border-color:var(--primary);color:#fff}
 .kyo-week,.kyo-cal-grid{display:none!important}
 .kyo-mobile-agenda{display:grid;gap:10px}
 .kyo-mobile-day{background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px}
 .kyo-mobile-day-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:6px}
 .kyo-mobile-day-head strong{font-size:14px;font-weight:600}
 .kyo-mobile-day-head span{font-size:12.5px;color:var(--muted);white-space:nowrap}
 .kyo-shell .kyo-mobile-event{display:block;width:100%;border:0;border-left:4px solid var(--primary);border-radius:8px;background:var(--primary-soft);padding:10px 12px;text-align:left;color:var(--ink);cursor:pointer;margin-top:6px}
 .kyo-shell .kyo-mobile-event.pending{border-left-color:var(--pending-dot);background:var(--pending-bg)}
 .kyo-shell .kyo-mobile-event.confirmed{border-left-color:var(--confirmed-dot);background:var(--confirmed-bg)}
 .kyo-shell .kyo-mobile-event.rejected{border-left-color:var(--rejected-dot);background:var(--rejected-bg)}
 .kyo-mobile-event strong{display:block;font-size:14px;line-height:1.3;color:var(--ink);font-weight:600}
 .kyo-mobile-event small{display:block!important;font-size:12.5px;line-height:1.35;color:var(--ink-2);margin-top:3px}
 .kyo-mobile-empty{padding:22px 14px;text-align:center;border:1px dashed #D7DAE0;border-radius:12px;color:var(--muted);font-size:13px;background:#FBFBFC}
 .kyo-calendar-legend{margin:0 0 12px;gap:12px;font-size:12.5px}
 .kyo-detail-grid{grid-template-columns:1fr 1fr}
 .kyo-event-detail h3{font-size:21px}
 .kyo-modal{padding:12px;align-items:end}
 .kyo-modal-box{padding:24px 20px;border-radius:18px}
}
@media(max-width:390px){
 .kyo-cal-head{grid-template-columns:38px minmax(0,1fr) 38px;gap:7px}
 .kyo-cal-head h3{font-size:17px}
 .kyo-shell .kyo-cal-head button{width:38px;height:38px;min-width:38px}
 .kyo-stats strong{font-size:24px}
}
@media(prefers-reduced-motion:reduce){.kyo-shell *,.kyo-shell *::before{transition:none!important}}
@media print{
 .kyo-sidebar,.kyo-mobilebar,.kyo-header,.kyo-back,.kyo-share,.kyo-revoke,.kyo-panel-head button,.kyo-alert{display:none!important}
 .kyo-shell{background:#fff;display:block}.kyo-main{padding:0}.kyo-cond-detail{display:block}.kyo-panel{border:0;padding:0 0 16px}
}

/* ---------- V17: clientes y buscador ---------- */
.kyo-field{display:flex;flex-direction:column;gap:7px;font-weight:600;font-size:13px;color:var(--ink-2);min-width:0}
.kyo-field input[type=search]{font:400 14px/1.4 var(--font);padding:11px 13px;border:1px solid #D9DCE1;border-radius:10px;background:#fff;color:var(--ink);outline:none;width:100%;min-height:44px;-webkit-appearance:none;appearance:none}
.kyo-field input[type=search]:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(218,41,28,.14)}
.kyo-field input:disabled{background:#F5F5F5;color:var(--muted)}
.kyo-ac{position:relative}
.kyo-ac-list{position:absolute;left:0;right:0;top:calc(100% - 4px);z-index:50;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 18px 40px -12px rgba(0,0,0,.22);padding:6px;max-height:320px;overflow:auto}
.kyo-ac-list[hidden]{display:none}
.kyo-shell .kyo-ac-item{display:block;width:100%;text-align:left;border:0;background:none;padding:9px 10px;border-radius:8px;cursor:pointer;color:var(--ink);font:inherit}
.kyo-shell .kyo-ac-item:hover,.kyo-shell .kyo-ac-item.is-active{background:var(--primary-soft);color:var(--ink)}
.kyo-ac-item strong{display:block;font-size:14px;font-weight:600}
.kyo-ac-item small{display:block;color:var(--muted);font-size:12.5px;margin-top:1px}
.kyo-ac-empty{padding:10px;color:var(--muted);font-size:13px;font-weight:400}
.kyo-ac-picked{font-weight:400;color:var(--confirmed);font-size:12.5px}
.kyo-ac-picked[hidden]{display:none}
.kyo-stats.kyo-stats-clients{grid-template-columns:minmax(0,1fr)}
.kyo-stats-clients>div{display:flex;align-items:center;gap:18px}
.kyo-stats-clients strong{margin:0;order:-1}
.kyo-stats-clients span::before{display:none}
.kyo-head-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.kyo-client-import[hidden],.kyo-client-new[hidden]{display:none}
.kyo-import-form{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.kyo-file{position:relative;display:flex;align-items:center;gap:12px;flex:1;min-width:260px;padding:8px 8px 8px 8px;border:1.5px dashed #CFCFCF;border-radius:12px;cursor:pointer}
.kyo-file input{position:absolute;inset:0;opacity:0;cursor:pointer}
.kyo-file span{display:inline-flex;align-items:center;min-height:36px;padding:0 14px;border-radius:8px;background:var(--carbon);color:#fff;font-weight:600;font-size:13px;text-transform:uppercase;letter-spacing:.05em}
.kyo-file em{font-style:normal;color:var(--muted);font-size:13.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kyo-file:focus-within{border-color:var(--ink)}
.kyo-search-form{display:flex;gap:8px;align-items:flex-start}
.kyo-search-form .kyo-search{flex:1}
.kyo-search-form .kyo-ghost{min-height:46px}
.kyo-shell .kyo-link-btn{border:0;background:none;padding:0;margin-left:12px;color:var(--ink-2);font:600 13px var(--font);cursor:pointer}
.kyo-shell .kyo-link-btn:hover{color:var(--ink);text-decoration:underline;background:none}
.kyo-shell .kyo-link-btn.is-danger{color:var(--primary)}
.kyo-td-actions form{display:inline;margin:0}
.kyo-pager{display:flex;gap:4px;flex-wrap:wrap;margin-top:14px}
.kyo-pager a,.kyo-pager span{min-width:34px;height:34px;padding:0 8px;display:grid;place-items:center;border-radius:8px;font-size:13px;color:var(--ink-2)!important;border:1px solid var(--line)}
.kyo-pager span.is-current{background:var(--carbon);color:#fff!important;border-color:var(--carbon)}
.kyo-pager a:hover{border-color:var(--ink)}
@container kyomain (max-width:560px){.kyo-search-form{flex-wrap:wrap}.kyo-td-actions{white-space:normal}}
