:root{--bg:#F5F7F7;--surface:#fff;--surface2:#F0F2F3;--surface3:#E7EBEC;--text:#12171A;--muted:#5A656E;--text-3:#8B959C;--border:#E2E6E8;--border-strong:#CBD2D6;--brand:#12171A;--brand-2:#5A656E;--accent:#0D9488;--accent-2:#0B7F75;--primary-weak:#E3F3F1;--cta:#EA580C;--cta-2:#C9490A;--on-accent:#FFFFFF;--ok:#15803D;--success-weak:#E4F2E9;--warn:#B45309;--warn-weak:#FAF0DE;--danger:var(--danger);--danger-weak:#FBE9E9;--neutral-weak:#EDEFF1;--info:#0369a1;--font-mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;--shadow:0 1px 2px rgba(16,22,26,.06);--shadow-lg:0 2px 8px rgba(16,22,26,.09);--dock:74px;--safe:env(safe-area-inset-bottom,0px);--safe-top:env(safe-area-inset-top,0px);font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color-scheme:light}
html[data-theme="dark"]{--bg:#0D1114;--surface:#141A1E;--surface2:#1A2226;--surface3:#232D32;--text:#E4E9EB;--muted:#97A4AB;--text-3:#6C7B83;--border:#263238;--border-strong:#3A474D;--brand:#E4E9EB;--brand-2:#97A4AB;--accent:#2DD4BF;--accent-2:#5EEAD4;--primary-weak:#0F2B29;--cta:#F97316;--cta-2:#FB923C;--on-accent:#150C06;--ok:#4ade80;--success-weak:#122A1D;--warn:#fbbf24;--warn-weak:#2A2110;--danger:#F87171;--danger-weak:#2E1819;--neutral-weak:#1F282C;--info:#38bdf8;--shadow:0 1px 2px rgba(0,0,0,.4);--shadow-lg:0 2px 10px rgba(0,0,0,.5);color-scheme:dark}
:root{--elev-1:0 1px 2px rgb(15 23 42 / .05),0 1px 3px rgb(15 23 42 / .06);--elev-2:0 2px 6px rgb(15 23 42 / .06),0 8px 24px rgb(15 23 42 / .08);--elev-3:0 12px 32px rgb(15 23 42 / .14),0 4px 10px rgb(15 23 42 / .08);--fg:var(--text);--warn-text:rgb(153 66 0);--ok-text:rgb(13 107 63);--danger-text:rgb(180 35 42);--text-2:var(--muted);--ux-out:cubic-bezier(.2,.9,.3,1)}
html[data-theme="dark"]{--elev-1:0 1px 2px rgb(0 0 0 / .35);--elev-2:0 2px 8px rgb(0 0 0 / .35),0 8px 24px rgb(0 0 0 / .3);--elev-3:0 16px 40px rgb(0 0 0 / .5),0 4px 12px rgb(0 0 0 / .35);--warn-text:var(--warn);--ok-text:var(--ok);--danger-text:var(--danger)}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text)}body{min-height:100vh;min-height:100dvh;font-size:14px}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}.hidden,[hidden]{display:none!important}
*{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:999px;border:2px solid transparent;background-clip:padding-box}*::-webkit-scrollbar-thumb:hover{background:var(--muted)}*::-webkit-scrollbar-corner{background:transparent}
.wj-login{min-height:100vh;min-height:100dvh;display:flex;background:var(--surface)}
.wj-login-shell{width:100%;display:grid;grid-template-columns:minmax(320px,55%) 1fr;background:var(--surface);min-height:100vh;min-height:100dvh}
.wj-login-art{padding:40px;display:flex;flex-direction:column;justify-content:space-between;color:#fff;position:relative;overflow:hidden;background-image:var(--login-bg-image,none),linear-gradient(160deg,color-mix(in srgb,var(--accent) 55%,#0b1220) 0%,#0b1220 100%);background-size:cover;background-position:center}
.wj-login-art:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(6,10,20,.1) 0%,rgba(6,10,20,.15) 45%,rgba(6,10,20,.82) 100%)}
.wj-login-art>*{position:relative;z-index:1}
.wj-brand{font-weight:800;letter-spacing:.02em;font-size:16px}
.wj-login-art h1{font-size:clamp(28px,3vw,38px);line-height:1.12;max-width:420px;margin:0 0 8px;letter-spacing:-.02em;font-weight:800;white-space:pre-line}
.wj-login-art p{max-width:400px;color:rgba(255,255,255,.78);font-size:13.5px;line-height:1.6;margin:0 0 14px}
.wj-login-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.9)}
.wj-login-art small{color:rgba(255,255,255,.5);font-size:10.5px;letter-spacing:.04em}
.wj-login-panel{display:grid;place-items:center;padding:32px;position:relative}
.wj-login-card{width:min(400px,100%);padding:0;background:transparent;border:0;border-radius:0;box-shadow:none}
.wj-login-card h2{font-size:26px;margin:0 0 8px;letter-spacing:-.01em}
.wj-login-card>p{color:var(--muted);margin:0 0 26px;font-size:13px}
.wj-inline-link{background:transparent;border:0;padding:0;color:var(--accent);font-weight:650;cursor:pointer;font-size:13px}
.wj-inline-link:hover{text-decoration:underline}
.wj-social-row{display:flex;gap:10px;flex-wrap:wrap}
.wj-social-row>div{flex:1}
.wj-shell{min-height:100vh;display:grid;grid-template-columns:var(--sidebar) minmax(0,1fr)}.wj-sidebar{position:sticky;top:0;height:100vh;background:var(--surface);border-right:1px solid var(--border);padding:18px 14px;display:flex;flex-direction:column;z-index:30}.wj-side-head{height:48px;display:flex;align-items:center;justify-content:space-between;padding:0 8px 12px}.wj-logo{font-weight:900;font-size:18px;letter-spacing:-.03em}.wj-release{font-size:11px;color:var(--muted);padding:4px 7px;background:var(--surface2);border-radius:999px}.wj-nav{display:flex;flex-direction:column;gap:4px;overflow:auto;padding-right:2px}.wj-nav-section{padding:14px 10px 6px;color:var(--muted);font-size:11px;font-weight:800;letter-spacing:.09em;text-transform:uppercase}.wj-nav-group{display:flex;flex-direction:column;gap:3px;margin-top:6px}.wj-nav-group:first-of-type{margin-top:0}.wj-nav-group-label{padding:14px 10px 6px;color:var(--muted);font-size:11px;font-weight:800;letter-spacing:.09em;text-transform:uppercase}.wj-nav-btn{border:0;background:transparent;display:flex;align-items:center;gap:10px;width:100%;padding:10px 11px;border-radius:12px;text-align:left;color:var(--muted);font-weight:650}.wj-nav-btn:hover{background:var(--surface2);color:var(--text)}.wj-nav-btn.active{background:var(--text);color:var(--surface)}.wj-nav-icon{width:22px;height:22px;display:grid;place-items:center;font-size:15px}.wj-side-foot{margin-top:auto;padding:10px 4px}.wj-user-chip{display:flex;align-items:center;gap:10px;padding:9px;border:1px solid var(--border);border-radius:16px;background:var(--surface2)}.wj-avatar{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--text);color:var(--surface);font-weight:800}.wj-user-meta{min-width:0;flex:1}.wj-user-meta strong,.wj-user-meta span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wj-user-meta span{font-size:11px;color:var(--muted)}
.wj-main{min-width:0}.wj-topbar{height:var(--top);position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--bg) 84%,transparent);backdrop-filter:blur(20px);display:flex;align-items:center;gap:12px;padding:0 22px;border-bottom:1px solid color-mix(in srgb,var(--border) 72%,transparent)}.wj-title-wrap{min-width:0;flex:1}.wj-eyebrow{font-size:11px;color:var(--muted);font-weight:700}.wj-page-title{font-size:20px;font-weight:800;letter-spacing:-.025em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wj-top-actions{display:flex;gap:8px;align-items:center}.wj-content{padding:22px;max-width:1800px;margin:0 auto}.wj-mobile-dock{display:none}
.wj-impersonation-bar{display:flex;align-items:center;gap:10px;padding:8px 22px;background:var(--warn-weak,color-mix(in srgb,var(--warn) 15%,var(--surface)));color:var(--warn);font-size:12px;font-weight:700;border-bottom:1px solid color-mix(in srgb,var(--warn) 30%,transparent)}.wj-impersonation-bar span{flex:1;min-width:0}.wj-impersonation-bar .wj-icon{flex:0 0 auto}
.wj-btn{border:1px solid var(--hairline,var(--border));background:var(--surface-raised,var(--surface));min-height:36px;padding:0 14px;border-radius:var(--radius-control,11px);font-weight:700;font-size:12px;display:inline-flex;align-items:center;justify-content:center;gap:8px;box-shadow:none;transition:transform .12s ease,background .12s ease,border-color .12s ease,box-shadow .12s ease;cursor:pointer}.wj-btn:hover{border-color:var(--border-strong);background:var(--surface2,var(--surface-sunken))}.wj-btn:active{transform:scale(.98)}.wj-btn:focus-visible{outline:none;box-shadow:var(--focus-ring)}.wj-btn.primary,.wj-btn.accent{background:var(--accent);color:#fff;border-color:var(--accent);box-shadow:none}.wj-btn.primary:hover,.wj-btn.accent:hover{background:color-mix(in srgb,var(--accent) 88%,#000)}.wj-btn.cta{background:var(--cta);color:#fff;border-color:var(--cta);box-shadow:none}.wj-btn.cta:hover{background:color-mix(in srgb,var(--cta) 88%,#000)}.wj-btn.danger{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 32%,var(--border))}.wj-btn.success{color:var(--ok);border-color:color-mix(in srgb,var(--ok) 32%,var(--border))}.wj-btn.success:hover{background:color-mix(in srgb,var(--ok) 10%,var(--surface))}.wj-btn.ghost{border-color:transparent;background:transparent;box-shadow:none}.wj-btn.icon,.wj-icon-button{width:40px;padding:0;border-radius:var(--radius-control,11px)}.wj-btn.sm{min-height:34px;padding:0 10px;font-size:12px}.wj-btn.compact{min-height:38px;padding:0 11px}.wj-btn:disabled{opacity:.45;cursor:not-allowed}
.wj-field{display:grid;gap:7px}.wj-field>span{font-size:12px;font-weight:750;color:var(--muted)}.wj-input,.wj-select,.wj-textarea{width:100%;border:1px solid var(--hairline,var(--border-strong));background:var(--surface-raised,var(--surface));border-radius:var(--radius-control,12px);min-height:44px;padding:9px 12px;outline:none;box-shadow:0 1px 2px rgba(16,24,40,.025);transition:border-color .16s ease,box-shadow .16s ease}.wj-textarea{min-height:44px;max-height:320px;resize:none;overflow-y:auto}.wj-input:focus,.wj-select:focus,.wj-textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 12%,transparent)}.wj-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.wj-span-2{grid-column:1/-1}.wj-form-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:6px}
.wj-page-head{display:flex;align-items:flex-end;gap:16px;margin-bottom:18px}.wj-page-head>div:first-child{flex:1}.wj-page-head h1{margin:0;font-size:26px;letter-spacing:-.035em}.wj-page-head p{margin:5px 0 0;color:var(--muted)}.wj-toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:14px}.wj-search{min-width:240px;flex:1;max-width:480px;position:relative}.wj-search input{padding-left:36px}.wj-search:before{content:"⌕";position:absolute;left:12px;top:10px;color:var(--muted);z-index:1}.wj-tabs{display:flex;gap:4px;padding:4px;background:var(--surface3);border-radius:12px;width:max-content;max-width:100%;overflow:auto}.wj-tab{border:0;background:transparent;padding:8px 12px;border-radius:8px;font-weight:750;color:var(--muted);white-space:nowrap}.wj-tab.active{background:var(--surface);color:var(--text);box-shadow:0 1px 4px rgba(0,0,0,.07)}
.wj-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.wj-stat,.wj-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);box-shadow:0 1px 0 rgba(0,0,0,.02)}.wj-stat{padding:17px}.wj-stat span{color:var(--muted);font-size:12px;font-weight:700}.wj-stat strong{display:block;font-size:28px;margin-top:6px;letter-spacing:-.04em}.wj-card{padding:18px}.wj-card h3{margin:0 0 12px;font-size:15px}.wj-card.soft{background:var(--surface2)}.wj-dashboard-grid{display:grid;grid-template-columns:2fr 1fr;gap:16px;margin-top:16px}.wj-stack{display:grid;gap:12px;min-width:0}.wj-stack>*{min-width:0}.wj-empty{padding:42px 22px;text-align:center;border:1px dashed var(--border-strong);border-radius:16px;color:var(--muted);background:var(--surface2)}
.wj-workspace{display:grid;grid-template-columns:minmax(320px,44%) minmax(420px,1fr);height:calc(100vh - var(--top) - 44px);min-height:540px;border:1px solid var(--border);background:var(--surface);border-radius:20px;overflow:hidden}.wj-master{min-width:0;border-right:1px solid var(--border);display:flex;flex-direction:column;background:var(--surface)}.wj-master-head{padding:14px;border-bottom:1px solid var(--border);display:grid;gap:10px}.wj-list{overflow:auto;min-height:0}.wj-row{padding:13px 14px;border-bottom:1px solid var(--border);display:grid;grid-template-columns:1fr auto;gap:10px;cursor:pointer}.wj-row:hover{background:var(--surface2)}.wj-row.active{background:color-mix(in srgb,var(--accent) 8%,var(--surface));box-shadow:inset 3px 0 var(--accent)}.wj-row-title{font-weight:780;line-height:1.25}.wj-row-meta{display:flex;gap:7px;flex-wrap:wrap;margin-top:6px;color:var(--muted);font-size:11px}.wj-detail{min-width:0;overflow:auto;background:var(--surface)}.wj-detail-head{position:sticky;top:0;background:color-mix(in srgb,var(--surface) 92%,transparent);backdrop-filter:blur(16px);z-index:5;padding:16px 18px;border-bottom:1px solid var(--border);display:flex;align-items:flex-start;gap:12px}.wj-detail-head>div:first-child{flex:1}.wj-detail-head h2{margin:0;font-size:20px;letter-spacing:-.025em}.wj-detail-body{padding:18px}.wj-kv{display:grid;grid-template-columns:150px 1fr;gap:10px 18px;padding:12px 0;border-bottom:1px solid var(--border)}.wj-kv dt{color:var(--muted);font-size:12px;font-weight:700}.wj-kv dd{margin:0;min-width:0;word-break:break-word}.wj-section{margin:20px 0}.wj-section-title{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.wj-section-title h3{margin:0;font-size:14px}.wj-timeline{display:grid;gap:10px}.wj-event{display:grid;grid-template-columns:10px 1fr;gap:10px}.wj-event-dot{width:8px;height:8px;background:var(--accent);border-radius:50%;margin-top:6px}.wj-event-body{padding:0 0 14px;border-bottom:1px solid var(--border)}
.wj-badge{display:inline-flex;align-items:center;gap:5px;min-height:20px;padding:0 8px;border-radius:6px;background:var(--neutral-weak);color:var(--muted);font-size:11px;font-weight:600}.wj-badge.ok{background:var(--success-weak);color:var(--ok)}.wj-badge.warn{background:var(--warn-weak);color:var(--warn)}.wj-badge.danger{background:var(--danger-weak);color:var(--danger)}.wj-badge.info,.wj-badge.primary{background:var(--primary-weak);color:var(--accent)}.wj-badge.neutral{background:var(--neutral-weak);color:var(--muted)}
.wj-table-wrap{overflow:auto;border:1px solid var(--border);border-radius:16px;background:var(--surface);width:100%;min-width:0}.wj-table{width:100%;border-collapse:collapse;min-width:760px}.wj-table th,.wj-table td{text-align:left;padding:9px 12px;border-bottom:1px solid var(--border);vertical-align:middle;font-variant-numeric:tabular-nums}.wj-table td.mono,.wj-mono,.wj-kv dd.mono,.wj-detail-head .mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.wj-table th{font-size:11px;color:var(--muted);font-weight:800;background:var(--surface2);position:sticky;top:0}.wj-table tbody tr:hover{background:var(--surface2)}
.wj-modal-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.42);backdrop-filter:blur(5px);z-index:80;display:grid;place-items:center;padding:20px}.wj-modal{width:min(760px,100%);max-height:min(88vh,900px);overflow:auto;background:var(--surface);border:1px solid var(--border);border-radius:24px;box-shadow:var(--shadow-lg)}.wj-modal-head{position:sticky;top:0;background:var(--surface);z-index:3;display:flex;align-items:center;gap:12px;padding:18px;border-bottom:1px solid var(--border)}.wj-modal-head h2{margin:0;flex:1;font-size:20px}.wj-modal-body{padding:18px;overflow-x:hidden;min-width:0}.wj-toast-root{position:fixed;right:18px;top:18px;z-index:100;display:grid;gap:8px}.wj-toast{max-width:380px;padding:12px 14px;background:var(--text);color:var(--surface);border-radius:12px;box-shadow:var(--shadow);font-weight:700}.wj-toast.danger{background:color-mix(in srgb,var(--danger) 78%,#000);color:#fff}.wj-toast.ok{background:#166534;color:#fff}
.wj-skeleton{height:14px;border-radius:8px;background:linear-gradient(90deg,var(--surface3),var(--border),var(--surface3));background-size:200% 100%;animation:shimmer 1.3s linear infinite}.wj-skeleton.lg{height:72px}.wj-skeleton-row{display:grid;gap:9px;padding:14px;border-bottom:1px solid var(--border)}@keyframes shimmer{to{background-position:-200% 0}}
.wj-product-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.wj-product{padding:14px;border:1px solid var(--border);border-radius:16px;background:var(--surface);cursor:pointer}.wj-product:hover{border-color:var(--accent)}.wj-product strong{display:block}.wj-product small{color:var(--muted)}
.wj-fab{position:fixed;right:26px;bottom:26px;width:56px;height:56px;border-radius:20px;border:0;background:var(--text);color:var(--surface);box-shadow:var(--shadow-lg);font-size:24px;z-index:40}.wj-back-mobile{display:none}
@media(max-width:1179px){:root{--sidebar:84px}.wj-nav-btn{justify-content:center;padding:10px}.wj-nav-label,.wj-nav-section,.wj-nav-group-label,.wj-user-meta,.wj-release,.wj-nav-count{display:none}.wj-side-head{justify-content:center}.wj-user-chip{justify-content:center}.wj-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.wj-product-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.wj-workspace{grid-template-columns:minmax(300px,42%) 1fr}}
@media(max-width:699px){:root{--top:60px}.wj-shell{display:block}.wj-sidebar{display:none}.wj-topbar{padding:0 14px}.wj-content{padding:14px 12px calc(var(--dock) + var(--safe) + 18px)}.wj-mobile-dock{display:flex;position:fixed;left:10px;right:10px;bottom:calc(10px + var(--safe));height:64px;background:color-mix(in srgb,var(--surface) 90%,transparent);backdrop-filter:blur(24px);border:1px solid var(--border);border-radius:20px;box-shadow:var(--shadow-lg);z-index:50;padding:6px;gap:4px}.wj-mobile-dock button{flex:1;border:0;background:transparent;border-radius:16px;color:var(--muted);font-size:11px;font-weight:800;display:grid;place-items:center;gap:2px}.wj-mobile-dock button.active{background:var(--text);color:var(--surface)}.wj-mobile-dock b{font-size:18px}.wj-grid,.wj-dashboard-grid{grid-template-columns:1fr}.wj-page-head{align-items:flex-start}.wj-workspace{display:block;height:auto;min-height:calc(100vh - var(--top) - 110px);border-radius:16px}.wj-master{border-right:0}.wj-detail{display:none;position:fixed;inset:var(--top) 0 0 0;z-index:45;background:var(--bg);padding-bottom:calc(var(--dock) + var(--safe))}.wj-workspace.detail-open .wj-detail{display:block}.wj-workspace.detail-open .wj-master{visibility:hidden}.wj-back-mobile{display:inline-flex}.wj-detail-head{top:0}.wj-form-grid{grid-template-columns:1fr}.wj-span-2{grid-column:auto}.wj-modal-backdrop{padding:0;align-items:end}.wj-modal{width:100%;max-height:92vh;border-radius:22px 22px 0 0;border-bottom:0}.wj-product-grid{grid-template-columns:1fr}.wj-fab{right:18px;bottom:calc(var(--dock) + var(--safe) + 18px)}.wj-login{display:block}.wj-kv{grid-template-columns:110px 1fr}}
@media(max-width:520px){.wj-page-head{display:block}.wj-page-head .wj-btn{margin-top:12px}.wj-toolbar{align-items:stretch}.wj-search{min-width:100%;max-width:none}.wj-grid{grid-template-columns:1fr}.wj-top-actions .wj-btn span{display:none}.wj-card{padding:14px}.wj-row{padding:12px}.wj-detail-body{padding:14px}}

/* Native V2 continuous layout contract */
html[data-layout="desktop"] .wj-content{padding-inline:clamp(20px,2vw,34px)}
html[data-layout="desktop"] .wj-workspace{grid-template-columns:minmax(340px,42%) minmax(520px,1fr)}
html[data-layout="tablet"]{--sidebar:82px}
html[data-layout="tablet"] .wj-nav-label,html[data-layout="tablet"] .wj-nav-section,html[data-layout="tablet"] .wj-nav-group-label,html[data-layout="tablet"] .wj-user-meta,html[data-layout="tablet"] .wj-release{display:none}
html[data-layout="tablet"] .wj-nav-btn{justify-content:center}
html[data-layout="tablet"] .wj-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
html[data-layout="tablet"] .wj-workspace{grid-template-columns:minmax(300px,40%) minmax(0,1fr);height:calc(100dvh - var(--top) - 44px)}
html[data-layout="mobile"] .wj-shell{display:block}
html[data-layout="mobile"] .wj-sidebar{display:none}
html[data-layout="mobile"] .wj-content{padding:14px 12px calc(var(--dock) + var(--safe) + 18px)}
html[data-layout="mobile"] .wj-mobile-dock{display:flex}
html[data-layout="mobile"] .wj-workspace{display:block;height:auto;min-height:calc(100dvh - var(--top) - 110px)}
html[data-layout="mobile"] .wj-master{border-right:0}
html[data-layout="mobile"] .wj-detail{display:none;position:fixed;inset:var(--top) 0 0;z-index:45;background:var(--bg);padding-bottom:calc(var(--dock) + var(--safe));overflow:auto}
html[data-layout="mobile"] .wj-workspace.detail-open .wj-detail{display:block}
html[data-layout="mobile"] .wj-workspace.detail-open .wj-master{visibility:hidden}
html[data-layout="mobile"] .wj-back-mobile{display:inline-flex}
html[data-layout="mobile"] .wj-grid,html[data-layout="mobile"] .wj-dashboard-grid,html[data-layout="mobile"] .wj-product-grid{grid-template-columns:1fr}
html[data-layout="mobile"] .wj-form-grid{grid-template-columns:1fr}
html[data-layout="mobile"] .wj-span-2{grid-column:auto}
html[data-layout="mobile"] .wj-modal-backdrop{padding:0;align-items:end}
html[data-layout="mobile"] .wj-modal{width:100%;max-height:92dvh;border-radius:22px 22px 0 0;border-bottom:0}
html[data-layout="mobile"] .wj-fab{right:18px;bottom:calc(var(--dock) + var(--safe) + 18px)}

/* Native V2 parity interaction components */
.wj-actionbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;padding:10px 0 2px}.wj-bottom-actions{position:sticky;bottom:0;z-index:7;display:flex;gap:8px;flex-wrap:wrap;padding:12px 0;background:linear-gradient(180deg,transparent,var(--surface) 26%)}
.wj-doc-row{display:grid!important;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px!important}.wj-doc-icon{font-size:20px}.wj-doc-copy{min-width:0}.wj-doc-copy strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wj-doc-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.wj-compact-field{display:grid;gap:4px;min-width:150px}.wj-compact-field>span{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:800}.wj-compact-field .wj-input,.wj-compact-field .wj-select{min-height:38px;padding-block:6px}
.wj-pager{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 2px;color:var(--muted);font-size:12px}.wj-pager>div{display:flex;align-items:center;gap:10px}.wj-pager .wj-select{width:auto;min-height:34px;padding-block:4px}
.wj-signature{display:block;width:100%;height:220px;border:1px solid var(--border-strong);border-radius:14px;background:var(--surface2);touch-action:none}.wj-help{color:var(--muted);line-height:1.55}
.wj-calendar-list{display:grid;gap:12px;max-height:68vh;overflow:auto}.wj-calendar-list .wj-card{padding:14px}
.wj-cv-layout{display:grid;grid-template-columns:minmax(320px,.8fr) minmax(0,1.35fr);gap:14px;min-height:620px}.wj-pdf-pane{min-height:620px;border:1px solid var(--border);border-radius:20px;overflow:hidden;background:var(--surface2)}.wj-pdf-pane iframe{display:block;width:100%;height:100%;min-height:620px;border:0}.wj-candidate-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.wj-candidate{border:1px solid var(--border);background:var(--surface);border-radius:16px;padding:14px;cursor:pointer}.wj-candidate:hover,.wj-candidate.active{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 10%,transparent)}
.wj-kanban{display:grid;grid-template-columns:repeat(3,minmax(240px,1fr));gap:12px;overflow:auto}.wj-kanban-col{min-width:240px;background:var(--surface2);border:1px solid var(--border);border-radius:16px;padding:10px}.wj-kanban-col h3{margin:4px 4px 10px}.wj-kanban-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:12px;margin-bottom:8px;cursor:pointer}.wj-split-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}.wj-metric-strip{display:flex;gap:10px;overflow:auto;padding-bottom:4px}.wj-metric-strip .wj-stat{min-width:160px}
html[data-layout="tablet"] .wj-cv-layout{grid-template-columns:minmax(280px,.72fr) minmax(0,1.28fr)}
html[data-layout="tablet"] .wj-candidate-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
html[data-layout="tablet"] .wj-doc-row{grid-template-columns:auto minmax(0,1fr)}html[data-layout="tablet"] .wj-doc-actions{grid-column:1/-1;justify-content:flex-start}
html[data-layout="mobile"] .wj-actionbar{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}html[data-layout="mobile"] .wj-actionbar .wj-btn{width:100%;white-space:normal;text-align:center}
html[data-layout="mobile"] .wj-drawer-foot{flex-wrap:wrap}
html[data-layout="mobile"] .wj-drawer-foot .wj-actionbar{width:100%}
html[data-layout="mobile"] .wj-bottom-actions{position:fixed;left:0;right:0;bottom:calc(var(--dock) + var(--safe));padding:10px 12px;background:color-mix(in srgb,var(--surface) 96%,transparent);border-top:1px solid var(--border);backdrop-filter:blur(20px)}
html[data-layout="mobile"] .wj-doc-row{grid-template-columns:auto minmax(0,1fr)}html[data-layout="mobile"] .wj-doc-actions{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}html[data-layout="mobile"] .wj-doc-actions .wj-btn{width:100%}
html[data-layout="mobile"] .wj-pager{display:grid;grid-template-columns:1fr auto}html[data-layout="mobile"] .wj-pager>span{grid-column:1/-1}
html[data-layout="mobile"] .wj-signature{height:180px}.wj-signature{max-height:40vh}
html[data-layout="mobile"] .wj-cv-layout{display:block}.wj-cv-layout .wj-pdf-pane{min-height:70dvh}html[data-layout="mobile"] .wj-pdf-pane iframe{min-height:70dvh}
html[data-layout="mobile"] .wj-candidate-grid{grid-template-columns:1fr}.wj-candidate-grid{min-width:0}
html[data-layout="mobile"] .wj-kanban{grid-template-columns:repeat(3,82vw);scroll-snap-type:x proximity}.wj-kanban-col{scroll-snap-align:start}
@media(max-width:520px){.wj-actionbar{grid-template-columns:1fr!important}.wj-split-actions{grid-template-columns:1fr}}
.wj-delivery-days{display:grid;gap:8px;margin-top:10px}.wj-delivery-day{display:grid;grid-template-columns:minmax(100px,1fr) 120px auto 120px;gap:8px;align-items:center;padding:8px 10px;border:1px solid var(--border);border-radius:12px}.wj-delivery-day .wj-input{min-height:34px}.wj-card.soft.active{border-color:color-mix(in srgb,var(--accent) 55%,var(--border));background:color-mix(in srgb,var(--accent) 5%,var(--surface))}@media(max-width:699px){.wj-delivery-day{grid-template-columns:1fr 1fr}.wj-delivery-day label{grid-column:1/-1}.wj-delivery-day span{display:none}}

/* === WJT Product Redesign 2026 === */
:root{
 --rail:232px;--surface-raised:#ffffff;--surface-sunken:#f6f8fb;--focus-ring:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent);
 --shadow-soft:0 8px 28px rgba(15,23,42,.07);
 --shadow-float:0 20px 60px rgba(15,23,42,.16)
}
html[data-theme="dark"]{--surface-raised:#121a27;--surface-sunken:#0e1520;--shadow-soft:0 10px 28px rgba(0,0,0,.25);--shadow-float:0 24px 70px rgba(0,0,0,.45)}
html,body{overflow-x:hidden}.wj-icon{display:block;flex:0 0 auto}.wj-app-rail{width:var(--rail);padding:16px 12px;background:color-mix(in srgb,var(--surface) 96%,transparent);box-shadow:1px 0 0 var(--border)}
.wj-brand-lockup{width:100%;border:0;background:transparent;display:flex;align-items:center;gap:10px;padding:6px 4px;color:var(--text);text-align:left}.wj-brand-mark{width:36px;height:36px;border-radius:12px;display:grid;place-items:center;background:var(--accent);color:#fff;font-size:12px;font-weight:900;letter-spacing:-.03em;box-shadow:none}.wj-brand-copy{display:grid;line-height:1.05}.wj-brand-copy b{font-size:15px;letter-spacing:-.02em}.wj-brand-copy small{font-size:11px;color:var(--muted);font-weight:700;margin-top:3px}
.wj-nav{gap:2px}.wj-nav-section{padding:16px 10px 7px;font-size:11px;letter-spacing:.13em}.wj-nav-btn{min-height:42px;padding:9px 10px;border-radius:12px;gap:11px;font-size:13px;transition:background .16s,color .16s,transform .16s}.wj-nav-btn:hover{transform:translateX(1px)}.wj-nav-btn.active{background:color-mix(in srgb,var(--accent) 12%,var(--surface));color:var(--accent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 20%,transparent)}.wj-nav-count{margin-left:auto;flex:none;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:color-mix(in srgb,var(--accent) 16%,var(--surface2));color:var(--accent);font-size:11px;font-weight:750;display:inline-flex;align-items:center;justify-content:center;line-height:1}.wj-nav-btn.active .wj-nav-count{background:color-mix(in srgb,var(--accent) 26%,var(--surface));}.wj-side-foot{display:grid;gap:6px}.wj-user-chip{width:100%;border-color:transparent;background:var(--surface2);min-width:0}.wj-user-chip:hover{border-color:var(--border)}
.wj-topbar{height:var(--top);padding:0 24px;background:color-mix(in srgb,var(--surface) 82%,transparent);backdrop-filter:blur(24px) saturate(140%)}.wj-global-search{width:min(360px,32vw);height:40px;border:1px solid var(--border);border-radius:12px;background:var(--surface2);display:flex;align-items:center;gap:8px;padding:0 11px;color:var(--muted)}.wj-global-search input{border:0;outline:0;background:transparent;width:100%;min-width:0;color:var(--text)}.wj-top-avatar{width:38px;height:38px;border:0;border-radius:50%;background:var(--text);color:var(--surface);font-size:11px;font-weight:900}.wj-notification-btn{position:relative}.wj-notification-btn sup{position:absolute;right:-3px;top:-4px;min-width:18px;height:18px;padding:0 4px;border-radius:999px;background:var(--danger);color:#fff;display:grid;place-items:center;font-size:11px}.wj-btn.compact{min-height:38px;padding:0 11px}
.wj-content{padding:26px;max-width:1760px}.wj-page-head{align-items:center;margin-bottom:20px}.wj-page-head h1{font-size:28px;font-weight:840}.wj-page-head p{font-size:13px;max-width:760px;line-height:1.55}.wj-card,.wj-stat{border-color:color-mix(in srgb,var(--border) 88%,transparent);box-shadow:var(--shadow-soft)}.wj-card{border-radius:20px}.wj-stat{border-radius:16px}.wj-input:focus-visible,.wj-select:focus-visible,.wj-textarea:focus-visible,.wj-nav-btn:focus-visible{outline:none;box-shadow:var(--focus-ring)}
.wj-toolbar{padding:10px 0;margin-bottom:10px}.wj-filter-trigger b{min-width:19px;height:19px;padding:0 5px;border-radius:999px;background:var(--surface3);display:grid;place-items:center;font-size:11px}.wj-filter-chips{display:flex;gap:6px;flex-wrap:wrap;margin:4px 0 10px}.wj-filter-chip{border:1px solid var(--border);background:var(--surface2);color:var(--muted);min-height:30px;padding:0 9px;border-radius:999px;font-size:11px;font-weight:750}.wj-filter-panel{display:none;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;padding:12px;margin:0 0 14px;border:1px solid var(--border);border-radius:16px;background:var(--surface-raised);box-shadow:var(--shadow-soft)}.wj-filter-panel.open{display:grid}.wj-filter-panel>.wj-select{max-width:none!important}.wj-filter-sheet{position:relative;z-index:8}
.wj-form-grid{gap:16px}.wj-field{gap:7px}.wj-field>span{font-size:11px;letter-spacing:.015em}.wj-form-actions{position:sticky;bottom:0;margin:0 -1px -1px;background:var(--surface-raised,var(--surface));backdrop-filter:blur(16px);padding:14px 0;border-top:1px solid var(--hairline,var(--border));z-index:2}
.wj-workspace{height:calc(100dvh - var(--top) - 52px);border-radius:24px;box-shadow:var(--shadow-soft);grid-template-columns:minmax(320px,420px) minmax(0,1fr)}.wj-master-head{padding:14px 14px 10px;background:var(--surface)}.wj-row{padding:14px 15px}.wj-row.active{background:color-mix(in srgb,var(--accent) 8%,var(--surface));box-shadow:inset 3px 0 var(--accent)}.wj-detail-head{padding:18px 20px}.wj-detail-body{padding:20px}.wj-detail-head h2{font-size:22px}.wj-kv{grid-template-columns:minmax(110px,150px) minmax(0,1fr)}
.wj-settings-workspace{display:grid;grid-template-columns:250px minmax(0,1fr);gap:18px;align-items:start}.wj-settings-sidebar{position:sticky;top:calc(var(--top) + 18px);border:1px solid var(--border);background:var(--surface-raised);border-radius:20px;padding:10px;box-shadow:var(--shadow-soft)}.wj-settings-title{font-size:12px;font-weight:850;color:var(--muted);padding:8px 10px 12px;text-transform:uppercase;letter-spacing:.09em}.wj-settings-nav{width:100%;min-height:44px;border:0;background:transparent;border-radius:12px;display:grid;grid-template-columns:22px 1fr 16px;align-items:center;gap:9px;padding:8px 10px;color:var(--muted);text-align:left;font-weight:720}.wj-settings-nav:hover{background:var(--surface2);color:var(--text)}.wj-settings-nav.active{background:color-mix(in srgb,var(--accent) 10%,var(--surface));color:var(--accent)}.wj-settings-content{min-width:0}.wj-settings-section-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin:2px 0 16px}.wj-settings-section-head h2{margin:0;font-size:24px;letter-spacing:-.03em}.wj-settings-section-head p{margin:5px 0 0;color:var(--muted);line-height:1.55}.wj-settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.wj-settings-card{border:1px solid var(--border);background:var(--surface-raised);border-radius:20px;padding:18px;box-shadow:var(--shadow-soft);display:grid;gap:14px;min-width:0}.wj-settings-card h3{margin:0;font-size:15px}.wj-settings-card p{margin:0;color:var(--muted);line-height:1.55}.wj-settings-savebar{position:sticky;bottom:16px;margin-top:14px;border:1px solid var(--border);border-radius:16px;background:color-mix(in srgb,var(--surface-raised) 92%,transparent);backdrop-filter:blur(18px);box-shadow:var(--shadow-float);padding:12px 14px;display:flex;align-items:center;justify-content:space-between;gap:14px}.wj-settings-savebar span{color:var(--muted);font-size:12px}.wj-switch-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid var(--border)}.wj-switch-row span{display:grid;gap:3px}.wj-switch-row small{color:var(--muted)}.wj-switch-row input{width:42px;height:23px;accent-color:var(--accent)}.wj-settings-list{display:grid}.wj-settings-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid var(--border)}.wj-settings-row>div:first-child{display:grid;gap:3px}.wj-settings-row small{color:var(--muted)}.wj-settings-launch{grid-template-columns:36px 1fr 20px;text-align:left;cursor:pointer}.wj-branding-preview{height:180px;border:1px solid var(--border);border-radius:16px;background:linear-gradient(135deg,var(--surface2),var(--surface));display:grid;place-items:center;overflow:hidden}.wj-branding-preview.compact{height:120px}.wj-branding-preview img{max-width:86%;max-height:74%;object-fit:contain}.wj-brand-placeholder{font-weight:950;letter-spacing:.03em;font-size:24px}.wj-upload-zone{min-height:96px;border:1px dashed var(--border-strong);border-radius:16px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;color:var(--muted);cursor:pointer}.wj-upload-zone strong{color:var(--text)}.wj-upload-zone:hover,.wj-upload-zone.dragging{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 5%,var(--surface))}.wj-branding-preview.light{background:#fff}.wj-branding-preview.dark{background:#15172a}.wj-branding-preview.wide{grid-column:1/-1}.wj-branding-preview.wide img{max-width:100%;max-height:100%;width:100%;height:100%;object-fit:cover}.wj-color-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.wj-color-row label{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:12px;font-weight:700;color:var(--muted)}.wj-color-row input{width:42px;height:32px;border:0;background:transparent}
.wj-mobile-dock button{min-height:44px}.wj-mobile-dock .wj-icon{margin:auto}.wj-modal{box-shadow:var(--shadow-float)}
/* Compact filter/select/date controls */
.wj-toolbar .wj-select,.wj-toolbar input[type="date"],.wj-toolbar input[type="week"],.wj-filter-panel .wj-select,.wj-filter-panel input,.wj-center-filter .wj-select{min-height:36px;padding-block:6px;font-size:12px}
.wj-toolbar input[type="date"],.wj-toolbar input[type="week"]{max-width:150px}
/* Toolbar controls (other than the search box) must not stretch to fill the flex row's full width when they
   wrap onto their own line — otherwise each select/date/button ends up one-per-row on narrow/mobile widths. */
.wj-toolbar>.wj-select,.wj-toolbar>select,.wj-toolbar>input[type="date"],.wj-toolbar>input[type="week"],.wj-toolbar>.wj-btn{width:auto;flex:1 1 130px}
.wj-toolbar>.wj-btn{flex:0 0 auto}
.wj-filter-panel input[type="date"],.wj-filter-panel input[type="week"]{max-width:none}
.wj-center-filter{min-width:130px}
/* Product / supplier media-first cards */
.wj-product{padding:0;overflow:hidden;display:flex;flex-direction:column}.wj-product-media{aspect-ratio:4/3;background:var(--surface-sunken,var(--surface2));display:grid;place-items:center;color:var(--muted);overflow:hidden}.wj-product-media img{width:100%;height:100%;object-fit:cover}.wj-product-copy{padding:12px 13px;display:flex;flex-direction:column;gap:3px;flex:1}.wj-product-copy strong{display:block;font-size:13px}.wj-product-copy small{color:var(--muted);font-size:11px}.wj-product-foot{padding:0 13px 12px;display:flex;align-items:center;justify-content:space-between;gap:6px}
.wj-supplier-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px}.wj-supplier{padding:14px;border:1px solid var(--border);border-radius:16px;background:var(--surface);cursor:pointer;display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px}.wj-supplier:hover{border-color:var(--accent)}.wj-supplier-logo{width:56px;height:56px;border-radius:16px;background:var(--surface-sunken,var(--surface2));display:grid;place-items:center;color:var(--muted);overflow:hidden}.wj-supplier-logo img{width:100%;height:100%;object-fit:contain}.wj-supplier strong{font-size:13px}.wj-supplier small{color:var(--muted);font-size:11px}
.wj-product-detail-media{aspect-ratio:16/9;border-radius:16px;background:var(--surface-sunken,var(--surface2));display:grid;place-items:center;color:var(--muted);overflow:hidden;margin-bottom:14px}.wj-product-detail-media img{width:100%;height:100%;object-fit:contain}
.wj-cv-pdf-view{display:flex;flex-direction:column;flex:1;min-height:0;gap:0;padding:0}.wj-cv-pdf-toolbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;padding:10px 14px;border-bottom:1px solid var(--hairline,var(--border));background:var(--surface-raised,var(--surface))}.wj-cv-pdf-frame{flex:1;width:100%;min-height:0;border:0;border-radius:0;background:var(--surface2)}.wj-cv-detail-view{display:flex;flex-direction:column;flex:1;min-height:0;gap:14px;padding:14px;overflow:auto}
.wj-cv-screen{display:flex;flex-direction:column;height:calc(100dvh - var(--top) - 52px);min-height:0}
.wj-cv-screen .wj-page-head,.wj-cv-screen .wj-toolbar{flex:0 0 auto}
.wj-cv-split{display:grid;grid-template-columns:minmax(280px,340px) 8px minmax(0,1fr);grid-template-rows:minmax(0,1fr);gap:0;flex:1;min-height:0}
.wj-cv-split-list{overflow-y:auto;overflow-x:hidden;min-height:0;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;border:1px solid var(--hairline,var(--border));border-radius:16px 0 0 16px;border-right:0;background:var(--surface-raised,var(--surface));padding:8px}.wj-cv-split-list .wj-list{overflow:visible;height:auto}
.wj-cv-split-resize{width:8px;cursor:col-resize;position:relative;flex:0 0 auto;background:var(--surface-raised,var(--surface));border-top:1px solid var(--hairline,var(--border));border-bottom:1px solid var(--hairline,var(--border))}
.wj-cv-split-resize:after{content:'';position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:3px;height:32px;border-radius:3px;background:var(--border-strong)}
.wj-cv-split-resize:hover:after,.wj-cv-split-resize:active:after{background:var(--accent)}
.wj-cv-split-detail{min-width:0;min-height:0;height:100%;display:flex;flex-direction:column;border:1px solid var(--hairline,var(--border));border-top:0;border-bottom:0;border-radius:0;background:var(--surface-raised,var(--surface));overflow:hidden}
.wj-cv-split-resize{min-height:0;height:100%}
.wj-cv-split-empty{flex:1;display:grid;place-items:center;padding:20px}
.wj-cv-pager{display:flex;gap:4px;margin-left:auto}
.wj-cv-pager .wj-cv-next .wj-icon,.wj-cv-pager .wj-cv-next svg{transform:rotate(180deg)}
.wj-cv-back-mobile{display:none}
html[data-layout="mobile"] .wj-cv-screen{height:auto}
html[data-layout="mobile"] .wj-cv-split-resize{display:none}
html[data-layout="mobile"] .wj-cv-split{display:block;height:auto;gap:0;grid-template-columns:none!important}
html[data-layout="mobile"] .wj-cv-split-list{border:0;border-radius:0;background:transparent;padding:0}
html[data-layout="mobile"] .wj-cv-split-detail{display:none;position:fixed;inset:var(--top) 0 0;z-index:45;background:var(--bg);border-radius:0;border:0;padding-bottom:calc(var(--dock) + var(--safe))}
html[data-layout="mobile"] .wj-cv-pdf-toolbar{padding:8px 10px;gap:6px}
html[data-layout="mobile"] .wj-cv-pdf-toolbar .wj-btn.sm{padding:0 8px;font-size:11px}
html[data-layout="mobile"] .wj-cv-detail-view{padding:10px}
html[data-layout="mobile"] .wj-drawer-foot{padding:10px 12px}
html[data-layout="mobile"] .wj-cv-split.detail-open .wj-cv-split-detail{display:flex}
html[data-layout="mobile"] .wj-cv-split.detail-open .wj-cv-split-list{display:none}
html[data-layout="mobile"] .wj-cv-back-mobile{display:inline-flex}
.wj-permissions-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}.wj-permissions-group{border:1px solid var(--border);border-radius:16px;padding:12px;min-width:0}.wj-permissions-group legend{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:0 4px}.wj-permissions-group .wj-check{min-height:0;padding:6px 8px;margin-top:4px;border:0;background:transparent}.wj-permissions-group .wj-check:hover{background:var(--surface2)}.wj-permissions-group .wj-check span{font-size:12px;word-break:break-word}

@media (max-width:1179px){
 :root{--rail:78px}.wj-brand-copy,.wj-nav-label,.wj-user-meta,.wj-user-chip>.wj-icon,.wj-nav-section{display:none}.wj-brand-lockup{justify-content:center}.wj-nav-btn{justify-content:center;padding:9px}.wj-sidebar{padding-inline:10px}.wj-side-foot .wj-user-chip{justify-content:center;padding:7px}.wj-content{padding:20px}.wj-global-search{width:min(300px,34vw)}.wj-workspace{grid-template-columns:minmax(280px,38%) minmax(0,1fr)}.wj-settings-workspace{grid-template-columns:210px minmax(0,1fr)}.wj-settings-grid{grid-template-columns:1fr}.wj-btn,.wj-input,.wj-select{min-height:44px}.wj-nav-btn,.wj-settings-nav,.wj-mobile-dock button{min-height:44px}
}
@media (max-width:699px){
 :root{--rail:0px;--top:60px}.wj-shell{display:block}.wj-sidebar{display:none}.wj-main{min-height:100dvh;padding-bottom:calc(var(--dock) + var(--safe) + 10px)}.wj-topbar{height:var(--top);padding:0 12px}.wj-eyebrow,.wj-global-search{display:none}.wj-page-title{font-size:18px}.wj-top-actions{margin-left:auto}.wj-content{padding:12px;overflow-x:hidden}.wj-mobile-dock{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;left:10px;right:10px;bottom:calc(8px + var(--safe));z-index:80;background:color-mix(in srgb,var(--surface) 88%,transparent);backdrop-filter:blur(22px) saturate(150%);border:1px solid color-mix(in srgb,var(--border) 85%,transparent);border-radius:20px;padding:6px;box-shadow:var(--shadow-float)}.wj-mobile-dock button{border:0;background:transparent;border-radius:12px;color:var(--muted);display:grid;place-items:center;gap:2px;font-size:11px;font-weight:750}.wj-mobile-dock button.active{background:color-mix(in srgb,var(--accent) 10%,var(--surface));color:var(--accent)}.wj-page-head{margin:5px 2px 12px}.wj-page-head h1{font-size:22px}.wj-page-head p{font-size:12px}.wj-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.wj-dashboard-grid{grid-template-columns:1fr;gap:10px}.wj-toolbar{gap:6px}.wj-search{min-width:0;max-width:none;width:100%;flex-basis:100%}.wj-filter-panel{position:fixed;left:10px;right:10px;bottom:calc(var(--dock) + var(--safe) + 12px);z-index:100;max-height:62dvh;overflow:auto;border-radius:20px;padding:16px;box-shadow:var(--shadow-float);grid-template-columns:1fr}.wj-filter-panel:not(.open){display:none}.wj-filter-sheet.open:before{content:"Filtros";display:block;font-weight:850;font-size:18px;margin-bottom:4px}.wj-form-grid{grid-template-columns:1fr}.wj-span-2{grid-column:auto}.wj-form-actions{grid-column:1;bottom:0;padding:12px 0 calc(4px + var(--safe))}.wj-modal-backdrop{align-items:flex-end;padding:0}.wj-modal{width:100%;max-width:none;max-height:92dvh;border-radius:24px 24px 0 0}.wj-workspace{display:block;height:calc(100dvh - var(--top) - var(--dock) - 34px);min-height:0;border-radius:16px;position:relative;overflow:hidden}.wj-master{height:100%;border-right:0}.wj-detail{position:absolute;inset:0;transform:translateX(102%);transition:transform .22s ease;z-index:10;background:var(--surface);overflow:auto}.wj-workspace.detail-open .wj-detail{transform:translateX(0)}.wj-back-mobile{display:inline-flex!important}.wj-detail-body{padding:14px}.wj-kv{grid-template-columns:1fr;gap:4px;padding:10px 0}.wj-settings-workspace{display:block}.wj-settings-sidebar{position:static;display:flex;overflow-x:auto;gap:5px;padding:5px;margin-bottom:12px;border-radius:16px}.wj-settings-title{display:none}.wj-settings-nav{min-width:max-content;grid-template-columns:18px auto;min-height:40px;padding:8px 10px}.wj-settings-nav>.wj-icon:last-child{display:none}.wj-settings-section-head h2{font-size:22px}.wj-settings-grid{grid-template-columns:1fr}.wj-settings-savebar{bottom:calc(var(--dock) + var(--safe) + 12px);flex-direction:column;align-items:stretch}.wj-settings-row{grid-template-columns:1fr auto}.wj-settings-row>.wj-segmented{grid-column:1/-1}.wj-branding-preview{height:140px}.wj-product-grid{grid-template-columns:1fr!important}.wj-table-wrap{border-radius:16px;overflow:auto}.wj-table{min-width:720px}.wj-actionbar{flex-wrap:wrap}
}

/* Uelta 2.2 — approved reference visual direction */
:root{
 --surface-canvas:#f7f8fb;--surface-raised:#ffffff;--surface-sunken:#f1f3f7;--surface-overlay:rgba(255,255,255,.94);
 --radius-control:12px;--radius-panel:18px;--radius-workspace:24px;--shadow-soft:0 1px 2px rgba(16,24,40,.03),0 8px 24px rgba(16,24,40,.05);--shadow-float:0 18px 60px rgba(15,23,42,.16);
 --blue:#2f6df6;--blue-soft:#eef4ff;--hairline:#e9edf3;--sidebar:226px;--top:64px;--r:18px;--r2:24px;
}
html[data-theme="dark"]{--surface-canvas:#0c1018;--surface-raised:#111722;--surface-sunken:#0f1520;--surface-overlay:rgba(17,23,34,.94);--hairline:#222c3c;--blue-soft:#142347}
body{background:var(--surface-canvas);font-size:13px;letter-spacing:-.005em}.wj-shell{background:var(--surface-canvas)}
.wj-sidebar{background:var(--surface-raised);border-right:1px solid var(--hairline);padding:16px 12px}.wj-side-head{height:52px}.wj-brand-lockup{border:0;background:transparent;display:flex;align-items:center;gap:10px;padding:6px;border-radius:12px}.wj-brand-mark{width:30px;height:30px;border-radius:8px;background:#111827;color:#fff;display:grid;place-items:center;font-size:11px;font-weight:950}.wj-brand-copy{display:grid;text-align:left;line-height:1.05}.wj-brand-copy small{font-size:11px;color:var(--muted);margin-top:3px}.wj-nav-section{font-size:11px;letter-spacing:.12em;padding:18px 10px 7px}.wj-nav-btn{min-height:40px;padding:8px 10px;border-radius:12px;font-size:12px;font-weight:690}.wj-nav-btn.active{background:var(--blue-soft);color:var(--blue);box-shadow:none}.wj-nav-btn:hover{background:var(--surface-sunken)}
.wj-topbar{height:var(--top);background:color-mix(in srgb,var(--surface-raised) 90%,transparent);border-bottom:1px solid var(--hairline);padding:0 26px}.wj-eyebrow{display:none}.wj-page-title{font-size:18px;font-weight:760}.wj-global-search{height:36px;border-color:var(--hairline);background:var(--surface-sunken);border-radius:12px;box-shadow:inset 0 1px 0 rgba(255,255,255,.5)}.wj-content{padding:24px 28px 40px;max-width:1720px}
.wj-page-head{align-items:center;margin:4px 0 18px}.wj-page-head h1{font-size:24px;font-weight:780}.wj-page-head p{font-size:12px;margin-top:4px}.wj-card,.wj-data-surface{background:var(--surface-raised);border:1px solid var(--hairline);border-radius:var(--radius-panel);box-shadow:var(--shadow-soft)}.wj-card{padding:17px}.wj-stat{background:var(--surface-raised);border:1px solid var(--hairline);border-radius:16px;box-shadow:none}
.wj-commandbar{display:flex;align-items:center;gap:7px;min-height:48px;padding:6px 8px;border:1px solid var(--hairline);border-radius:16px;background:var(--surface-overlay);box-shadow:var(--shadow-soft);backdrop-filter:blur(18px)}.wj-floating-panel{background:var(--surface-overlay);border:1px solid var(--hairline);border-radius:var(--radius-panel);box-shadow:var(--shadow-float);backdrop-filter:blur(18px)}.wj-section-tabs,.wj-tabs{display:flex;gap:2px;padding:3px;border:1px solid var(--hairline);background:var(--surface-sunken);border-radius:12px}.wj-tab{padding:7px 11px;border-radius:8px}.wj-tab.active{box-shadow:0 1px 3px rgba(16,24,40,.07)}
.wj-workspace{border-color:var(--hairline);border-radius:var(--radius-workspace);box-shadow:var(--shadow-soft);background:var(--surface-raised)}.wj-master{border-right-color:var(--hairline)}.wj-master-head,.wj-detail-head{border-color:var(--hairline)}.wj-row{border-bottom-color:var(--hairline);padding:13px 15px}.wj-row:hover{background:var(--surface-sunken)}.wj-row.active{background:var(--blue-soft);box-shadow:inset 3px 0 var(--blue)}.wj-detail{background:var(--surface-raised)}.wj-detail-head{background:var(--surface-overlay)}
.wj-home-shell{display:grid;gap:16px}.wj-home-stats{gap:10px}.wj-dashboard-stat{display:flex;align-items:center;gap:12px;padding:14px 15px;text-align:left;color:inherit}.wj-dashboard-stat .wj-stat-icon{width:34px;height:34px;border-radius:12px;background:var(--surface-sunken);display:grid;place-items:center;color:var(--blue)}.wj-dashboard-stat span{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.06em}.wj-dashboard-stat strong{font-size:24px;margin-top:2px}.wj-home-layout{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(280px,.7fr);gap:14px;align-items:start}.wj-home-main,.wj-home-side{display:grid;gap:14px}.wj-data-surface{padding:18px}.wj-section-heading{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;margin-bottom:14px}.wj-section-heading h3{margin:2px 0 0;font-size:15px}.wj-section-heading p{margin:4px 0 0;color:var(--muted);font-size:11px}.wj-kicker{font-size:11px;letter-spacing:.12em;font-weight:850;color:var(--muted)}.wj-release-chip{font-size:11px;font-weight:800;color:var(--blue);background:var(--blue-soft);border-radius:999px;padding:5px 8px}.wj-activity-list{display:grid}.wj-activity-row{border:0;border-top:1px solid var(--hairline);background:transparent;display:grid;grid-template-columns:32px 1fr auto;align-items:center;gap:10px;padding:11px 2px;text-align:left}.wj-activity-row:hover{background:var(--surface-sunken)}.wj-activity-icon{width:30px;height:30px;border-radius:8px;background:var(--surface-sunken);display:grid;place-items:center;color:var(--muted)}.wj-activity-copy{display:grid;gap:3px}.wj-activity-copy strong{display:flex;align-items:center;gap:7px;font-size:12px}.wj-activity-copy small{font-size:11px;color:var(--muted)}.wj-activity-dot{width:8px;height:8px;border-radius:50%;flex:0 0 auto;background:var(--muted)}.wj-activity-dot.incidents{background:var(--danger)}.wj-activity-dot.maintenance{background:#d97706}.wj-activity-dot.orders{background:#2563eb}.wj-activity-dot.stock{background:#7c3aed}.wj-activity-dot.cv{background:#0d9488}.wj-activity-dot.requests{background:#4f46e5}.wj-activity-dot.invoices{background:var(--ok)}.wj-activity-dot.assets{background:#64748b}.wj-activity-dot.vehicle{background:#0891b2}.wj-activity-dot.directory{background:#db2777}.wj-activity-dot.gymkana{background:#65a30d}.wj-activity-dot.core{background:#475569}.wj-quick-grid{display:grid;gap:4px}.wj-quick-action{border:0;background:transparent;display:grid;grid-template-columns:30px 1fr 16px;align-items:center;gap:8px;min-height:42px;border-radius:12px;padding:5px 7px;text-align:left}.wj-quick-action>span{width:28px;height:28px;display:grid;place-items:center;border-radius:8px;background:var(--surface-sunken);color:var(--blue)}.wj-quick-action:hover{background:var(--surface-sunken)}.wj-center-list{display:grid}.wj-center-row{border-top:1px solid var(--hairline);display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 2px}.wj-center-row>span{display:grid;gap:2px}.wj-center-row small{color:var(--muted);font-size:11px}
.wj-changelog{padding-bottom:8px}.wj-changelog-list{display:grid}.wj-changelog-item{display:grid;grid-template-columns:22px 1fr;gap:8px}.wj-changelog-rail{display:flex;align-items:center;flex-direction:column}.wj-changelog-dot{width:9px;height:9px;border-radius:50%;margin-top:6px;background:#98a2b3;box-shadow:0 0 0 4px var(--surface-raised)}.wj-changelog-dot.feature{background:#2f6df6}.wj-changelog-dot.fix{background:var(--danger)}.wj-changelog-dot.improvement{background:var(--ok)}.wj-changelog-dot.adjustment{background:#a855f7}.wj-changelog-line{width:1px;background:var(--hairline);flex:1;min-height:46px}.wj-changelog-body{padding:0 0 16px;border-bottom:1px solid var(--hairline);margin-bottom:10px}.wj-changelog-item:last-child .wj-changelog-body{border-bottom:0}.wj-changelog-meta{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.wj-changelog-meta strong{font-size:12px}.wj-changelog-meta>span:not(.wj-change-type){color:var(--muted);font-size:11px}.wj-change-type{font-size:11px;font-weight:800;padding:3px 6px;border-radius:999px;background:var(--surface-sunken)}.wj-change-type.feature{color:#2f6df6;background:#eef4ff}.wj-change-type.fix{color:var(--danger);background:color-mix(in srgb,var(--danger) 8%,var(--surface))}.wj-change-type.improvement{color:var(--ok);background:color-mix(in srgb,var(--ok) 8%,var(--surface))}.wj-change-type.adjustment{color:#9333ea;background:#faf5ff}.wj-changelog-body p{font-size:11px;line-height:1.55;color:var(--muted);margin:7px 0}.wj-module-tags{display:flex;gap:5px;flex-wrap:wrap}.wj-module-tags span{font-size:11px;color:var(--muted);border:1px solid var(--hairline);padding:3px 6px;border-radius:999px}
@media(max-width:1179px){.wj-home-layout{grid-template-columns:minmax(0,1fr) 280px}.wj-home-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.wj-data-surface{padding:16px}}
@media(max-width:699px){.wj-content{padding:12px 10px calc(var(--dock) + var(--safe) + 18px)}.wj-home-layout{grid-template-columns:1fr}.wj-home-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.wj-data-surface{padding:14px;border-radius:16px}.wj-changelog-body p{font-size:11px}.wj-dashboard-stat{padding:11px}.wj-dashboard-stat strong{font-size:20px}.wj-commandbar{position:sticky;top:var(--top);z-index:15;overflow-x:auto}.wj-floating-panel{border-radius:20px}}

/* 2.3 full-width responsive interaction system */
.wj-content{width:100%;max-width:none;margin:0;padding-inline:clamp(14px,2vw,38px)}
.wj-main{min-width:0;width:100%}.wj-page-head{width:100%}.wj-workspace,.wj-data-surface{max-width:none}
.wj-smart-actions{position:relative;align-items:center;flex-wrap:nowrap}.wj-action-overflow{position:relative}.wj-action-overflow>summary{list-style:none}.wj-action-overflow>summary::-webkit-details-marker{display:none}.wj-action-drawer{position:absolute;right:0;top:calc(100% + 8px);z-index:50;min-width:210px;padding:8px;display:grid;gap:5px;background:var(--surface-overlay);border:1px solid var(--hairline);border-radius:16px;box-shadow:var(--shadow-float);backdrop-filter:blur(18px)}.wj-action-drawer .wj-btn{justify-content:flex-start;width:100%}
.wj-detail-head{position:sticky;top:0;z-index:8}.wj-detail-expand{margin-left:auto}.wj-workspace.detail-expanded{grid-template-columns:minmax(260px,.55fr) minmax(0,2.2fr)}.wj-workspace.detail-expanded .wj-detail{min-width:0}
.wj-form-actions,.wj-sticky-actions{position:sticky;bottom:0;z-index:25;background:color-mix(in srgb,var(--surface-raised) 94%,transparent);backdrop-filter:blur(16px);border-top:1px solid var(--hairline);padding:12px max(4px,env(safe-area-inset-right)) calc(12px + var(--safe));margin-top:12px;display:flex;justify-content:flex-end;gap:8px}
.wj-solicitudes-home{background:var(--surface-raised);border:1px solid var(--hairline);border-radius:var(--radius-workspace);padding:18px;box-shadow:var(--shadow-soft)}.wj-solicitudes-home .wj-section-heading h2{margin:2px 0;font-size:18px}.wj-solicitudes-launchers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.wj-solicitud-launch{border:1px solid var(--hairline);background:var(--surface-raised);border-radius:16px;min-height:82px;padding:14px;display:grid;grid-template-columns:42px 1fr 18px;align-items:center;gap:12px;text-align:left;transition:.18s ease}.wj-solicitud-launch:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--blue) 30%,var(--hairline));box-shadow:var(--shadow-soft)}.wj-solicitud-launch>span:nth-child(2){display:grid;gap:4px}.wj-solicitud-launch strong{font-size:13px}.wj-solicitud-launch small{font-size:11px;color:var(--muted);line-height:1.35}.wj-solicitud-icon,.wj-vehicle-active-icon{width:42px;height:42px;border-radius:12px;background:var(--blue-soft);color:var(--blue);display:grid;place-items:center}.wj-solicitudes-mini{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:12px}
.wj-solicitud-launch-row{display:flex;align-items:stretch;gap:6px}.wj-solicitud-launch-row .wj-solicitud-launch{flex:1 1 auto}.wj-solicitud-launch-row .wj-btn.icon{flex:0 0 auto;align-self:center}
.wj-directory-results{display:grid;gap:5px;margin:10px 0}.wj-directory-result{border:0;background:var(--surface-sunken);border-radius:12px;padding:9px 10px;display:flex;justify-content:space-between;align-items:center;text-align:left}.wj-directory-result span{display:grid;gap:2px}.wj-directory-result small{color:var(--muted);font-size:11px}
.wj-vehicle-workspace{display:grid;gap:14px;min-width:0}.wj-vehicle-workspace>*{min-width:0}.wj-vehicle-hero{background:linear-gradient(135deg,var(--surface-raised),var(--blue-soft));border:1px solid var(--hairline);border-radius:24px;padding:22px;display:flex;justify-content:space-between;align-items:center;gap:18px;min-width:0}.wj-vehicle-hero>*{min-width:0}.wj-vehicle-hero h2{margin:3px 0 5px;font-size:22px}.wj-vehicle-hero p{margin:0;color:var(--muted)}.wj-vehicle-actions{display:grid;grid-template-columns:repeat(2,minmax(220px,1fr));gap:8px;min-width:0}.wj-vehicle-actions .wj-solicitud-launch{grid-template-columns:38px 1fr;min-height:68px}.wj-vehicle-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:14px}.wj-vehicle-active{display:grid;grid-template-columns:46px 1fr auto;align-items:center;gap:12px;border:1px solid var(--hairline);border-radius:16px;padding:13px}.wj-vehicle-active>div:nth-child(2){display:grid;gap:2px}.wj-vehicle-active span{font-size:11px;letter-spacing:.1em;color:var(--blue);font-weight:800}.wj-vehicle-active small{color:var(--muted)}
.wj-asset-list{display:grid}.wj-asset-row{display:grid;grid-template-columns:36px 1fr auto;gap:10px;align-items:center;padding:11px 2px;border-top:1px solid var(--hairline)}.wj-asset-row>div{display:grid;gap:2px}.wj-asset-row small{color:var(--muted);font-size:11px}.wj-asset-icon{width:34px;height:34px;border-radius:12px;background:var(--surface-sunken);color:var(--blue);display:grid;place-items:center}
.wj-directory-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,320px);gap:14px}.wj-directory-layout>.wj-workspace{min-width:0}.wj-thread-panel{background:var(--surface-raised);border:1px solid var(--hairline);border-radius:20px;padding:15px;align-self:start;position:sticky;top:calc(var(--top) + 12px)}.wj-thread-row{border:0;border-top:1px solid var(--hairline);background:transparent;width:100%;padding:10px 2px;display:flex;align-items:center;justify-content:space-between;text-align:left}.wj-thread-row>span{display:grid;gap:2px}.wj-thread-row small{color:var(--muted);max-width:190px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wj-thread-messages{display:grid;gap:8px;max-height:55vh;overflow:auto}.wj-message{max-width:82%;background:var(--surface-sunken);border-radius:16px;padding:10px 12px}.wj-message.mine{margin-left:auto;background:var(--blue-soft)}.wj-message p{margin:5px 0}.wj-message small{color:var(--muted);font-size:11px}
@media(max-width:1179px){.wj-directory-layout{grid-template-columns:1fr}.wj-thread-panel{position:relative;top:auto}.wj-vehicle-hero{align-items:stretch;flex-direction:column}.wj-vehicle-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.wj-vehicle-grid{grid-template-columns:1fr}.wj-workspace.detail-expanded{grid-template-columns:minmax(220px,.5fr) minmax(0,1.5fr)}}
@media(max-width:699px){.wj-solicitudes-launchers{grid-template-columns:1fr}.wj-solicitud-launch{min-height:68px}.wj-vehicle-actions{grid-template-columns:1fr}.wj-vehicle-hero{padding:15px;border-radius:17px}.wj-vehicle-active{grid-template-columns:40px 1fr}.wj-vehicle-active>.wj-btn{grid-column:1/-1;width:100%}.wj-workspace.detail-expanded{grid-template-columns:1fr}.wj-workspace.detail-expanded .wj-master{display:none}.wj-detail-expand{display:none}.wj-scroll-chrome,.wj-topbar,.wj-mobile-dock{transition:none}.wj-form-actions,.wj-sticky-actions{margin-left:-10px;margin-right:-10px;padding-left:12px;padding-right:12px}.wj-directory-layout{display:block}.wj-thread-panel{margin-top:12px}}
@media(max-width:699px){.wj-scroll-chrome{overflow:visible}.wj-row-overflow .wj-action-drawer{position:fixed;left:12px;right:12px;bottom:calc(var(--dock) + var(--safe) + 10px);top:auto;max-height:60vh;overflow:auto}}

/* 2.4 shell/navigation/account refinements */
:root{--subnav-width:190px}
html,body,#app{height:100%;overflow:hidden}.wj-shell{height:100dvh;overflow:hidden}.wj-sidebar{height:100dvh;overflow:hidden;position:relative}.wj-nav{min-height:0;overflow:auto;overscroll-behavior:contain}.wj-main{height:100dvh;overflow:hidden;display:grid;grid-template-rows:var(--top) minmax(0,1fr)}.wj-content{height:100%;min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable}
.wj-workspace{grid-template-columns:minmax(320px,1fr) minmax(0,0fr);overflow:hidden}.wj-workspace .wj-detail{min-width:0;opacity:0;visibility:hidden;border-left:0;overflow:hidden;transition:grid-template-columns .2s ease,opacity .16s ease}.wj-workspace.detail-open{grid-template-columns:minmax(300px,.9fr) minmax(420px,1.3fr)}.wj-workspace.detail-open .wj-detail{opacity:1;visibility:visible;border-left:1px solid var(--hairline);overflow:hidden}.wj-detail-body{height:calc(100% - 64px);overflow:auto;overscroll-behavior:contain}.wj-detail-close{margin-left:auto}.wj-workspace.detail-expanded{grid-template-columns:minmax(240px,.45fr) minmax(0,2.35fr)}
.wj-module-layout{display:grid;grid-template-columns:var(--subnav-width) minmax(0,1fr);gap:14px;min-height:0}.wj-module-subnav{border:1px solid var(--hairline);border-radius:16px;background:var(--surface-raised);align-self:start;position:sticky;top:0;max-height:calc(100dvh - var(--top) - 48px);overflow:auto}.wj-module-subnav-inner{padding:10px}.wj-module-subnav section{display:grid;gap:3px;padding:8px 0;border-bottom:1px solid var(--hairline)}.wj-module-subnav section:last-child{border-bottom:0}.wj-module-subnav section>span{font-size:11px;font-weight:850;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);padding:4px 8px}.wj-module-subnav button{border:0;background:transparent;border-radius:8px;min-height:36px;padding:8px 10px;text-align:left;color:var(--text);font:inherit;font-size:11px;cursor:pointer}.wj-module-subnav button:hover{background:var(--surface-sunken)}.wj-module-subnav button.active{background:var(--blue-soft);color:var(--blue);font-weight:800}.wj-module-stage{min-width:0}.wj-orders-topbar{position:sticky;top:0;z-index:20}.wj-toolbar-title{font-size:12px;font-weight:800;margin-right:auto}
.wj-avatar-media{width:34px;height:34px;border-radius:50%;overflow:hidden;display:inline-grid;place-items:center;background:var(--surface-sunken);flex:0 0 auto}.wj-avatar-media img{width:100%;height:100%;object-fit:cover}.wj-avatar-media.compact{width:32px;height:32px}.wj-top-avatar{overflow:hidden}.wj-top-avatar .wj-avatar,.wj-top-avatar .wj-avatar-media{width:100%;height:100%}
.wj-login-stack{width:min(400px,92vw);display:grid}.wj-account-request-card{position:relative}.wj-account-back{position:absolute;right:20px;top:20px}.wj-account-request-card .wj-field{margin-top:11px}.wj-login-error,.wj-login-status{min-height:18px;margin-top:11px;font-size:11px}.wj-login-status.ok{color:var(--ok)}.wj-login-status.danger,.wj-login-error{color:var(--danger)}
@media(max-width:1179px){:root{--subnav-width:168px}.wj-module-layout{grid-template-columns:var(--subnav-width) minmax(0,1fr)}.wj-workspace.detail-open{grid-template-columns:minmax(260px,.7fr) minmax(360px,1.3fr)}}
@media(max-width:820px){.wj-login-shell{grid-template-columns:1fr;min-height:auto}}
@media(max-width:699px){.wj-btn.icon,.wj-icon-button{width:40px;height:40px;min-width:40px;min-height:40px;max-width:40px;max-height:40px;border-radius:12px}.wj-top-avatar{width:40px;height:40px;border-radius:50%}.wj-module-layout{display:block}.wj-module-subnav{position:sticky;top:0;z-index:18;max-height:none;overflow:visible;border-radius:16px;margin-bottom:9px}.wj-module-subnav-inner{display:flex;overflow-x:auto;gap:5px;padding:6px}.wj-module-subnav section{display:flex;gap:4px;padding:0;border:0;min-width:max-content}.wj-module-subnav section>span{display:none}.wj-module-subnav button{white-space:nowrap;min-height:38px}.wj-workspace{display:block;height:calc(100dvh - var(--top) - var(--dock) - 24px)}.wj-workspace .wj-detail{position:absolute;inset:0;transform:translateX(102%);opacity:1;visibility:visible;background:var(--surface-raised);z-index:12;transition:transform .2s ease}.wj-workspace.detail-open .wj-detail{transform:translateX(0);border-left:0}.wj-detail-close{display:none}.wj-login{padding:0}.wj-login-shell{border-radius:0;box-shadow:none;min-height:100vh}.wj-login-art{display:none}.wj-login-panel{width:100%;min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px 16px 40px;background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 8%,var(--bg)) 0%,var(--bg) 220px)}.wj-login-mobile-brand{display:flex;align-items:center;gap:10px;margin:8px 0 22px;font-weight:800;letter-spacing:.03em;font-size:13px;color:var(--text)}.wj-login-mobile-brand .wj-login-mark.sm{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:var(--accent);color:#fff;font-weight:900;font-size:14px}.wj-lang-toggle{top:16px;right:16px}}

.wj-brand-image{display:flex;align-items:center;max-width:150px;height:34px}.wj-brand-image img{max-width:100%;max-height:32px;object-fit:contain;object-position:left center}.wj-profile-avatar-preview{display:flex;justify-content:flex-start;margin:8px 0 16px}.wj-avatar-media.profile,.wj-avatar.profile{width:76px;height:76px;border-radius:24px;font-size:20px}.wj-pending-accounts{margin-bottom:14px}.wj-pending-account{display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px 0;border-top:1px solid var(--hairline)}.wj-pending-account>div:nth-child(2){display:grid;gap:2px}.wj-pending-account small{color:var(--muted);font-size:11px}

/* === WJT 2.5 Shell + Calendar === */
:root{--secondary:214px}
.wj-shell{grid-template-columns:var(--sidebar) minmax(0,1fr);height:100dvh;overflow:hidden}
.wj-shell.has-secondary{grid-template-columns:var(--sidebar) var(--secondary) minmax(0,1fr)}
.wj-sidebar,.wj-secondary-sidebar{height:100dvh;min-height:0;position:relative;top:auto;overflow:hidden}
.wj-sidebar{z-index:32}.wj-nav{overflow:auto;overscroll-behavior:contain;scrollbar-width:thin}
.wj-secondary-sidebar{background:var(--surface-raised);border-right:1px solid var(--hairline,var(--border));z-index:29;display:flex;flex-direction:column;box-shadow:8px 0 24px rgba(15,23,42,.025)}
.wj-secondary-head{height:var(--top);padding:12px 14px;border-bottom:1px solid var(--hairline,var(--border));display:flex;align-items:center;justify-content:space-between;gap:8px;flex:0 0 auto}
.wj-secondary-head>div{display:grid;gap:3px}.wj-secondary-head strong{font-size:15px}.wj-secondary-close{display:none}
.wj-secondary-nav{padding:12px 10px 22px;overflow:auto;overscroll-behavior:contain;min-height:0}.wj-secondary-nav section{display:grid;gap:3px;padding:8px 0 12px;border-bottom:1px solid var(--hairline,var(--border))}.wj-secondary-nav section:last-child{border-bottom:0}.wj-secondary-nav section>span{padding:2px 9px 6px;color:var(--muted);font-size:11px;font-weight:850;letter-spacing:.1em;text-transform:uppercase}.wj-secondary-nav button{border:0;background:transparent;color:var(--text);min-height:38px;border-radius:12px;text-align:left;padding:8px 10px;font:inherit;font-size:11px;cursor:pointer}.wj-secondary-nav button:hover{background:var(--surface-sunken)}.wj-secondary-nav button.active{background:var(--blue-soft,color-mix(in srgb,var(--accent) 10%,transparent));color:var(--blue,var(--accent));font-weight:800}
.wj-secondary-toggle{display:none;flex:0 0 auto;width:38px;height:38px;border-radius:12px}.wj-secondary-toggle-label{display:none}
.wj-main{height:100dvh;min-width:0;overflow:hidden;display:grid;grid-template-rows:var(--top) minmax(0,1fr)}
.wj-content{height:100%;min-height:0;overflow:auto;overscroll-behavior:contain;width:100%;max-width:none;margin:0;padding-inline:clamp(14px,2vw,38px)}
.wj-workspace{display:grid;grid-template-columns:minmax(0,1fr);height:min(760px,calc(100dvh - var(--top) - 110px));min-height:520px;width:100%;max-width:none;overflow:hidden}
.wj-workspace:not(.detail-open){grid-template-columns:minmax(0,1fr)}
.wj-workspace:not(.detail-open) .wj-master{border-right:0}
.wj-workspace.detail-open{grid-template-columns:minmax(320px,.88fr) minmax(460px,1.35fr)}
.wj-workspace.detail-expanded{grid-template-columns:minmax(240px,.42fr) minmax(0,2.3fr)}
.wj-master{min-width:0;min-height:0;overflow:hidden}.wj-master-head{flex:0 0 auto}.wj-list{overflow:auto;overscroll-behavior:contain}
.wj-detail{display:flex!important;flex-direction:column;min-width:0;min-height:0;overflow:hidden;border-left:1px solid var(--hairline,var(--border));background:var(--surface-raised,var(--surface))}.wj-detail-head{flex:0 0 auto}.wj-detail-body{flex:1;min-height:0;height:auto;overflow:auto;overscroll-behavior:contain;padding-bottom:28px}
.wj-module-stage{min-width:0;width:100%}.wj-module-layout,.wj-module-subnav{display:none!important}

.wj-calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:10px}.wj-calendar-nav{display:flex;align-items:center;gap:7px}.wj-calendar-nav .wj-input{width:auto;min-width:150px}.wj-calendar-filters{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:8px;padding:0;max-height:0;opacity:0;overflow:hidden;transition:max-height .2s ease,opacity .2s ease,padding .2s ease}.wj-calendar-filters.open{max-height:130px;opacity:1;padding:8px 0 14px}.wj-calendar-weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border:1px solid var(--hairline,var(--border));border-bottom:0;border-radius:16px 16px 0 0;overflow:hidden;background:var(--surface-sunken)}.wj-calendar-weekdays span{padding:9px;text-align:center;color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.calendar-month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-top:1px solid var(--hairline,var(--border));border-left:1px solid var(--hairline,var(--border));background:var(--surface-raised);border-radius:0 0 18px 18px;overflow:hidden}.wj-calendar-day{position:relative;min-height:132px;border:0;border-right:1px solid var(--hairline,var(--border));border-bottom:1px solid var(--hairline,var(--border));background:var(--surface-raised);padding:10px;text-align:left;display:flex;flex-direction:column;gap:7px}.wj-calendar-day:hover{background:var(--surface-sunken)}.wj-calendar-day.selected{box-shadow:inset 0 0 0 2px var(--accent);z-index:2}.wj-calendar-day.empty{background:var(--surface-sunken);opacity:.6}.wj-calendar-day-num{font-weight:800}.wj-calendar-day-count{position:absolute;right:8px;top:8px;min-width:22px;height:22px;border-radius:999px;display:grid;place-items:center;background:var(--blue,var(--accent));color:#fff;font-size:11px;font-weight:850}.wj-calendar-day-preview{display:grid;gap:4px;min-width:0}.wj-calendar-day-preview small{display:block;padding:4px 6px;background:var(--surface-sunken);border-radius:7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--muted);font-size:11px}.calendar-agenda{margin-top:14px;background:var(--surface-raised);border:1px solid var(--hairline,var(--border));border-radius:20px;padding:15px}.wj-calendar-event{width:100%;border:0;border-top:1px solid var(--hairline,var(--border));background:transparent;display:grid;grid-template-columns:10px minmax(0,1fr) auto;gap:10px;align-items:center;padding:12px 4px;text-align:left}.wj-calendar-event:hover{background:var(--surface-sunken)}.wj-calendar-event>span:nth-child(2){display:grid;gap:3px}.wj-calendar-event small{color:var(--muted)}.wj-calendar-module-dot{width:7px;height:7px;border-radius:50%;background:var(--blue,var(--accent))}

@media(max-width:1179px){:root{--secondary:188px}.wj-shell.has-secondary{grid-template-columns:var(--sidebar) var(--secondary) minmax(0,1fr)}.wj-workspace.detail-open{grid-template-columns:minmax(270px,.7fr) minmax(360px,1.3fr)}.wj-calendar-day{min-height:112px}.wj-calendar-day-preview small:nth-child(n+3){display:none}}
@media(max-width:699px){
 .wj-shell,.wj-shell.has-secondary{display:block}.wj-secondary-toggle{display:inline-flex}.wj-secondary-sidebar{display:flex;position:fixed;left:0;top:0;bottom:0;width:min(86vw,330px);height:100dvh;z-index:90;transform:translateX(-105%);transition:transform .22s ease;box-shadow:24px 0 70px rgba(15,23,42,.24)}.secondary-open .wj-secondary-sidebar{transform:translateX(0)}.wj-secondary-close{display:inline-flex}.wj-secondary-head{height:64px}.wj-secondary-nav button{min-height:44px;font-size:13px}
 .wj-workspace{display:block;position:relative;height:calc(100dvh - var(--top) - var(--dock) - 24px);min-height:420px;overflow:hidden}.wj-workspace .wj-master{height:100%;overflow:hidden}.wj-workspace.detail-open .wj-master{visibility:visible}.wj-workspace.detail-open .wj-detail{position:absolute;inset:0;z-index:55;display:flex!important;transform:none;border-left:0;background:var(--surface-raised)}.wj-detail-head{min-height:58px}.wj-detail-close{display:none}.wj-back-mobile{display:inline-flex}.wj-detail-expand{display:none}
 .wj-calendar-toolbar{position:sticky;top:0;z-index:15;background:var(--surface-canvas,var(--bg));padding:4px 0 8px}.wj-calendar-toolbar .wj-tabs{order:3;width:100%}.wj-calendar-nav{flex:1;min-width:0}.wj-calendar-nav .wj-input{min-width:0;flex:1}.wj-calendar-filters,.wj-calendar-filters.open{position:fixed;left:10px;right:10px;bottom:calc(var(--dock) + var(--safe) + 10px);z-index:80;grid-template-columns:1fr;max-height:0;opacity:0;padding:0;background:var(--surface-raised);border-radius:20px;box-shadow:var(--shadow-float);overflow:hidden}.wj-calendar-filters.open{max-height:70dvh;opacity:1;padding:14px}.wj-calendar-day{min-height:40px;padding:3px}.wj-calendar-day-num{font-size:11px}.wj-calendar-day-preview{display:none}.wj-calendar-day-count{width:15px;height:15px;min-width:15px;font-size:11px;right:2px;top:2px}.calendar-agenda{margin-top:14px;padding:12px}.wj-calendar-event{min-height:58px}.wj-calendar-event .wj-badge{justify-self:end}
}

/* === WJT 2.6 Shell UX corrections === */
/* Legacy layout selectors were more specific than the optional-detail contract. */
html[data-layout="desktop"] .wj-workspace:not(.detail-open){grid-template-columns:minmax(0,1fr)}
html[data-layout="tablet"] .wj-workspace:not(.detail-open){grid-template-columns:minmax(0,1fr)}
html[data-layout="desktop"] .wj-workspace:not(.detail-open) .wj-master,
html[data-layout="tablet"] .wj-workspace:not(.detail-open) .wj-master{width:100%;max-width:none;border-right:0}
.wj-content:has(.wj-workspace){display:flex;flex-direction:column;overflow:hidden}
.wj-content:has(.wj-workspace)>.wj-page-head{flex:0 0 auto}
.wj-content:has(.wj-workspace)>.wj-workspace{flex:1;height:auto;min-height:0}
.wj-btn.wj-secondary-toggle,.wj-btn.wj-secondary-close{display:none}
.wj-mobile-nav-drawer,.wj-mobile-nav-backdrop{display:none}

html[data-layout="mobile"] .wj-sidebar{display:none}
html[data-layout="tablet"] .wj-mobile-dock,html[data-layout="desktop"] .wj-mobile-dock{display:none}
html[data-layout="mobile"] .wj-main{padding-bottom:0}
html[data-layout="mobile"] .wj-content{padding:12px 12px calc(var(--dock) + var(--safe) + 18px);-webkit-overflow-scrolling:touch;overscroll-behavior-y:auto}
html[data-layout="mobile"] .wj-content:has(.wj-workspace){overflow:hidden;padding-bottom:12px}
html[data-layout="mobile"] .wj-content:has(.wj-workspace)>.wj-workspace{height:auto;min-height:0}
html[data-layout="mobile"] .wj-workspace .wj-master{height:100%;min-height:0}
html[data-layout="mobile"] .wj-list{overflow:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-y:auto}
html[data-layout="mobile"] .wj-topbar{transform:none!important;padding:0 10px;gap:7px}
html[data-layout="mobile"] .wj-title-wrap{min-width:0}
html[data-layout="mobile"] .wj-top-actions{gap:5px}
html[data-layout="mobile"] .wj-top-actions #theme-btn,
html[data-layout="mobile"] .wj-top-actions #lang-btn{display:inline-flex}
html[data-layout="mobile"] .wj-top-actions #theme-btn{width:36px;min-width:36px;height:36px;min-height:36px;border-radius:12px}
html[data-layout="mobile"] .wj-top-actions #lang-btn{min-height:36px;height:36px;padding:0 9px;font-size:11px}
html[data-layout="mobile"] .wj-notification-btn{width:36px;min-width:36px;height:36px;min-height:36px}
html[data-layout="mobile"] .wj-top-avatar{width:36px;height:36px;min-width:36px}
html[data-layout="mobile"] .wj-page-title{font-size:18px}
html[data-layout="mobile"] .wj-mobile-dock{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));position:fixed;left:12px;right:12px;bottom:calc(10px + var(--safe));height:62px;padding:5px;z-index:80;border:1px solid color-mix(in srgb,var(--border) 72%,transparent);border-radius:19px;background:color-mix(in srgb,var(--surface) 78%,transparent);backdrop-filter:blur(26px) saturate(155%);box-shadow:0 16px 42px rgba(15,23,42,.16)}
html[data-layout="mobile"] .wj-mobile-dock button{min-width:0;border:0;background:transparent;border-radius:16px;color:var(--muted);display:grid;place-items:center;align-content:center;gap:2px;font-size:11px;font-weight:780;padding:3px}
html[data-layout="mobile"] .wj-mobile-dock button.active{background:color-mix(in srgb,var(--accent) 11%,var(--surface));color:var(--accent)}
html[data-layout="mobile"] .wj-mobile-dock .wj-icon{width:20px;height:20px}
html[data-layout="mobile"] .wj-mobile-nav-backdrop{display:block;position:fixed;inset:0;background:rgba(15,23,42,.28);backdrop-filter:blur(3px);z-index:96;opacity:0;visibility:hidden;transition:opacity .2s ease,visibility .2s ease}
html[data-layout="mobile"] .wj-mobile-nav-drawer{display:flex;position:fixed;left:10px;right:10px;bottom:calc(10px + var(--safe));max-height:min(78dvh,680px);z-index:97;flex-direction:column;background:color-mix(in srgb,var(--surface) 96%,transparent);border:1px solid var(--border);border-radius:24px;box-shadow:0 28px 80px rgba(15,23,42,.26);transform:translateY(calc(100% + 28px));opacity:0;transition:transform .24s cubic-bezier(.2,.8,.2,1),opacity .18s ease;overflow:hidden}
html[data-layout="mobile"].mobile-nav-open .wj-mobile-nav-backdrop{opacity:1;visibility:visible}
html[data-layout="mobile"].mobile-nav-open .wj-mobile-nav-drawer{transform:translateY(0);opacity:1}
html[data-layout="mobile"] .wj-mobile-nav-head{display:flex;align-items:center;justify-content:space-between;padding:14px 14px 10px;border-bottom:1px solid var(--border)}
html[data-layout="mobile"] .wj-mobile-nav-drawer nav{flex:1;min-height:0;overscroll-behavior:contain;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;padding:12px;overflow:auto;-webkit-overflow-scrolling:touch}
html[data-layout="mobile"] .wj-mobile-nav-drawer nav>.wj-kicker{grid-column:1/-1;padding:2px 4px 4px}
html[data-layout="mobile"] .wj-mobile-nav-drawer nav button{min-height:50px;border:0;border-radius:16px;background:var(--surface-sunken);display:flex;align-items:center;gap:9px;padding:9px 11px;text-align:left;color:var(--text);font:inherit;font-weight:720}
html[data-layout="mobile"] .wj-mobile-nav-drawer nav button.active{background:var(--blue-soft);color:var(--accent)}

@media(max-width:699px){
 .wj-btn.wj-secondary-toggle{display:inline-flex}
 .wj-btn.wj-secondary-close{display:inline-flex}
 #theme-btn,#lang-btn{display:inline-flex}
 .wj-content:has(.wj-workspace){overflow:hidden}
 .wj-list{-webkit-overflow-scrolling:touch}
}

/* === WJT 2.6 Shell Operations === */
.wj-shell.has-secondary{--secondary:220px;grid-template-columns:var(--sidebar) var(--secondary) minmax(0,1fr)}
.wj-shell.has-secondary.secondary-collapsed{--secondary:0px}
.wj-shell.secondary-collapsed .wj-secondary-sidebar{opacity:0;visibility:hidden;pointer-events:none;border-right:0;overflow:hidden}
.wj-shell.secondary-collapsed .wj-btn.wj-secondary-toggle{display:inline-flex}
.wj-secondary-sidebar{transition:opacity .18s ease,visibility .18s ease}
.wj-secondary-collapse{display:inline-flex!important;transform:rotate(180deg)}
.wj-secondary-head{gap:8px}.wj-secondary-head>div{min-width:0;flex:1}.wj-secondary-head strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wj-shell-center-wrap{display:grid;gap:5px;margin:0 4px 10px;padding:8px;border:1px solid var(--border);border-radius:12px;background:var(--surface-sunken)}
.wj-shell-center-wrap>span,.wj-mobile-center-switch>span{font-size:11px;font-weight:850;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.wj-shell-center-wrap .wj-select{min-height:36px;padding:5px 30px 5px 8px;background:var(--surface)}
.wj-overview{display:grid;gap:14px}.wj-overview .wj-metric-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;overflow:visible}.wj-overview-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}
.wj-metric-card,.wj-overview-card{border:1px solid var(--border);background:var(--surface);border-radius:16px;padding:14px;text-align:left;display:flex;align-items:center;gap:11px;min-height:74px;transition:.18s ease;box-shadow:0 1px 0 rgba(15,23,42,.02);min-width:0}.wj-metric-card:hover,.wj-overview-card:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--accent) 35%,var(--border));box-shadow:var(--shadow-soft)}
.wj-metric-icon{flex:0 0 auto;width:36px;height:36px;border-radius:12px;background:color-mix(in srgb,var(--accent) 12%,var(--surface));color:var(--accent);display:grid;place-items:center}
.wj-metric-copy{display:grid;gap:2px;min-width:0;flex:1}.wj-metric-copy span{font-size:11px;color:var(--muted);font-weight:750;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wj-metric-copy strong{font-size:20px;letter-spacing:-.03em}.wj-metric-copy small{color:var(--muted)}
.wj-sparkline{flex:0 0 auto;width:56px;height:22px;color:var(--accent);opacity:.75}
.wj-vehicle-launcher{position:relative}.wj-vehicle-choice{display:block}.wj-vehicle-choice input{position:absolute;opacity:0;pointer-events:none}.wj-vehicle-choice>span{display:grid;grid-template-columns:58px minmax(0,1fr);gap:12px;align-items:center;border:1px solid var(--border);border-radius:16px;padding:10px;background:var(--surface);cursor:pointer}.wj-vehicle-choice input:checked+span{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 12%,transparent);background:color-mix(in srgb,var(--accent) 4%,var(--surface))}.wj-vehicle-choice img,.wj-vehicle-photo{width:58px;height:48px;object-fit:cover;border-radius:12px;background:var(--surface-sunken)}.wj-vehicle-choice b,.wj-vehicle-placeholder{width:58px;height:48px;border-radius:12px;background:var(--surface-sunken);display:grid;place-items:center;color:var(--accent)}.wj-vehicle-choice i{font-style:normal;display:grid;gap:3px}.wj-vehicle-choice small{color:var(--muted)}.wj-vehicle-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;max-height:260px;overflow:auto}.wj-vehicle-mode{width:max-content;max-width:100%;display:flex;flex-wrap:wrap}.wj-vehicle-mode .wj-btn{flex:1 1 auto;white-space:nowrap}.wj-route-planner{display:grid;gap:10px;padding:13px;border:1px solid var(--border);border-radius:16px;background:var(--surface-sunken)}.wj-route-options{display:flex;gap:6px;flex-wrap:wrap}.wj-route-sequence{display:flex;gap:7px;flex-wrap:wrap;min-height:30px}.wj-route-stop{border:1px solid var(--border);background:var(--surface);border-radius:999px;display:flex;align-items:center;gap:6px;padding:5px 8px;color:var(--text)}.wj-route-stop b{width:21px;height:21px;border-radius:50%;display:grid;place-items:center;background:var(--accent);color:white;font-size:11px}.wj-vehicle-launch-card{display:grid;grid-template-columns:86px minmax(0,1fr);gap:15px;align-items:center;padding:14px;border:1px solid var(--border);border-radius:16px;background:var(--surface-sunken)}.wj-vehicle-launch-card .wj-vehicle-photo{width:86px;height:68px}
.wj-asset-admin-list{display:grid;gap:8px}.wj-asset-admin-card{display:grid;grid-template-columns:64px minmax(0,1fr) auto auto;gap:12px;align-items:center;padding:11px;border:1px solid var(--border);border-radius:16px;background:var(--surface)}.wj-asset-admin-media{width:64px;height:52px;border-radius:12px;overflow:hidden;background:var(--surface-sunken);display:grid;place-items:center;color:var(--muted)}.wj-asset-admin-media img{width:100%;height:100%;object-fit:cover}.wj-asset-admin-copy{display:grid;gap:3px;min-width:0}.wj-asset-admin-copy strong,.wj-asset-admin-copy small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wj-asset-admin-copy small{color:var(--muted)}
.wj-mobile-center-switch{display:none}
@media(max-width:699px){
 .wj-shell.has-secondary,.wj-shell.has-secondary.secondary-collapsed{display:block}.wj-secondary-collapse{display:none!important}.wj-shell.secondary-collapsed .wj-secondary-sidebar{opacity:1;visibility:visible;pointer-events:auto}
 .wj-mobile-center-switch{display:grid;gap:6px;padding:10px 14px;border-bottom:1px solid var(--border)}.wj-mobile-center-switch .wj-select{width:100%}
 .wj-overview .wj-metric-strip{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px}.wj-overview-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}
 .wj-vehicle-choices{grid-template-columns:1fr;max-height:220px}.wj-asset-admin-card{grid-template-columns:54px minmax(0,1fr) auto}.wj-asset-admin-card>.wj-actionbar{grid-column:1/-1}.wj-asset-admin-media{width:54px;height:46px}
}

/* === WJT 2.7 Final Shell + i18n === */
.wj-settings-content-full{width:100%;min-width:0}
.wj-shell.has-secondary .wj-content{max-width:none;width:100%}
.wj-workspace:not(.detail-open){grid-template-columns:minmax(0,1fr)!important}
.wj-workspace:not(.detail-open) .wj-master{width:100%;max-width:none;border-right:0}
.wj-workspace.detail-open{grid-template-columns:minmax(320px,.82fr) minmax(480px,1.38fr)!important}
.wj-detail-head .wj-detail-close{margin-left:auto}.wj-detail-head .wj-detail-expand{margin-left:0}
.wj-secondary-nav button{display:flex;align-items:center;gap:9px}
.wj-secondary-nav button>span{min-width:0;overflow:hidden;text-overflow:ellipsis}
.wj-content{max-width:none;width:100%}
.wj-content:has(.wj-workspace){overflow:hidden}
.wj-content:has(.wj-workspace)>.wj-workspace{height:auto;flex:1;min-height:0}
.wj-login-v2{background:var(--bg)}
.wj-login-v2 .wj-login-panel{position:relative}
.wj-login-card-head{margin-bottom:24px}
.wj-login-card-head h2{font-size:26px;margin:0 0 8px;letter-spacing:-.01em}
.wj-login-card-head>p{color:var(--muted);margin:0;font-size:13px;line-height:1.5}
.wj-lang-toggle{position:absolute;top:22px;right:22px;width:38px;height:38px;border-radius:50%;border:1px solid var(--hairline,var(--border));background:var(--surface-raised,var(--surface));color:var(--muted);font-size:11px;font-weight:800;letter-spacing:.02em;cursor:pointer;display:grid;place-items:center;transition:border-color .15s ease,color .15s ease,transform .12s ease}
.wj-lang-toggle:hover{border-color:var(--accent);color:var(--accent)}
.wj-lang-toggle:active{transform:scale(.94)}
.wj-login-submit{width:100%;margin-top:18px;min-height:44px;font-size:13px;box-shadow:var(--shadow-soft)}
.wj-google-slot{display:grid;gap:14px;margin-top:22px}
.wj-google-btn-mount{display:flex;justify-content:center;min-height:40px}
.wj-google-btn-mount iframe{margin:0 auto}
.wj-login-divider{display:flex;align-items:center;gap:10px;color:var(--text-3);font-size:11px;text-transform:uppercase;letter-spacing:.06em}
.wj-login-divider:before,.wj-login-divider:after{content:"";flex:1;height:1px;background:var(--hairline,var(--border))}
.wj-account-request-card .wj-field{margin-top:12px}
.wj-account-request-manual{display:grid;gap:12px;margin-top:0}
.wj-google-banner{margin-top:12px;padding:10px 12px;border-radius:12px;background:var(--primary-weak);color:var(--accent-2,var(--accent));font-size:12px;font-weight:650;border:1px solid color-mix(in srgb,var(--accent) 30%,transparent)}
.wj-login-notice{margin-top:16px;padding:12px 14px;border-radius:14px;background:var(--warn-weak);border:1px solid color-mix(in srgb,var(--warn) 35%,transparent);color:var(--warn);font-size:11.5px;line-height:1.55}
.wj-checkbox-row{display:flex;align-items:flex-start;gap:9px;margin-top:14px;font-size:12px;color:var(--muted);cursor:pointer}
.wj-checkbox-row input{margin-top:2px;width:16px;height:16px;accent-color:var(--accent)}
.wj-checkbox-row a{color:var(--accent);text-decoration:underline}
.wj-login-mobile-brand{display:none}
@media(max-width:1179px){.wj-workspace.detail-open{grid-template-columns:minmax(280px,.72fr) minmax(390px,1.28fr)!important}}
@media(max-width:1024px){.wj-topbar{padding-inline:14px}.wj-global-search{max-width:260px}.wj-workspace.detail-open{grid-template-columns:minmax(260px,.68fr) minmax(360px,1.32fr)!important}}
@media(max-width:768px){.wj-top-actions{gap:5px}.wj-btn.compact{padding-inline:8px}.wj-global-search{display:none}}
@media(max-width:699px){
 :root{--top:64px}
 .wj-main{padding-bottom:0}
 .wj-topbar{padding-top:env(safe-area-inset-top);height:calc(var(--top) + env(safe-area-inset-top));grid-template-columns:minmax(0,1fr) auto;overflow:visible}
 .wj-title-wrap{min-width:0;max-width:calc(100vw - 206px)}
 .wj-page-title{font-size:16px}
 .wj-top-actions{display:flex!important;flex:0 0 auto;gap:4px}
 .wj-top-actions #theme-btn,.wj-top-actions #lang-btn,.wj-notification-btn,.wj-top-avatar{display:inline-flex!important;width:34px;min-width:34px;height:34px;min-height:34px;max-width:34px;padding:0;align-items:center;justify-content:center}
 .wj-top-actions #lang-btn{font-size:11px;border-radius:12px}
 .wj-content{padding:10px 10px calc(82px + env(safe-area-inset-bottom));overscroll-behavior-y:auto;scrollbar-gutter:auto}
 .wj-content:has(.wj-workspace){padding-bottom:10px}
 .wj-workspace,.wj-workspace.detail-open{display:block!important;height:100%;min-height:0}
 .wj-workspace.detail-open .wj-master{display:none}
 .wj-workspace .wj-detail{position:absolute;inset:0;display:flex!important;transform:translateX(102%);transition:transform .22s cubic-bezier(.2,.8,.2,1)}
 .wj-workspace.detail-open .wj-detail{transform:translateX(0)}
 .wj-detail-close{display:inline-flex!important}
 .wj-back-mobile{display:inline-flex!important}
 .wj-detail-expand{display:none!important}
 .wj-mobile-dock{bottom:calc(8px + env(safe-area-inset-bottom));height:60px;background:color-mix(in srgb,var(--surface) 88%,transparent);box-shadow:0 18px 55px rgba(15,23,42,.16)}
 .wj-secondary-sidebar{padding-top:env(safe-area-inset-top)}
}
@media(max-width:430px){.wj-title-wrap{max-width:calc(100vw - 190px)}.wj-top-actions #theme-btn,.wj-top-actions #lang-btn,.wj-notification-btn,.wj-top-avatar{width:32px;min-width:32px;height:32px;min-height:32px}.wj-top-actions{gap:3px}}
@media(max-width:390px){.wj-title-wrap{max-width:calc(100vw - 174px)}.wj-page-title{font-size:15px}.wj-topbar{padding-inline:8px}.wj-top-actions #theme-btn,.wj-top-actions #lang-btn,.wj-notification-btn,.wj-top-avatar{width:30px;min-width:30px;height:30px;min-height:30px}.wj-btn.compact{font-size:11px}}
@media(max-width:375px){.wj-title-wrap{max-width:calc(100vw - 166px)}.wj-top-actions{gap:2px}.wj-top-actions #theme-btn,.wj-top-actions #lang-btn,.wj-notification-btn,.wj-top-avatar{width:29px;min-width:29px;height:29px;min-height:29px}}

/* === WJT 2.7.1 Users + account approvals === */
.wj-account-request-inbox{display:grid;gap:10px;margin-bottom:12px;padding:14px 16px;border:1px solid var(--border);border-radius:16px;background:var(--surface)}
.wj-account-request-list{display:grid;gap:6px}.wj-account-request-row{display:grid;grid-template-columns:36px minmax(0,1fr) auto;align-items:center;gap:10px;min-height:56px;padding:7px 8px;border-top:1px solid var(--border)}.wj-account-request-row:first-child{border-top:0}.wj-account-request-copy{display:grid;gap:2px;min-width:0}.wj-account-request-copy strong,.wj-account-request-copy small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wj-account-request-copy small{color:var(--muted)}.wj-account-request-actions{display:flex;gap:6px;flex-wrap:wrap}
.wj-user-list-row{display:grid!important;grid-template-columns:32px minmax(0,1fr) auto!important;align-items:center!important;min-height:64px!important;height:auto!important;padding-block:8px!important}.wj-user-list-row .wj-row-check{width:18px;height:18px;margin:0!important}.wj-user-list-row .wj-row-meta{margin-top:3px}
@media(max-width:699px){.wj-account-request-row{grid-template-columns:34px minmax(0,1fr)}.wj-account-request-actions{grid-column:2;justify-content:flex-start}.wj-user-list-row{grid-template-columns:28px minmax(0,1fr)!important;min-height:68px!important}}

/* === WJT 2.8 Consolidated Stabilization === */
.wj-solicitudes-home.wj-home-solicitudes{height:auto!important;min-height:0!important;max-height:none!important;overflow:visible!important}
.wj-home-solicitudes .wj-solicitudes-launchers{height:auto!important;max-height:none!important;overflow:visible!important}
.wj-date-filter{position:relative;display:inline-flex;align-items:center;min-width:0}
.wj-date-filter input[type="date"]{padding-left:32px;min-width:140px;color:var(--text)}
.wj-date-filter input[type="date"]:invalid,.wj-date-filter input[type="date"]:not(:focus):placeholder-shown{color:var(--muted)}
.wj-date-filter-icon{position:absolute;left:10px;top:50%;transform:translateY(-50%);pointer-events:none;color:var(--muted);display:flex;z-index:1}
.wj-filter-chip.active{background:var(--accent-soft,var(--surface3));border-color:var(--accent,var(--border));color:var(--text)}
.wj-date-range-filter{position:relative;display:inline-flex;min-width:0}
.wj-date-range-trigger{display:inline-flex;align-items:center;gap:6px;max-width:230px;white-space:nowrap}
.wj-date-range-trigger .wj-date-range-label{overflow:hidden;text-overflow:ellipsis}
.wj-date-range-menu{position:absolute;top:calc(100% + 4px);left:0;z-index:40;min-width:220px;background:var(--surface-raised,var(--surface));border:1px solid var(--hairline,var(--border));border-radius:var(--radius-control);box-shadow:0 8px 24px rgba(16,24,40,.16);padding:4px;display:grid;gap:2px;max-height:340px;overflow:auto}
.wj-date-range-options{display:grid;gap:2px}
.wj-date-range-option{display:flex;align-items:center;gap:8px;width:100%;min-height:32px;padding:0 10px;border:0;border-radius:calc(var(--radius-control) - 2px);background:transparent;color:var(--text);font-size:12px;font-weight:650;text-align:left;cursor:pointer}
.wj-date-range-option:hover{background:var(--surface3)}
.wj-date-range-option.active{background:var(--accent-soft,var(--surface3));color:var(--text)}
.wj-date-range-inputs{display:grid;gap:8px;padding:8px;margin-top:2px;border-top:1px solid var(--hairline,var(--border))}
.wj-catalog-picker-row{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:12px;align-items:center;padding:10px 12px}
.wj-catalog-picker-media{width:44px;height:44px;border-radius:12px;overflow:hidden;background:var(--surface3);display:grid;place-items:center;color:var(--muted)}
.wj-catalog-picker-media img{width:100%;height:100%;object-fit:cover}
.wj-catalog-picker-copy{min-width:0}.wj-catalog-picker-copy strong{display:block;line-height:1.25}.wj-catalog-picker-copy small{color:var(--muted)}
.wj-catalog-picker-stepper{display:flex;align-items:center;gap:6px}
.wj-catalog-picker-stepper .wj-input{width:54px;min-height:34px;text-align:center;padding:0 4px}
.wj-catalog-picker-stepper .wj-btn{width:32px;height:32px;min-height:32px;padding:0;display:grid;place-items:center;font-size:16px;line-height:1}
.wj-catalog-picker-total{position:sticky;bottom:0;display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--surface);padding-top:10px}
html[data-layout="mobile"] .wj-catalog-picker-row{grid-template-columns:38px minmax(0,1fr);grid-template-areas:"media copy" "stepper stepper"}
html[data-layout="mobile"] .wj-catalog-picker-row .wj-catalog-picker-media{grid-area:media}
html[data-layout="mobile"] .wj-catalog-picker-row .wj-catalog-picker-copy{grid-area:copy}
html[data-layout="mobile"] .wj-catalog-picker-row .wj-catalog-picker-stepper{grid-area:stepper;justify-content:flex-end;margin-top:8px}
.wj-orders-week-filter{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;margin-bottom:14px;padding:12px 14px;border:1px solid var(--border);border-radius:16px;background:var(--surface)}
.wj-orders-week-filter .wj-field{min-width:210px}.wj-week-legend{display:flex;gap:8px;align-items:center;flex-wrap:wrap;min-width:0;flex:1}
.wj-managed-order .wj-managed-detail{margin-top:12px;padding-top:12px;border-top:1px solid var(--border)}
html[data-layout="mobile"] .wj-managed-order .wj-section-title,html[data-layout="mobile"] .wj-managed-order .wj-actionbar,html[data-layout="mobile"] .wj-orders-week-filter{flex-direction:column;align-items:stretch}
html[data-layout="mobile"] .wj-managed-order .wj-section-title .wj-actionbar{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;margin-top:8px}
html[data-layout="mobile"] .wj-managed-order .wj-row-meta{flex-wrap:wrap}
html[data-layout="mobile"] section.wj-card .wj-section-title:has(.wj-actionbar){flex-direction:column;align-items:stretch}
html[data-layout="mobile"] section.wj-card .wj-section-title:has(.wj-actionbar) .wj-actionbar{width:100%;margin-top:8px}
html[data-layout="mobile"] section.wj-card .wj-section-title:has(.wj-actionbar)>button.wj-btn{width:100%}
html[data-layout="mobile"] section.wj-card .wj-section-title:has(>button.wj-btn){flex-direction:column;align-items:stretch}
html[data-layout="mobile"] section.wj-card .wj-section-title>button.wj-btn{width:100%;margin-top:8px}
.wj-other-place-toggle{align-self:end}.wj-check{min-height:42px;display:flex;align-items:center;gap:8px;padding:8px 10px;border:1px solid var(--border);border-radius:12px;background:var(--surface)}.wj-field.muted{opacity:.48}
/* Explicitly neutralize legacy scroll-hide animation: iOS Safari viewport resize + transforms caused visual jitter. */
html[data-layout="mobile"].scrolling-down .wj-topbar,html[data-layout="mobile"].scrolling-up .wj-topbar,html[data-layout="mobile"].scrolling-down .wj-scroll-chrome,html[data-layout="mobile"].scrolling-up .wj-scroll-chrome{transform:none!important;opacity:1!important;max-height:none!important;pointer-events:auto!important}
html[data-layout="mobile"] .wj-shell{height:100svh!important;min-height:100svh!important;overflow:hidden!important}
html[data-layout="mobile"] .wj-main{height:100svh!important;min-height:0!important;grid-template-rows:calc(var(--top) + var(--safe-top)) minmax(0,1fr)!important;overflow:hidden!important}
html[data-layout="mobile"] .wj-topbar{height:calc(var(--top) + var(--safe-top))!important;min-height:calc(var(--top) + var(--safe-top))!important;padding-top:var(--safe-top)!important;top:0!important;transform:none!important;transition:none!important;overflow:visible!important}
html[data-layout="mobile"] .wj-content{height:100%!important;min-height:0!important;overflow-y:auto!important;overflow-x:hidden!important;overscroll-behavior-y:contain!important;-webkit-overflow-scrolling:touch;padding-bottom:calc(86px + var(--safe))!important;scrollbar-gutter:auto!important}
html[data-layout="mobile"] .wj-mobile-dock{position:absolute!important;left:10px!important;right:10px!important;bottom:calc(8px + var(--safe))!important;height:60px!important;transform:none!important;transition:none!important}
html[data-layout="mobile"] .wj-workspace{height:auto!important;min-height:calc(100svh - var(--top) - var(--safe-top) - 110px)!important;overflow:visible!important}
html[data-layout="mobile"] .wj-workspace .wj-master{height:auto!important;min-height:0!important;overflow:visible!important}
html[data-layout="mobile"] .wj-workspace .wj-list{overflow:visible!important;max-height:none!important}
html[data-layout="mobile"] .wj-workspace.detail-open{height:calc(100svh - var(--top) - var(--safe-top) - 12px)!important;overflow:hidden!important}
html[data-layout="mobile"] .wj-workspace.detail-open .wj-detail{position:absolute!important;inset:0!important;height:100%!important;overflow-y:auto!important}
html[data-layout="mobile"] .wj-secondary-toggle{display:inline-flex!important;width:36px!important;min-width:36px!important;height:36px;padding:0!important;gap:0!important;background:var(--accent)!important;border-color:var(--accent)!important;color:#fff!important;box-shadow:0 6px 14px color-mix(in srgb,var(--accent) 30%,transparent)}
html[data-layout="mobile"] .wj-secondary-toggle-label{display:none}
html[data-layout="mobile"] .wj-top-actions{max-width:58vw;overflow:visible;flex-wrap:nowrap}
html[data-layout="mobile"] .wj-title-wrap{max-width:none!important;min-width:0!important}

/* Team unified 2026-09-01 */
.wj-person-type-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:14px}.wj-person-type-card{appearance:none;border:1px solid var(--border);background:var(--surface-raised);color:var(--text);border-radius:20px;padding:20px;text-align:left;display:grid;gap:6px;min-height:112px;cursor:pointer;transition:.18s ease}.wj-person-type-card:hover{border-color:var(--accent);transform:translateY(-1px);box-shadow:var(--shadow-soft)}.wj-person-type-card strong{font-size:16px}.wj-person-type-card span{color:var(--muted);font-size:12px}.wj-dropzone{border:1.5px dashed var(--border);border-radius:16px;min-height:96px;display:grid;place-items:center;text-align:center;padding:18px;margin-top:12px;cursor:pointer;background:var(--surface-sunken);transition:.18s ease}.wj-dropzone.dragging,.wj-dropzone:hover{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 7%,var(--surface-sunken))}.wj-dropzone strong{font-size:13px}.wj-incident-person-step{padding:4px}.wj-incident-person-step>h2{margin:6px 0 18px;font-size:26px}@media(max-width:699px){.wj-person-type-grid{grid-template-columns:1fr}.wj-person-type-card{min-height:96px}}

/* Vehicle occupancy clarity — 2026-09-01 */
.wj-toast-root{top:84px;right:18px;pointer-events:none}.wj-toast{pointer-events:auto}
.wj-vehicle-status{display:inline-flex;align-items:center;gap:6px;width:max-content;border-radius:999px;padding:5px 9px;font-size:11px;font-weight:800;line-height:1;background:var(--surface-sunken);color:var(--muted);white-space:nowrap}.wj-vehicle-status>i{width:7px;height:7px;border-radius:50%;background:currentColor}.wj-vehicle-status.in-use{background:color-mix(in srgb,var(--ok) 12%,var(--surface));color:var(--ok)}.wj-vehicle-status.available{background:color-mix(in srgb,#3b82f6 10%,var(--surface));color:#2563eb}.wj-vehicle-status.maintenance{background:color-mix(in srgb,#f59e0b 13%,var(--surface));color:#b45309}.wj-vehicle-status.offline{background:color-mix(in srgb,var(--danger) 10%,var(--surface));color:var(--danger)}
.wj-vehicle-choice{border:0;background:none;padding:0;text-align:left;color:inherit;font:inherit}.wj-vehicle-choice>span{grid-template-columns:58px minmax(0,1fr) auto}.wj-vehicle-choice>span>i{min-width:0}.wj-vehicle-choice>span>i>em{display:flex;align-items:center;gap:8px;margin-top:4px;font-style:normal}.wj-vehicle-choice.is-occupied>span{border-color:color-mix(in srgb,var(--ok) 55%,var(--border));background:color-mix(in srgb,var(--ok) 5%,var(--surface));cursor:pointer}.wj-vehicle-choice.is-occupied:hover>span{box-shadow:0 0 0 3px color-mix(in srgb,var(--ok) 10%,transparent)}
.wj-vehicle-launch-card.occupied{border-color:color-mix(in srgb,var(--ok) 28%,var(--border));background:linear-gradient(135deg,color-mix(in srgb,var(--ok) 5%,var(--surface)),var(--surface-sunken))}.wj-vehicle-card-copy{min-width:0}.wj-vehicle-card-title{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.wj-vehicle-card-title h3{margin:3px 0 0}.wj-vehicle-current-user{display:grid;grid-template-columns:48px 1fr;gap:12px;align-items:center;padding:14px;border:1px solid color-mix(in srgb,var(--ok) 18%,var(--border));border-radius:16px;background:color-mix(in srgb,var(--ok) 5%,var(--surface));margin-top:12px}.wj-vehicle-current-user>div:last-child{display:grid;gap:3px}.wj-vehicle-current-user span{font-size:11px;letter-spacing:.11em;font-weight:900;color:var(--ok)}.wj-vehicle-current-user small{color:var(--muted)}.wj-vehicle-user-avatar{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:var(--blue-soft);color:var(--blue);font-weight:900}.wj-vehicle-trip-info{margin-top:12px;padding:14px;border:1px solid color-mix(in srgb,var(--accent) 25%,var(--border));border-radius:16px;background:color-mix(in srgb,var(--accent) 3%,var(--surface))}.wj-vehicle-trip-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.wj-vehicle-trip-grid>div{display:grid;gap:3px;padding:10px;border-radius:12px;background:var(--surface)}.wj-vehicle-trip-grid span{font-size:11px;color:var(--muted)}.wj-vehicle-trip-grid strong{font-size:12px}.wj-vehicle-finish-form{margin-top:14px}.wj-vehicle-photo-drop{position:relative;min-height:76px;border:1px dashed var(--border-strong);border-radius:16px;background:var(--surface-sunken);display:flex;align-items:center;justify-content:center;gap:10px;padding:14px;text-align:left;cursor:pointer}.wj-vehicle-photo-drop>span:nth-child(2){display:grid;gap:3px}.wj-vehicle-photo-drop small{color:var(--muted)}.wj-vehicle-photo-drop input{position:absolute;inset:0;opacity:0;cursor:pointer}.wj-vehicle-photo-drop.dragging,.wj-vehicle-photo-drop.has-file{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 5%,var(--surface))}
.wj-vehicle-row-wrap{display:grid;gap:2px;border-bottom:1px solid var(--hairline)}.wj-vehicle-row-wrap .wj-vehicle-list-row{border-bottom:0}.wj-vehicle-row-extra{padding:0 4px 10px 74px}
.wj-vehicle-active{cursor:pointer;border-color:color-mix(in srgb,var(--ok) 24%,var(--hairline));background:color-mix(in srgb,var(--ok) 3%,var(--surface))}.wj-vehicle-active-icon{overflow:hidden}.wj-vehicle-active-icon img{width:100%;height:100%;object-fit:cover}.wj-vehicle-active-actions{display:flex;align-items:center;gap:8px}.wj-vehicle-status-legend{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.wj-vehicle-list{display:grid}.wj-vehicle-list-row{width:100%;display:grid;grid-template-columns:62px minmax(0,1fr) minmax(180px,.65fr) 20px;gap:12px;align-items:center;padding:13px 4px;border:0;border-bottom:1px solid var(--hairline);background:transparent;color:var(--text);text-align:left}.wj-vehicle-list-row:last-child{border-bottom:0}.wj-vehicle-list-row.is-occupied{cursor:pointer}.wj-vehicle-list-row.is-occupied:hover{background:color-mix(in srgb,var(--ok) 4%,var(--surface));border-radius:16px}.wj-vehicle-list-media{width:58px;height:48px;display:grid;place-items:center;border-radius:12px;background:var(--surface-sunken);overflow:hidden;color:var(--accent)}.wj-vehicle-list-media img{width:100%;height:100%;object-fit:cover}.wj-vehicle-list-copy,.wj-vehicle-list-state{display:grid;gap:4px;min-width:0}.wj-vehicle-list-copy small,.wj-vehicle-list-state small{color:var(--muted);font-size:11px}.wj-vehicle-list-state{justify-items:start}.wj-vehicle-list-row.oneclick-available{cursor:pointer}.wj-vehicle-list-row.oneclick-available:hover{background:color-mix(in srgb,var(--ok) 5%,var(--surface));border-radius:16px}.wj-vehicle-list-row.mine-oneclick{cursor:pointer;background:color-mix(in srgb,var(--ok) 6%,var(--surface));border-radius:16px}.wj-vehicle-list-row.mine-oneclick:hover{background:color-mix(in srgb,var(--ok) 11%,var(--surface))}
@media(max-width:699px){.wj-toast-root{top:72px;left:12px;right:12px}.wj-toast{max-width:none}.wj-vehicle-trip-grid{grid-template-columns:1fr}.wj-vehicle-card-title{align-items:flex-start}.wj-vehicle-active-actions{grid-column:1/-1;justify-content:space-between}.wj-vehicle-status-legend{display:none}.wj-vehicle-list-row{grid-template-columns:52px minmax(0,1fr) auto;padding:12px 0}.wj-vehicle-list-media{width:48px;height:44px}.wj-vehicle-list-state{grid-column:2/4;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.wj-vehicle-list-row>svg{display:none}}
.wj-center-gate{max-width:420px;margin:8vh auto;padding:32px 26px;text-align:center;border:1px solid var(--border);border-radius:var(--r2);background:var(--surface);box-shadow:var(--shadow)}.wj-center-gate-icon{width:56px;height:56px;margin:0 auto 16px;display:grid;place-items:center;border-radius:16px;background:color-mix(in srgb,var(--accent) 12%,var(--surface));color:var(--accent)}.wj-center-gate h2{margin:0 0 8px;font-size:20px;letter-spacing:-.02em}.wj-center-gate p{margin:0 0 20px;color:var(--muted);font-size:13px;line-height:1.55}.wj-center-gate-list{display:grid;gap:8px;text-align:left}.wj-center-gate-option{display:flex;align-items:center;gap:10px;width:100%;padding:12px 14px;border:1px solid var(--border);border-radius:12px;background:var(--surface2);color:var(--text);font-weight:700;font-size:13px;transition:border-color .15s ease,background .15s ease}.wj-center-gate-option>svg:first-child{color:var(--accent);flex:none}.wj-center-gate-option>span{flex:1;text-align:left}.wj-center-gate-option>svg:last-child{color:var(--muted);flex:none}.wj-center-gate-option:hover{border-color:color-mix(in srgb,var(--accent) 45%,var(--border));background:color-mix(in srgb,var(--accent) 5%,var(--surface2))}
/* Photo confirm/retake — 2026-09-04 */
.wj-photo-confirm{border:1px solid var(--border-strong);border-radius:16px;background:var(--surface-sunken);padding:10px;display:grid;gap:10px}
.wj-photo-confirm img{width:100%;max-height:280px;object-fit:contain;border-radius:12px;background:var(--surface)}
.wj-photo-confirm-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.wj-photo-confirm.is-confirmed{border-color:color-mix(in srgb,var(--ok) 45%,var(--border-strong))}
/* Vehicle "in use" topbar indicator */
.wj-vehicle-launcher{position:relative}
.wj-vehicle-launcher.in-use{color:var(--ok);border-color:color-mix(in srgb,var(--ok) 45%,var(--border))}
.wj-vehicle-badge{position:absolute;top:5px;right:5px;width:8px;height:8px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 2px var(--surface)}
/* Pedidos quick access — 2026-09-04 */
.wj-quick-access{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
.wj-quick-access-card{display:flex;align-items:center;gap:14px;padding:18px;border:1px solid var(--border);border-radius:20px;background:var(--surface);text-align:left;box-shadow:0 1px 0 rgba(15,23,42,.02);transition:.18s ease}
.wj-quick-access-card:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--accent) 35%,var(--border));box-shadow:var(--shadow-soft)}
.wj-quick-access-icon{width:48px;height:48px;flex:none;display:grid;place-items:center;border-radius:16px;background:color-mix(in srgb,var(--accent) 12%,var(--surface));color:var(--accent)}
.wj-quick-access-card.urgent .wj-quick-access-icon{background:color-mix(in srgb,var(--danger) 12%,var(--surface));color:var(--danger)}
.wj-quick-access-copy{display:grid;gap:2px;min-width:0}
.wj-quick-access-copy strong{font-size:14px}
.wj-quick-access-copy small{color:var(--muted);font-size:12px}
@media(max-width:699px){
 .wj-overview{gap:12px}
 .wj-overview .wj-metric-strip{grid-template-columns:1fr 1fr;gap:8px}
 .wj-metric-card,.wj-overview-card{padding:11px;gap:8px;min-height:0}
 .wj-overview-grid{grid-template-columns:1fr;gap:8px}
 .wj-quick-access{grid-template-columns:1fr}
 .wj-quick-access-card{padding:14px}
}

/* === 2.7 Shell & primitives — unified visual pass === */
:root{
  --blue:var(--accent);--blue-soft:color-mix(in srgb,var(--accent) 10%,var(--surface-raised,var(--surface)));
  --sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-8:32px;
  --radius-control:12px;--radius-panel:16px;--radius-workspace:22px;
}
html[data-theme="dark"]{--blue-soft:color-mix(in srgb,var(--accent) 16%,var(--surface-raised,var(--surface)))}

.wj-app-rail,.wj-sidebar{width:var(--rail,var(--sidebar));background:var(--surface-raised,var(--surface));border-right:1px solid var(--hairline,var(--border));padding:var(--sp-4) var(--sp-3);display:flex;flex-direction:column;gap:2px}
.wj-side-head{height:52px;flex:0 0 auto;display:flex;align-items:center;padding:0 var(--sp-1) var(--sp-2)}
.wj-brand-lockup{width:100%;border:0;background:transparent;display:flex;align-items:center;gap:var(--sp-3);padding:6px;border-radius:var(--radius-control);color:var(--text);text-align:left;transition:background .15s ease}
.wj-brand-lockup:hover{background:var(--surface-sunken)}
.wj-brand-mark{width:32px;height:32px;flex:0 0 auto;border-radius:12px;display:grid;place-items:center;background:linear-gradient(155deg,var(--accent),color-mix(in srgb,var(--accent) 60%,#111));color:#fff;font-size:12px;font-weight:900;letter-spacing:-.02em}
.wj-brand-copy{display:grid;line-height:1.1;min-width:0}
.wj-brand-copy b{font-size:14px;letter-spacing:-.01em}
.wj-brand-copy small{font-size:11px;color:var(--muted);font-weight:700;margin-top:2px}

.wj-nav{gap:2px;padding-top:var(--sp-2)}
.wj-nav-section{padding:var(--sp-4) var(--sp-2) 6px;color:var(--muted);font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}
.wj-venue-switcher{position:relative;margin:0 0 var(--sp-3)}
.wj-venue-trigger{width:100%;display:flex;align-items:center;gap:var(--sp-2);min-height:38px;padding:0 var(--sp-2);border:1px solid var(--hairline,var(--border));background:var(--surface-sunken);border-radius:var(--radius-control);color:var(--text);font-size:13px;font-weight:700}
.wj-venue-trigger:hover{border-color:var(--accent)}
.wj-venue-trigger.hq{color:var(--accent);border-color:var(--accent)}
.wj-venue-trigger-label{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left}
.wj-venue-trigger>svg:last-child{flex:0 0 auto;opacity:.6}
.wj-venue-menu{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:40;background:var(--surface-raised,var(--surface));border:1px solid var(--hairline,var(--border));border-radius:var(--radius-control);box-shadow:0 8px 24px rgba(16,24,40,.16);padding:4px;display:grid;gap:2px;max-height:320px;overflow:auto}
.wj-venue-option{display:flex;align-items:center;gap:var(--sp-2);min-height:34px;padding:0 var(--sp-2);border:0;background:transparent;border-radius:8px;color:var(--text);font-size:13px;font-weight:600;text-align:left}
.wj-venue-option span:first-of-type{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wj-venue-option:hover{background:var(--surface-sunken)}
.wj-venue-option.active{background:var(--blue-soft);color:var(--accent)}
.wj-venue-divider{height:1px;background:var(--hairline,var(--border));margin:4px 2px}
.wj-venue-hq-badge{flex:0 0 auto;font-size:11px;font-weight:800;letter-spacing:.04em;color:var(--accent);background:var(--blue-soft);padding:2px 5px;border-radius:5px}
html[data-layout="mobile"] .wj-venue-switcher{display:none}
.wj-hq-indicator{display:inline-flex;align-items:center;gap:4px;margin-left:8px;padding:2px 7px;border-radius:6px;background:var(--blue-soft);color:var(--accent);font-size:11px;font-weight:800;letter-spacing:.04em;vertical-align:middle}
.wj-nav-btn{min-height:40px;padding:0 var(--sp-3);border-radius:var(--radius-control);gap:var(--sp-3);font-size:13px;font-weight:650;color:var(--muted);transition:background .14s ease,color .14s ease}
.wj-nav-btn:hover{background:var(--surface-sunken);color:var(--text)}
.wj-nav-btn.active{background:var(--blue-soft);color:var(--accent);font-weight:750;box-shadow:none}
.wj-nav-icon,.wj-nav-btn>svg{width:19px;height:19px;flex:0 0 auto}

.wj-side-foot{margin-top:auto;padding-top:var(--sp-3);border-top:1px solid var(--hairline,var(--border));display:grid;gap:4px}
.wj-user-chip{border:1px solid transparent;background:var(--surface-sunken);border-radius:var(--radius-control);padding:8px;gap:var(--sp-2)}
.wj-user-chip:hover{border-color:var(--hairline,var(--border))}

.wj-topbar{padding:0 var(--sp-5);gap:var(--sp-3);border-bottom:1px solid var(--hairline,var(--border));background:color-mix(in srgb,var(--surface-raised,var(--surface)) 88%,transparent)}
.wj-page-title{font-size:16px;font-weight:750;letter-spacing:-.01em}
.wj-eyebrow{font-size:11px;font-weight:700;letter-spacing:.04em;color:var(--muted)}
.wj-global-search{border-radius:var(--radius-control);background:var(--surface-sunken);border:1px solid transparent;transition:border-color .15s ease,background .15s ease}
.wj-global-search:focus-within{border-color:var(--accent);background:var(--surface-raised,var(--surface))}
.wj-top-actions .wj-btn.icon,.wj-btn.icon{width:38px;height:38px;border-radius:12px}
.wj-top-avatar{width:34px;height:34px}

.wj-card,.wj-data-surface,.wj-stat{border-radius:var(--radius-panel);border-color:var(--hairline,var(--border))}
.wj-card,.wj-data-surface{padding:var(--sp-5)}
.wj-stat{padding:var(--sp-4) var(--sp-4);box-shadow:none}
.wj-stat span{font-size:11px;font-weight:750;letter-spacing:.01em}
.wj-stat strong{font-size:25px;letter-spacing:-.03em;margin-top:5px;font-variant-numeric:tabular-nums}
.wj-section-heading h3{font-weight:750}
.wj-dashboard-stat .wj-stat-icon{color:var(--accent);background:var(--blue-soft)}

.wj-nav-btn:focus-visible,.wj-brand-lockup:focus-visible,.wj-user-chip:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

html[data-layout="mobile"] .wj-mobile-dock button.active,
.wj-mobile-dock button.active{background:var(--blue-soft);color:var(--accent)}

.wj-center-gate{border-radius:var(--radius-workspace);box-shadow:var(--shadow-soft,var(--shadow))}
.wj-center-gate-icon{background:var(--blue-soft);color:var(--accent)}
.wj-center-gate-option:hover{border-color:color-mix(in srgb,var(--accent) 45%,var(--hairline,var(--border)))}
.wj-compact-field.wj-center-filter{min-width:150px}

@media(max-width:1179px){
  .wj-app-rail,.wj-sidebar{padding-inline:var(--sp-2)}
}

/* === Detail drawer (overlay panel, list stays full width) === */
.wj-drawer-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.34);backdrop-filter:blur(2px);z-index:85;opacity:0;visibility:hidden;transition:opacity .2s ease,visibility .2s ease}
.wj-drawer-backdrop.open{opacity:1;visibility:visible}
.wj-detail-drawer{position:fixed;top:0;right:0;bottom:0;width:min(560px,92vw);background:var(--surface-raised,var(--surface));box-shadow:-24px 0 60px rgba(15,23,42,.18);z-index:86;display:flex;flex-direction:column;transform:translateX(100%);transition:transform .22s cubic-bezier(.2,.8,.2,1)}
.wj-drawer-backdrop.open .wj-detail-drawer{transform:translateX(0)}
.wj-drawer-head{flex:0 0 auto;padding:18px 20px;border-bottom:1px solid var(--hairline,var(--border));display:flex;align-items:flex-start;gap:12px}.wj-drawer-back{flex:0 0 auto}
.wj-drawer-head>div{flex:1;min-width:0}
.wj-drawer-head h2{margin:0;font-size:20px;letter-spacing:-.02em;line-height:1.25}
.wj-drawer-head p{margin:4px 0 0;color:var(--muted);font-size:12px}
.wj-drawer-body{flex:1;min-height:0;overflow:auto;padding:20px}
.wj-drawer-foot{flex:0 0 auto;border-top:1px solid var(--hairline,var(--border));padding:14px 20px;display:flex;justify-content:flex-end;gap:8px;background:var(--surface-raised,var(--surface))}
.wj-list-full{gap:8px}
.wj-list-full .wj-row{width:100%;border:1px solid var(--hairline,var(--border));border-radius:var(--radius-control,12px);background:var(--surface-raised,var(--surface));margin-bottom:0}
.wj-list-full .wj-row:hover{background:var(--surface-sunken,var(--surface2));border-color:var(--border-strong)}
/* Lista a página completa (facturas, clientes, productos…): crece con su contenido y la página es la que hace scroll.
   Si fuese su propio contenedor con scroll, la animación de entrada de las filas (12px hacia arriba) la desbordaba
   un instante al recargar y en Windows quedaba una barra de scroll vacía. Solo la lista maestra (.wj-master) hace scroll. */
.wj-list.wj-list-full{overflow:visible}
@media(max-width:699px){.wj-detail-drawer{width:100%}.wj-drawer-head{padding:16px}.wj-drawer-body{padding:16px}}

/* Drawer resize handle */
.wj-drawer-resize{position:absolute;left:-4px;top:0;bottom:0;width:9px;cursor:col-resize;z-index:2;touch-action:none}
.wj-drawer-resize::after{content:"";position:absolute;left:4px;top:0;bottom:0;width:1px;background:transparent;transition:background .15s ease}
.wj-drawer-resize:hover::after,.wj-drawer-resize:active::after{background:var(--accent)}
@media(max-width:699px){.wj-drawer-resize{display:none}}

/* === WJT 2.7 Premium polish pass (shared components only) === */
/* 0. Buttons: crisper hairlines, single-tier elevation, springy press/hover feedback */
.wj-btn{box-shadow:0 1px 2px rgba(16,24,40,.04);transition:transform .16s cubic-bezier(.2,.8,.2,1),background .16s ease,border-color .16s ease,box-shadow .16s ease,color .16s ease}
.wj-btn:hover{box-shadow:0 2px 8px rgba(16,24,40,.07);transform:translateY(-1px)}
.wj-btn:active{transform:translateY(0) scale(.97);box-shadow:0 1px 2px rgba(16,24,40,.05)}
.wj-btn.primary,.wj-btn.accent,.wj-btn.cta{box-shadow:0 1px 2px rgba(16,24,40,.04),0 6px 16px color-mix(in srgb,var(--accent) 20%,transparent)}
.wj-btn.primary:hover,.wj-btn.accent:hover{box-shadow:0 3px 10px color-mix(in srgb,var(--accent) 28%,transparent);transform:translateY(-1px)}
.wj-btn.cta:hover{box-shadow:0 3px 10px color-mix(in srgb,var(--cta) 28%,transparent);transform:translateY(-1px)}
.wj-btn.ghost{box-shadow:none}.wj-btn.ghost:hover{box-shadow:none;transform:none;background:var(--surface-sunken,var(--surface2))}

/* Cards / list rows: consistent radius scale + single-tier soft elevation + hover lift */
.wj-card,.wj-stat,.wj-settings-card,.wj-data-surface{transition:box-shadow .2s ease,border-color .2s ease,transform .2s ease}
.wj-row{transition:background .15s ease,box-shadow .15s ease}
.wj-product,.wj-supplier,.wj-candidate,.wj-solicitud-launch{transition:transform .18s cubic-bezier(.2,.8,.2,1),box-shadow .18s ease,border-color .18s ease}
.wj-product:hover,.wj-supplier:hover,.wj-candidate:hover{transform:translateY(-2px);box-shadow:var(--shadow-soft)}

/* Inputs / selects: calmer focus ring, smoother transition */
.wj-input,.wj-select,.wj-textarea{transition:border-color .16s ease,box-shadow .16s ease,background .16s ease}
.wj-input:hover,.wj-select:hover,.wj-textarea:hover{border-color:var(--border-strong)}

/* Drawer / modal / overlay surfaces: consistent elevation + smoother entrance */
.wj-modal,.wj-detail-drawer{box-shadow:var(--shadow-float)}
.wj-modal-backdrop{transition:opacity .18s ease}

/* Nav buttons + icon buttons: consistent sizing/stroke, gentle hover motion */
.wj-nav-btn,.wj-secondary-nav button,.wj-module-subnav button,.wj-settings-nav{transition:background .16s ease,color .16s ease,transform .16s ease}
.wj-btn.icon,.wj-icon-button{transition:transform .16s cubic-bezier(.2,.8,.2,1),background .16s ease,border-color .16s ease}
.wj-btn.icon:hover,.wj-icon-button:hover{transform:translateY(-1px)}
.wj-btn.icon:active,.wj-icon-button:active{transform:scale(.94)}
.wj-btn.icon.active{background:color-mix(in srgb,var(--accent) 12%,var(--surface-raised,var(--surface)));color:var(--accent);border-color:color-mix(in srgb,var(--accent) 25%,transparent)}
.wj-list-sortbar{display:flex;justify-content:flex-end;padding:8px 10px;border-bottom:1px solid var(--border)}
.wj-sort-toggle .wj-icon{transition:transform .16s ease}
.wj-sort-toggle.asc .wj-icon{transform:rotate(180deg)}
.wj-master-head .wj-list-sortbar{padding:0;border:0;justify-content:flex-end}

/* Comfortable touch targets, high/low contrast text pairing already via --text/--muted */
.wj-toolbar>.wj-btn,.wj-btn.compact{min-height:38px}

/* 1. Unified filter/toolbar row — Incidencias is the reference: search -> filters -> date -> overflow trigger -> primary action */
.wj-toolbar{align-items:center}
.wj-toolbar .wj-search input,.wj-toolbar>.wj-select,.wj-toolbar>select,.wj-toolbar>input[type="date"],.wj-toolbar>input[type="week"]{min-height:38px}
.wj-toolbar>.wj-btn.primary{margin-left:auto}

/* 3. Bottom-left sidebar utility cluster: theme + language segmented control */
.wj-side-utility{display:flex;align-items:center;gap:2px;padding:3px;margin:0 0 8px;border:1px solid var(--hairline,var(--border));border-radius:12px;background:var(--surface-sunken,var(--surface2))}
.wj-side-utility-btn{flex:1;border:0;background:transparent;min-height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center;color:var(--muted);transition:background .16s ease,color .16s ease,transform .16s ease}
.wj-side-utility-btn:hover{color:var(--text);transform:translateY(-1px)}
.wj-side-utility-btn:active{transform:scale(.95)}
.wj-side-utility-btn.active{background:var(--surface-raised,var(--surface));color:var(--accent);box-shadow:0 1px 3px rgba(16,24,40,.08)}
.wj-side-utility-lang{font-size:11px;font-weight:800;letter-spacing:.02em}
@media(max-width:1179px){.wj-sidebar .wj-side-utility{flex-direction:column;padding:4px;gap:3px}.wj-sidebar .wj-side-utility-btn{width:100%}}
html[data-layout="mobile"] .wj-sidebar .wj-side-utility{display:none}
.wj-mobile-nav-utility{margin:14px 4px 4px}

/* 5. Shared status-filter segmented control (Todas / Nueva / En proceso / ...) */
.wj-status-tabs{display:flex;gap:2px;padding:3px;border:1px solid var(--hairline,var(--border));background:var(--surface-sunken,var(--surface2));border-radius:12px;width:max-content;max-width:100%;overflow:auto}
.wj-status-tab{border:0;background:transparent;min-height:34px;padding:0 13px;border-radius:8px;font-weight:700;font-size:12px;color:var(--muted);white-space:nowrap;transition:background .16s ease,color .16s ease,box-shadow .16s ease}
.wj-status-tab:hover{color:var(--text)}
.wj-status-tab.active{background:var(--surface-raised,var(--surface));color:var(--accent);box-shadow:0 1px 3px rgba(16,24,40,.08)}
@media(max-width:699px){.wj-status-tabs{width:100%}.wj-status-tab{flex:1;text-align:center}}

/* 4. CV split-list: guarantee the scrolling ancestor can actually shrink to receive wheel/trackpad input */
.wj-cv-split-list{overscroll-behavior:contain}

/* iOS zooms focused text controls below 16px; preserve page pinch zoom while preventing focus zoom. */
@media(max-width:699px){input:not([type="checkbox"]):not([type="radio"]),select,textarea,[contenteditable="true"]{font-size:16px!important}}

/* Productos: editor de horario de pases (timed_slot) */
.wj-product-slot{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr)) 44px;gap:10px;align-items:end;border:1px solid var(--border);border-radius:16px;padding:12px}
.wj-product-slot label{display:flex;flex-direction:column;gap:4px;min-width:0}
.wj-product-slot label span{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
@media(max-width:699px){.wj-product-slot{grid-template-columns:1fr 1fr}.wj-product-slot .wj-btn.icon{grid-column:1/-1;justify-self:end}}

/* Configuración → Reservas: lista ordenada de productos publicados (subir/bajar) */
.wj-reservation-row{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:12px;align-items:center}
.wj-reservation-row>div:nth-child(2){min-width:0}
.wj-reservation-row strong,.wj-reservation-row small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wj-reservation-row small{color:var(--muted);font-size:11px}
.wj-reservation-order{display:grid;place-items:center;width:28px;height:28px;border-radius:8px;background:var(--surface2);color:var(--muted);font-size:11px;font-weight:800;font-variant-numeric:tabular-nums}
.wj-reservation-warn{color:var(--warn)!important;font-weight:700}
.wj-reservation-actions{display:flex;gap:6px;flex:0 0 auto}
.wj-reservation-actions [data-move-up] svg{transform:rotate(-90deg)}
.wj-reservation-actions [data-move-down] svg{transform:rotate(90deg)}
.wj-copy-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.wj-copy-row .wj-input{flex:1 1 240px;min-width:0}
@media(max-width:520px){.wj-reservation-row{grid-template-columns:28px minmax(0,1fr)}.wj-reservation-actions{grid-column:1/-1;justify-content:flex-end}}

/* ------------------------------------------------------------------
   Página pública de reservas (/reservar/<venueId>) — sin sidebar ni dock.
   Usa los mismos tokens de diseño que el resto de la plataforma; layout propio
   de una sola columna que escala de móvil a escritorio sin breakpoints raros.
------------------------------------------------------------------ */
/* === Paleta Uelta azul: azul intenso con degradado a cian, marino y blanco hielo === */
:root{--bg:#F2F7FF;--surface:#FFFFFF;--surface2:#F5F9FF;--surface3:#E9F1FC;--text:#0B1B3F;--muted:#5B6B86;--text-3:#8A99B3;--border:#DDE7F5;--border-strong:#C6D5EA;--brand:#0B1B3F;--brand-2:#5B6B86;--accent:#1677FF;--accent-2:#0B5FE0;--accent-bright:#27C6FF;--accent-grad:linear-gradient(135deg,#27C6FF 0%,#1677FF 100%);--primary-weak:#E6F0FF;--cta:#0EA5FF;--cta-2:#0284E8;--on-accent:#FFFFFF;--ok:#16A34A;--success-weak:#E7F8EE;--warn:#B45309;--warn-weak:#FFF4DE;--danger:#E5343F;--danger-weak:#FDECEE;--neutral-weak:#EEF3FA;--info:#1677FF;--surface-raised:#FFFFFF;--surface-sunken:#F4F8FE;--surface-canvas:#F2F7FF;--surface-overlay:rgba(255,255,255,.94);--hairline:#E4ECF7;--shadow:0 1px 2px rgba(11,27,63,.05);--shadow-lg:0 4px 14px rgba(11,27,63,.08);--shadow-soft:0 1px 2px rgba(11,27,63,.04),0 10px 30px rgba(22,119,255,.08);--shadow-float:0 22px 60px rgba(11,27,63,.16);--tile-red:#FF4D5A;--tile-green:#22C55E;--tile-blue:#2F80FF;--tile-amber:#FFB020;--tile-purple:#7C5CFF;--tile-pink:#EC4899}
html[data-theme="dark"]{--bg:#07112A;--surface:#0D1B38;--surface2:#122347;--surface3:#1A2E57;--text:#EAF2FF;--muted:#9FB2D3;--text-3:#6F84A8;--border:#1F3563;--border-strong:#2C4677;--brand:#EAF2FF;--brand-2:#9FB2D3;--accent:#3B9BFF;--accent-2:#6CB6FF;--accent-bright:#4FD2FF;--accent-grad:linear-gradient(135deg,#27C6FF 0%,#1677FF 100%);--primary-weak:#102A55;--cta:#22C3FF;--cta-2:#5CD3FF;--on-accent:#FFFFFF;--ok:#4ADE80;--success-weak:#0F2A22;--warn:#FBBF24;--warn-weak:#2B2210;--danger:#FF6B75;--danger-weak:#321822;--neutral-weak:#14264A;--info:#5CC8FF;--surface-raised:#0F1F40;--surface-sunken:#0A1733;--surface-canvas:#07112A;--surface-overlay:rgba(13,27,56,.94);--hairline:#1C3160;--shadow:0 1px 2px rgba(0,0,0,.35);--shadow-lg:0 4px 16px rgba(0,0,0,.45);--shadow-soft:0 10px 30px rgba(0,0,0,.3);--shadow-float:0 24px 70px rgba(0,0,0,.5)}
.wj-public-body{background:var(--bg)}
.wj-public{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;background:var(--bg);color:var(--text)}
.wj-public-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:16px clamp(16px,4vw,32px);border-bottom:1px solid var(--border);background:var(--surface);position:sticky;top:0;z-index:5}
.wj-public-brand{font-weight:900;letter-spacing:.04em;font-size:15px}
.wj-public-venue{font-size:12px;font-weight:700;color:var(--muted);padding:4px 10px;border-radius:999px;background:var(--surface2)}
.wj-public-main{flex:1;width:100%;max-width:760px;margin:0 auto;padding:clamp(18px,4vw,32px) clamp(14px,4vw,24px) 48px;display:grid;gap:18px;align-content:start}
.wj-public-foot{padding:18px clamp(16px,4vw,32px) calc(18px + var(--safe));border-top:1px solid var(--border);color:var(--muted);font-size:11.5px;text-align:center}
.wj-public-steps{display:flex;flex-wrap:wrap;gap:6px;list-style:none;margin:0;padding:0}
.wj-public-steps li{display:flex;align-items:center;gap:7px;flex:1 1 120px;min-width:0;font-size:11.5px;font-weight:700;color:var(--text-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wj-public-steps li span{flex:0 0 auto;display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--surface2);color:var(--muted);font-size:11px}
.wj-public-steps li.current{color:var(--text)}
.wj-public-steps li.current span{background:var(--accent);color:var(--on-accent,#fff)}
.wj-public-steps li.done{color:var(--muted)}
.wj-public-steps li.done span{background:var(--primary-weak);color:var(--accent)}
.wj-public-back{align-self:start;border:0;background:transparent;color:var(--muted);font-weight:700;font-size:12.5px;display:inline-flex;align-items:center;gap:4px;padding:6px 2px;border-radius:8px}
.wj-public-back:hover{color:var(--text)}
.wj-public-back svg{transform:rotate(180deg)}
.wj-public-error{border:1px solid color-mix(in srgb,var(--danger) 34%,var(--border));background:var(--danger-weak);color:var(--danger);border-radius:12px;padding:11px 14px;font-weight:700;font-size:12.5px}
.wj-public-intro h1,.wj-public-card h1{margin:0 0 6px;font-size:clamp(22px,4.4vw,29px);letter-spacing:-.03em;line-height:1.15}
.wj-public-lead{margin:0;color:var(--muted);font-size:14px;line-height:1.55}
.wj-public-card{background:var(--surface);border:1px solid var(--border);border-radius:20px;padding:clamp(18px,4vw,26px);display:grid;gap:16px;align-content:start;box-shadow:var(--shadow)}
.wj-public-card>h1+.wj-public-lead{margin-top:-10px}
.wj-public-products{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr));gap:12px}
.wj-public-product{display:flex;align-items:center;gap:14px;text-align:left;width:100%;padding:14px;border:1px solid var(--border);border-radius:18px;background:var(--surface);box-shadow:var(--shadow);transition:border-color .16s ease,transform .12s ease}
.wj-public-product:hover{border-color:var(--accent)}
.wj-public-product:active{transform:scale(.995)}
.wj-public-product:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.wj-public-product>svg{flex:0 0 auto;color:var(--muted)}
.wj-public-product-img{flex:0 0 auto;width:64px;height:64px;border-radius:14px;overflow:hidden;background:var(--surface2)}
.wj-public-product-img img{width:100%;height:100%;object-fit:cover;display:block}
.wj-public-product-body{flex:1;min-width:0;display:grid;gap:5px}
.wj-public-product-body strong{font-size:15px;letter-spacing:-.01em}
.wj-public-product-desc{color:var(--muted);font-size:12.5px;line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.wj-public-product-foot{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.wj-public-price{font-weight:800;font-variant-numeric:tabular-nums}
.wj-public-type{font-size:11px;font-weight:700;color:var(--muted);background:var(--surface2);padding:2px 8px;border-radius:999px}
.wj-public-field{display:grid;gap:7px;border:0;padding:0;margin:0;min-width:0}
.wj-public-field>span,.wj-public-field>legend{font-size:12px;font-weight:750;color:var(--muted);padding:0}
.wj-public-hint{margin:0;color:var(--muted);font-size:12.5px}
.wj-public-slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px}
.wj-public-slot{display:grid;gap:2px;place-items:center;padding:10px 6px;border:1px solid var(--border);border-radius:14px;background:var(--surface);min-height:56px}
.wj-public-slot strong{font-size:14px;font-variant-numeric:tabular-nums}
.wj-public-slot small{font-size:10.5px;color:var(--muted)}
.wj-public-slot:hover:not(:disabled){border-color:var(--accent)}
.wj-public-slot.active{border-color:var(--accent);background:var(--primary-weak);color:var(--accent)}
.wj-public-slot.active small{color:inherit}
.wj-public-slot:disabled{opacity:.45;cursor:not-allowed;text-decoration:line-through}
.wj-public-total{margin:0;display:flex;align-items:baseline;justify-content:space-between;gap:12px;font-size:13px;color:var(--muted);border-top:1px solid var(--border);padding-top:14px}
.wj-public-total strong{font-size:22px;color:var(--text);letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.wj-public-cta{width:100%;min-height:50px;font-size:14px;border-radius:14px}
.wj-public-note{margin:0;font-size:12px;line-height:1.55;color:var(--muted);background:var(--surface2);border-radius:12px;padding:12px 14px}
#public-form{display:grid;gap:16px}
.wj-public-done .wj-public-check{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;background:var(--success-weak);color:var(--ok)}
.wj-public-reference{display:grid;gap:4px;justify-items:center;text-align:center;padding:18px;border:1px dashed var(--border-strong);border-radius:16px;background:var(--surface2)}
.wj-public-reference span{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.wj-public-reference strong{font-size:clamp(22px,5vw,28px);letter-spacing:.06em}
.wj-public-summary{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px 18px;margin:0;font-size:13px}
.wj-public-summary dt{color:var(--muted);font-weight:700;font-size:12px}
.wj-public-summary dd{margin:0;min-width:0;overflow-wrap:anywhere;text-align:right}
@media(max-width:520px){.wj-public-steps li{flex:0 0 auto;font-size:0;gap:0}.wj-public-steps li span{font-size:11px}.wj-public-steps{justify-content:center;gap:8px}.wj-public-summary{grid-template-columns:1fr}.wj-public-summary dd{text-align:left}}
.wj-handbook-layout{display:grid;grid-template-columns:260px minmax(0,1fr);gap:16px;min-width:0}.wj-handbook-layout>*{min-width:0}
.wj-handbook-sidebar{display:grid;gap:10px;align-content:start}
.wj-handbook-cats{display:grid;gap:6px}
.wj-handbook-cat{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;border:1px solid var(--border);background:var(--surface);cursor:pointer;text-align:left;position:relative}
.wj-handbook-cat span{flex:1;min-width:0;font-weight:700;font-size:13px}
.wj-handbook-cat small{color:var(--muted);font-size:11px}
.wj-handbook-cat.active{border-color:var(--accent);background:var(--accent-weak,color-mix(in srgb,var(--accent) 12%,var(--surface)))}
.wj-handbook-cat-actions{display:none;gap:4px}
.wj-handbook-cat:hover .wj-handbook-cat-actions{display:flex}
.wj-handbook-cat-actions button{border:none;background:transparent;cursor:pointer;color:var(--muted);font-size:11px}
.wj-handbook-main{min-width:0}
.wj-handbook-list-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}
.wj-handbook-article-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}
.wj-handbook-article-card{display:grid;gap:8px;padding:14px;border-radius:16px;border:1px solid var(--border);background:var(--surface);cursor:pointer;text-align:left}
.wj-handbook-article-card img{width:100%;height:100px;object-fit:cover;border-radius:12px}
.wj-handbook-article-icon{width:100%;height:100px;display:grid;place-items:center;background:var(--surface2);border-radius:12px;color:var(--muted)}
.wj-handbook-article-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.wj-handbook-article-admin{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.wj-handbook-cover{width:100%;max-height:320px;object-fit:cover;border-radius:16px;margin-bottom:14px}
.wj-handbook-content{line-height:1.7;font-size:14px}
.wj-handbook-content h2,.wj-handbook-content h3,.wj-handbook-content h4{margin:18px 0 8px}
.wj-handbook-content p{margin:0 0 12px}
.wj-handbook-content img{max-width:100%;border-radius:12px;margin:8px 0}
.wj-handbook-attachments{display:grid;gap:8px;margin:10px 0}
.wj-handbook-attachment-manage{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
@media(max-width:820px){.wj-handbook-layout{grid-template-columns:1fr}.wj-handbook-sidebar{order:1}.wj-handbook-cats{grid-auto-flow:column;overflow-x:auto;padding-bottom:4px}.wj-handbook-cat{flex:0 0 auto}}
@media(min-width:900px){.wj-public-main{max-width:880px}}
.wj-product-type-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}
.wj-product-type-card{display:grid;gap:8px;padding:16px;border-radius:16px;border:1px solid var(--border);background:var(--surface);cursor:pointer;text-align:left;justify-items:start}
.wj-product-type-card:hover{border-color:var(--accent)}
.wj-product-type-card small{color:var(--muted);font-size:12px;line-height:1.4}
.wj-product-type-chip{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:12px;background:var(--surface2);font-weight:700;font-size:13px;width:fit-content}
.wj-product-type-chip button{margin-left:8px}
.wj-image-dropzone{position:relative;display:grid;place-items:center;min-height:140px;border:2px dashed var(--border-strong);border-radius:16px;cursor:pointer;color:var(--muted);font-size:13px;text-align:center;padding:12px;overflow:hidden}
.wj-image-dropzone.dragging{border-color:var(--accent);background:var(--accent-weak,color-mix(in srgb,var(--accent) 10%,var(--surface)))}
.wj-image-dropzone-preview{max-width:100%;max-height:180px;border-radius:12px;object-fit:cover}
.wj-field-checklist{border:1px solid var(--border);border-radius:12px;padding:10px 12px}
.wj-field-checklist legend{font-size:12px;font-weight:700;color:var(--muted);padding:0 4px}
.wj-checklist-options{display:flex;flex-wrap:wrap;gap:6px 14px;max-height:180px;overflow-y:auto}
.wj-onboarding-checklist{margin-bottom:16px}
.wj-onboarding-progress-bar{height:8px;border-radius:999px;background:var(--surface2);overflow:hidden;margin:10px 0 14px}
.wj-onboarding-progress-fill{height:100%;background:var(--ok,#16a34a);border-radius:999px;transition:width .3s ease}
.wj-onboarding-steps{display:flex;flex-wrap:wrap;gap:10px}
.wj-onboarding-step{display:flex;align-items:center;gap:8px;padding:10px 14px;border-radius:12px;border:1px solid var(--border);background:var(--surface);cursor:pointer;font-size:13px;font-weight:600}
.wj-onboarding-step.done{border-color:var(--ok,#16a34a);background:color-mix(in srgb,var(--ok,#16a34a) 12%,var(--surface));color:var(--ok,#16a34a)}
.wj-onboarding-step input{accent-color:var(--ok,#16a34a)}
@media(max-width:600px){.wj-onboarding-steps{flex-direction:column}.wj-onboarding-step{width:100%}}
/* Spinner (loading-2.svg del paquete de animaciones del usuario), reutilizado
   como indicador global de navegación en la topbar. */
.wj-spinner{overflow:visible}
.wj-spinner-c{fill:currentColor;transform-box:fill-box;transform-origin:center;animation:wjSpinFade 1.4s ease-out both infinite}
@keyframes wjSpinFade{from{opacity:1;transform:scale(0)}to{opacity:0;transform:scale(1)}}
.wj-nav-loading{display:flex;align-items:center;color:var(--muted);flex:0 0 auto}
.wj-nav-loading[hidden]{display:none}
/* Animación de colapso del sidebar: @property registra --sidebar como <length>
   animable, así el cambio de ancho en los breakpoints se ve como una
   contracción suave en vez de un salto instantáneo. Se degrada con
   gracia (salto instantáneo, igual que antes) en navegadores sin soporte. */
@property --sidebar{syntax:'<length>';inherits:true;initial-value:260px}
.wj-shell{transition:grid-template-columns .28s cubic-bezier(.4,0,.2,1)}
.wj-sidebar{transition:padding .28s cubic-bezier(.4,0,.2,1)}
.wj-nav-btn{transition:background .16s,color .16s,padding .28s cubic-bezier(.4,0,.2,1),transform .16s}
.wj-nav-label,.wj-nav-section,.wj-nav-group-label,.wj-user-meta{transition:opacity .18s ease}
/* Reservas: página completa de "Crear reserva" (dos columnas, panel de
   resumen a la derecha, inspirado en el flujo de Roller). */
.wj-booking-create-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:20px;align-items:start}
.wj-booking-create-main{min-width:0}
.wj-booking-create-side{position:sticky;top:20px;padding:18px}
@media(max-width:900px){.wj-booking-create-layout{grid-template-columns:1fr}.wj-booking-create-side{position:static}}
/* Reservas: calendario mensual */
.wj-cal-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;margin:14px 0 6px;font-size:11px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;text-align:center}
.wj-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}
.wj-cal-cell{min-height:96px;border-radius:12px;border:1px solid var(--border);background:var(--surface);padding:8px;display:flex;flex-direction:column;gap:4px;align-items:flex-start;text-align:left;cursor:pointer;transition:border-color .15s,transform .15s}
.wj-cal-cell:hover{border-color:var(--accent);transform:translateY(-1px)}
.wj-cal-cell.empty{visibility:hidden;cursor:default}
.wj-cal-cell.today{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}
.wj-cal-daynum{font-weight:800;font-size:12px;color:var(--muted)}
.wj-cal-chip{font-size:11px;padding:2px 6px;border-radius:6px;background:var(--surface2);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wj-cal-more{font-size:11px;color:var(--muted);font-weight:700}
.wj-cal-month-label{font-size:14px}
@media(max-width:700px){.wj-cal-cell{min-height:64px}.wj-cal-chip{display:none}}
/* Price rules: franjas horarias */
.wj-price-window-row{border:1px solid var(--border);border-radius:16px;padding:12px;display:flex;flex-direction:column;gap:10px}
.wj-price-window-days{display:flex;flex-wrap:wrap;gap:6px}
.wj-check.sm{min-height:32px;padding:5px 8px;font-size:12px}
/* Schedules: fechas excluidas y toggles de días activos */
.wj-exclusion-date-row{display:flex;gap:8px;align-items:center}
.wj-exclusion-date-row input{flex:1}
.wj-check.sm.active{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 14%,var(--surface))}
/* POS: caja de venta */
.wj-pos-till-card{max-width:420px;margin:40px auto;padding:32px;text-align:center;border:1px solid var(--border);border-radius:20px;background:var(--surface)}
.wj-pos-till-icon{color:var(--accent);display:flex;justify-content:center;margin-bottom:8px}
.wj-pos-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:16px;align-items:start;margin-top:14px}
.wj-pos-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px}
.wj-pos-card{display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px 10px;border:1px solid var(--border);border-radius:16px;background:var(--surface);cursor:pointer;text-align:center;transition:transform .14s,border-color .14s}
.wj-pos-card:hover{transform:translateY(-2px);border-color:var(--accent)}
.wj-pos-card:active{transform:scale(.96)}
.wj-pos-card-img{width:44px;height:44px;border-radius:12px;overflow:hidden;display:flex;align-items:center;justify-content:center;background:var(--surface2);color:var(--muted)}
.wj-pos-card-img img{width:100%;height:100%;object-fit:cover}
.wj-pos-card small{color:var(--muted);font-size:11px}
.wj-pos-cart{position:sticky;top:20px;padding:18px;display:flex;flex-direction:column;gap:12px}
.wj-pos-line{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 0;border-bottom:1px solid var(--border)}
.wj-pos-line-actions{display:flex;align-items:center;gap:6px}
.wj-pos-pay-toggle{display:flex;gap:8px}
.wj-pos-pay-toggle .wj-check{flex:1;justify-content:center;cursor:pointer}
.wj-pos-pay-toggle .wj-check.active{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 14%,var(--surface))}
.wj-pos-totals{display:flex;flex-direction:column;gap:4px;font-size:14px}
.wj-pos-totals div{display:flex;justify-content:space-between}
.wj-pos-totals div:last-child strong{font-size:20px}
.wj-btn.icon.sm{width:28px;height:28px;border-radius:8px}
.wj-btn.lg{padding:14px;font-size:15px;font-weight:700}
@media(max-width:900px){.wj-pos-layout{grid-template-columns:1fr}.wj-pos-cart{position:static}}
/* Página pública: acento y fondo por centro (Apariencia del checkout) */
.wj-public[style*="--wj-public-accent"]{--accent:var(--wj-public-accent)}
.wj-public[style*="--wj-public-bg"] .wj-public-head{background-image:linear-gradient(180deg,rgba(0,0,0,.55),rgba(0,0,0,.25)),var(--wj-public-bg);background-size:cover;background-position:center;border-bottom:none;color:#fff}
.wj-public[style*="--wj-public-bg"] .wj-public-head .wj-public-venue{color:#fff}
.wj-public-check{display:flex;align-items:flex-start;gap:8px;font-size:13px;color:var(--muted);cursor:pointer}
.wj-public-check input{margin-top:3px}
/* Calendario de reservas: filtro de productos multi-selección */
.wj-cal-product-filter{position:relative}
.wj-cal-product-filter summary{list-style:none;display:inline-flex;align-items:center;gap:6px;cursor:pointer}
.wj-cal-product-filter summary::-webkit-details-marker{display:none}
.wj-cal-product-filter-menu{position:absolute;top:calc(100% + 6px);right:0;z-index:20;min-width:220px;max-height:320px;overflow:auto;padding:10px;border:1px solid var(--border);border-radius:12px;background:var(--surface);box-shadow:0 12px 32px rgba(0,0,0,.16);display:flex;flex-direction:column;gap:4px}

/* ---- Miniatura de producto en listados (la imagen se ve sin abrir la ficha) ---- */
.wj-row.has-thumb{display:flex;align-items:center;gap:14px}
.wj-row.has-thumb>div:nth-child(2){flex:1;min-width:0}
.wj-row-thumb{flex:0 0 auto;width:56px;height:56px;border-radius:12px;overflow:hidden;background:var(--surface2);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;color:var(--muted)}
.wj-row-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.wj-cat-dot{width:14px;height:14px;border-radius:50%;border:1px solid var(--border);flex:0 0 auto}

/* ---- Lanzador del TPV dentro del admin ---- */
.wj-tpv-launch{display:flex;align-items:center;gap:18px;padding:22px;border:1px solid var(--border);border-radius:20px;background:var(--surface);flex-wrap:wrap}
.wj-tpv-launch-art{width:72px;height:72px;border-radius:20px;display:flex;align-items:center;justify-content:center;background:var(--accent);color:var(--on-accent);flex:0 0 auto}
.wj-tpv-launch-copy{flex:1;min-width:200px}
.wj-tpv-launch-copy h3{margin:0 0 4px}

/* ---- Ventana independiente del TPV (/tpv) ---- */
.wj-tpv-body{overflow:hidden}
.wj-tpv-body .wj-shell,.wj-tpv-body .wj-topbar,.wj-tpv-body .wj-sidebar{display:none}
.wj-tpv-boot{min-height:100dvh;display:flex;align-items:center;justify-content:center;color:var(--muted);padding:24px;text-align:center}
.wj-tpv{display:grid;grid-template-columns:92px minmax(0,1fr) 344px;height:100dvh;background:var(--bg)}
.wj-tpv-rail{background:var(--text);color:var(--surface);display:flex;flex-direction:column;overflow:visible;z-index:5}
.wj-tpv-rail-top{padding:10px 6px;text-align:center;border-bottom:1px solid color-mix(in srgb,var(--surface) 16%,transparent);display:grid;gap:2px}
.wj-tpv-rail-top strong{font-size:12px;letter-spacing:.06em;text-transform:uppercase;opacity:.8}
.wj-tpv-rail-top #tpv-clock{font-size:22px;font-weight:700;font-variant-numeric:tabular-nums}
.wj-tpv-rail-top small{font-size:11px;opacity:.55}
.wj-tpv-rail-cats{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden}
.wj-tpv-cat{width:100%;border:0;background:transparent;color:color-mix(in srgb,var(--surface) 74%,var(--text));padding:10px 5px;font:inherit;font-size:11px;font-weight:600;line-height:1.25;text-transform:uppercase;cursor:pointer;display:grid;justify-items:center;gap:6px;border-bottom:1px solid color-mix(in srgb,var(--surface) 9%,transparent)}
.wj-tpv-cat:hover{background:color-mix(in srgb,var(--surface) 11%,transparent);color:var(--surface)}
.wj-tpv-cat.active{background:var(--accent);color:var(--on-accent)}
.wj-tpv-cat-dot{width:22px;height:6px;border-radius:99px;background:transparent}
.wj-tpv-exit{border:0;background:transparent;color:var(--danger);padding:16px 6px;font:inherit;font-size:12px;font-weight:600;cursor:pointer;display:grid;justify-items:center;gap:6px;border-top:1px solid color-mix(in srgb,var(--surface) 16%,transparent)}
.wj-tpv-exit:hover{background:color-mix(in srgb,var(--surface) 11%,transparent)}
.wj-tpv-main{display:flex;flex-direction:column;min-width:0}
/* Cabecera en una sola fila: el buscador manda, la fecha se queda a su tamaño y el icono de
   cestas aparcadas se va a la esquina, que es donde se busca. */
.wj-tpv-head{display:flex;align-items:center;gap:12px;padding:14px 18px;background:var(--surface);border-bottom:1px solid var(--border);flex-wrap:nowrap}
.wj-tpv-head .wj-tpv-search{flex:1 1 auto;min-width:0}
.wj-tpv-head #tpv-go-parked{margin-left:auto;flex:0 0 auto}
.wj-tpv-search{flex:1;min-width:220px;display:flex;align-items:center;gap:8px;color:var(--muted)}
.wj-tpv-search .wj-input{flex:1;font-size:16px;height:46px}
.wj-tpv-head-meta{font-size:12px;color:var(--muted)}
.wj-tpv-scroll{flex:1;overflow-y:auto;padding:14px 16px 40px}
.wj-tpv-group{margin-bottom:20px}
.wj-tpv-group h4{display:flex;align-items:center;gap:10px;margin:0 0 12px;font-size:13px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.wj-tpv-group h4 span{width:26px;height:6px;border-radius:99px;flex:0 0 auto;background:var(--border)}
.wj-tpv-group h4::after{content:'';flex:1;height:1px;background:var(--border)}
.wj-tpv-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(148px,1fr));gap:10px}
.wj-tpv-card{border:1px solid var(--border);border-top:5px solid var(--wj-tpv-card-accent,var(--accent));border-radius:12px;background:var(--surface);padding:0;overflow:hidden;cursor:pointer;text-align:left;display:flex;flex-direction:column;transition:transform .12s ease,box-shadow .12s ease}
.wj-tpv-card:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(0,0,0,.12)}
.wj-tpv-card:active{transform:scale(.98)}
.wj-tpv-card-img{aspect-ratio:1/1;background:var(--surface2);display:flex;align-items:center;justify-content:center;color:var(--muted);overflow:hidden}
.wj-tpv-card-img img{width:100%;height:100%;object-fit:cover;display:block}
.wj-tpv-card-body{padding:8px 10px 10px;display:grid;gap:4px}
.wj-tpv-card-body strong{font-size:13px;line-height:1.25;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.wj-tpv-card-foot{display:flex;justify-content:space-between;align-items:baseline;font-size:13px}
.wj-tpv-card-foot b{font-weight:700}
.wj-tpv-card-foot i{font-style:normal;color:var(--muted);font-variant-numeric:tabular-nums}
.wj-tpv-ticket{background:var(--surface);border-left:1px solid var(--border);display:flex;flex-direction:column;min-height:0}
.wj-tpv-ticket-lines{flex:1;overflow-y:auto;padding:8px 0}
.wj-tpv-ticket-empty{padding:40px 20px;text-align:center;color:var(--muted);font-size:13px}
.wj-tpv-line{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:4px 12px;padding:10px 14px;border-bottom:1px solid var(--border)}
.wj-tpv-line-qty{grid-area:qty;font-weight:700;font-variant-numeric:tabular-nums}
/* El pendiente de la reserva se lee como lo que es: una línea del ticket, no un adorno. */
.wj-tpv-line-due{background:color-mix(in srgb,var(--warn) 12%,transparent)}
.wj-tpv-line-due .wj-tpv-line-total{color:color-mix(in srgb,var(--warn) 75%,#000)}
.wj-tpv-line-name{display:grid;min-width:0}
.wj-tpv-line-name strong{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wj-tpv-line-name small{color:var(--muted);font-size:12px}
.wj-tpv-line-total{font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}
.wj-tpv-line-actions{display:flex;gap:6px;align-items:center}
.wj-tpv-step{display:inline-flex;align-items:center;gap:2px;border:1px solid var(--border);border-radius:12px;padding:2px}
.wj-tpv-step .wj-btn{border:0;min-width:30px;height:30px}
.wj-tpv-step-qty{min-width:24px;text-align:center;font-weight:800;font-variant-numeric:tabular-nums}
.wj-tpv-ticket-foot{border-top:1px solid var(--border);padding:14px;display:grid;gap:12px}
.wj-tpv-discount{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:13px}
.wj-tpv-discount .wj-input{width:96px}
.wj-tpv-pay-toggle{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.wj-tpv-pay{border:1px solid var(--border);background:var(--surface);border-radius:12px;padding:11px;font:inherit;font-weight:600;cursor:pointer;color:var(--text)}
.wj-tpv-pay.active{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.wj-tpv-totals{display:grid;gap:4px;font-size:13px}
.wj-tpv-totals div{display:flex;justify-content:space-between}
.wj-tpv-totals .total{font-size:18px;font-weight:700}
.wj-tpv-pay-btn{border:0;border-radius:12px;background:var(--ok);color:var(--bg);padding:18px;font:inherit;font-size:18px;font-weight:700;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:12px}
.wj-tpv-pay-btn:disabled{opacity:.45;cursor:not-allowed}
.wj-tpv-gate{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;text-align:center;padding:30px}
.wj-tpv-gate form{display:grid;gap:14px;width:min(320px,100%)}
@media(max-width:1100px){.wj-tpv{grid-template-columns:84px minmax(0,1fr) 296px}}
@media(max-width:820px){.wj-tpv{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr) auto;height:auto;min-height:100dvh}.wj-tpv-rail{flex-direction:row;overflow-x:auto}.wj-tpv-rail-cats{display:flex}.wj-tpv-cat{border-bottom:0;border-right:1px solid color-mix(in srgb,var(--surface) 9%,transparent);min-width:96px}.wj-tpv-ticket{border-left:0;border-top:1px solid var(--border)}}

/* ---- TPV completo: rail con etiquetas, pestañas, pases y cobro ---- */
.wj-tpv-cat{gap:4px}
.wj-tpv-cat span:last-child{display:block;line-height:1.2}
.wj-tpv-tabs{display:flex;gap:2px;overflow-x:auto;background:var(--surface);border-bottom:1px solid var(--border);padding:0 10px}
.wj-tpv-tab{flex:0 0 auto;border:0;background:transparent;padding:14px 14px 11px;font:inherit;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);cursor:pointer;display:grid;justify-items:center;gap:4px;border-bottom:3px solid transparent}
.wj-tpv-tab:hover{color:var(--text)}
.wj-tpv-tab.active{color:var(--accent);border-bottom-color:var(--accent)}
.wj-tpv-tab-search{padding:14px 18px 0}
.wj-tpv-date{max-width:170px;height:46px}
.wj-tpv-slots{display:flex;gap:0;overflow-x:auto;background:var(--surface);border-bottom:1px solid var(--border);padding:10px 18px}
.wj-tpv-slot{flex:0 0 auto;border:0;border-right:1px solid var(--border);background:transparent;padding:9px 18px;font:inherit;cursor:pointer;display:grid;gap:1px;justify-items:center;color:var(--text);border-radius:8px}
.wj-tpv-slot strong{font-size:16px;font-variant-numeric:tabular-nums}
.wj-tpv-slot small{font-size:11px;color:var(--muted)}
.wj-tpv-slot.active{background:var(--ok);color:var(--bg);border-right-color:transparent}
.wj-tpv-slot.active small{color:inherit}
.wj-tpv-ticket-head{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:12px;border-bottom:1px solid var(--border)}
.wj-tpv-ticket-booking{display:flex;align-items:center;gap:8px;padding:9px 12px;background:var(--primary-weak);color:var(--accent);font-size:12px;font-weight:700}
.wj-tpv-discount-btn{width:100%;border:0;border-radius:12px;background:var(--accent);color:var(--on-accent);padding:13px;font:inherit;font-weight:800;letter-spacing:.04em;cursor:pointer}
.wj-tpv-pay-row{display:flex;gap:8px;align-items:stretch}
.wj-tpv-pay-row .wj-tpv-pay-btn{flex:1}
.wj-tpv-pay-row .wj-btn.icon.lg{flex:0 0 auto;width:56px;border-radius:12px}
.wj-tpv-tender{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px}
.wj-tpv-tender-btn{display:grid;justify-items:center;gap:8px;padding:20px 12px;border:1px solid var(--border);border-radius:16px;background:var(--surface);cursor:pointer;font:inherit}
.wj-tpv-tender-btn:hover{border-color:var(--accent);color:var(--accent)}
.wj-tpv-gate h2{margin:0}
.wj-tpv-gate .wj-stack{width:min(460px,100%)}
.wj-tpv-gate .wj-asset-row{cursor:pointer;width:100%;text-align:left;font:inherit}
.wj-pos-toggles{display:grid;gap:2px}
.wj-pos-toggle{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 2px;border-bottom:1px solid var(--border);font-size:13px}
.wj-pos-toggle:last-child{border-bottom:0}
.wj-pos-toggle input{flex:0 0 auto;width:20px;height:20px;accent-color:var(--accent)}
.wj-pos-device-launch{display:flex;flex-wrap:wrap;gap:8px}
.wj-pos-gateway-redsys{border:1px solid var(--border);border-radius:16px;padding:16px}
.wj-pos-gateway-redsys legend{font-weight:800;font-size:12px;padding:0 6px}

/* La barra de suplantación añade una fila al grid de .wj-main, que por defecto
   solo declara topbar + contenido; sin esto el topbar se estira a toda la altura. */
.wj-main.wj-has-impersonation{grid-template-rows:auto var(--top) minmax(0,1fr)!important}

/* ---- Resumen del libro de transacciones ---- */
.wj-tx-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;margin-bottom:14px}
.wj-tx-stat{border:1px solid var(--border);border-radius:16px;background:var(--surface);padding:12px 14px;display:grid;gap:3px}
.wj-tx-stat span{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.wj-tx-stat strong{font-size:20px;font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.wj-tx-stat.total{border-color:var(--accent);background:var(--primary-weak)}
.wj-tx-stat.total strong{color:var(--accent)}

/* ---- Pulseras: tabla de colores por hora de fin ---- */
.wj-wb-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px;margin:12px 0}
.wj-wb-chip{display:flex;align-items:center;gap:10px;border:1px solid var(--border);border-radius:12px;padding:10px 12px;background:var(--surface)}
.wj-wb-chip strong{font-variant-numeric:tabular-nums}
.wj-wb-chip small{color:var(--muted);margin-left:auto}
.wj-wb-dot{width:18px;height:18px;border-radius:50%;flex:0 0 auto;border:1px solid var(--border-strong)}
.wj-wb-dot.lg{width:40px;height:40px}
.wj-wb-result{display:flex;align-items:center;gap:14px;margin-top:12px;padding:14px;border:1px solid var(--border);border-radius:16px;background:var(--surface2)}
.wj-wb-result strong{display:block;font-size:20px}
.wj-wb-result small{color:var(--muted)}

/* El selector de centro también dentro del cajón móvil: ahí el menú se abre en
   el flujo (no absoluto) para que el cajón no lo recorte. */
.wj-mobile-nav-venue{padding:0 var(--sp-3,14px) 10px}
html[data-layout="mobile"] .wj-mobile-nav-venue .wj-venue-switcher{display:block}
.wj-mobile-nav-venue .wj-venue-menu{position:static;box-shadow:none;margin-top:6px;max-height:46vh}
.wj-mobile-nav-venue .wj-venue-trigger{min-height:44px}
.wj-wb-row{display:flex;align-items:center;gap:10px}
.wj-wb-row .wj-input:not(.wj-wb-hex){flex:1}
.wj-wb-hex{width:54px;padding:2px;flex:0 0 auto}

/* Selector de modo del calendario (Interna / Reservas) */
.wj-calendar-mode .wj-tab{display:inline-flex;align-items:center;gap:6px}

/* Acceso directo al TPV en la barra superior: color de llamada a la acción para
   que se distinga a simple vista del resto de iconos. */
.wj-tpv-launcher{background:var(--cta);border-color:var(--cta);color:var(--on-accent)}
.wj-tpv-launcher:hover{background:var(--cta-2);border-color:var(--cta-2);color:var(--on-accent)}
.wj-tpv-launcher:focus-visible{outline:2px solid var(--cta);outline-offset:2px}

/* Aviso de contexto HQ: recuerda que lo que se edita aquí es la regla común. */
.wj-hq-note{display:flex;align-items:center;gap:8px;margin:0 0 14px;padding:10px 14px;border:1px solid color-mix(in srgb,var(--accent) 30%,var(--border));background:var(--primary-weak);color:var(--accent);border-radius:12px;font-size:13px;font-weight:650}

/* ---- Panel de Horarios: calendario continuo + productos por duración ---- */
.wj-sched-layout{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:14px;align-items:start}
.wj-sched-calendar{padding:16px;max-height:calc(100dvh - 260px);overflow-y:auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:18px}
.wj-sched-month h4{margin:0 0 8px;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.wj-sched-weekdays,.wj-sched-days{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}
.wj-sched-weekdays span{text-align:center;font-size:11px;font-weight:700;color:var(--text-3)}
.wj-sched-day{border:0;background:transparent;border-radius:50%;aspect-ratio:1;display:grid;place-items:center;font-size:11px;color:var(--muted);cursor:pointer;font-variant-numeric:tabular-nums}
.wj-sched-day.empty{visibility:hidden}
.wj-sched-day:hover{background:var(--surface2);color:var(--text)}
.wj-sched-day.on{background:var(--accent);color:var(--on-accent);font-weight:700}
.wj-sched-day.on:hover{background:var(--accent-2)}
.wj-sched-day.today{outline:2px solid var(--cta);outline-offset:-2px}
.wj-sched-products{padding:16px;display:grid;gap:12px;align-content:start;position:sticky;top:0;max-height:calc(100dvh - 260px);overflow-y:auto}
.wj-sched-products-head h3{margin:0}
.wj-sched-product-list{display:grid;gap:14px}
.wj-sched-group{display:grid;gap:2px}
.wj-sched-group-label{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:6px 2px}
.wj-sched-product{display:flex;align-items:center;gap:9px;width:100%;padding:10px;border:1px solid transparent;border-bottom-color:var(--border);background:transparent;cursor:pointer;text-align:left;font:inherit;color:var(--text)}
.wj-sched-product:hover{background:var(--surface2);border-radius:12px;border-bottom-color:transparent}
.wj-sched-product.active{background:var(--primary-weak);border-color:var(--accent);border-radius:12px;color:var(--accent)}
.wj-sched-product-name{flex:1;min-width:0;font-size:13px;font-weight:650;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wj-sched-warn{color:var(--warn);display:inline-flex}
.wj-sched-hours-layout{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:14px;align-items:start}
.wj-hours-row{display:flex;align-items:center;gap:12px;padding:11px 2px;border-bottom:1px solid var(--border);font-size:13px}
.wj-hours-row:last-child{border-bottom:0}
.wj-hours-row strong{min-width:150px}
.wj-hours-row span{font-variant-numeric:tabular-nums}
.wj-hours-edit-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:8px 0;border-bottom:1px solid var(--border)}
.wj-hours-edit-row strong{min-width:96px;font-size:13px}
.wj-hours-edit-row .wj-input{width:118px}
@media(max-width:1080px){.wj-sched-layout{grid-template-columns:1fr}.wj-sched-products{position:static;max-height:none}.wj-sched-calendar{max-height:none}}

/* Pie fijo del rail del TPV: configuración, tema/idioma y salida. */
.wj-tpv-rail-foot{margin-top:auto;border-top:1px solid color-mix(in srgb,var(--surface) 16%,transparent)}
.wj-tpv-rail-utility{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:8px 6px;border-bottom:1px solid color-mix(in srgb,var(--surface) 9%,transparent)}
.wj-tpv-util-btn{border:1px solid color-mix(in srgb,var(--surface) 20%,transparent);background:transparent;color:color-mix(in srgb,var(--surface) 74%,var(--text));border-radius:8px;padding:7px 0;display:grid;place-items:center;cursor:pointer;font:inherit;font-size:11px;font-weight:800}
.wj-tpv-util-btn:hover,.wj-tpv-util-btn.active{background:color-mix(in srgb,var(--surface) 14%,transparent);color:var(--surface)}
.wj-tpv-rail-foot .wj-tpv-exit{width:100%;border-top:1px solid color-mix(in srgb,var(--surface) 9%,transparent)}

/* ---- Editor de disposición del TPV (menús / secciones / baldosas) ---- */
.wj-template-tabs{margin-bottom:14px}
.wj-menu-editor{display:grid;grid-template-columns:186px minmax(0,1fr);gap:14px;align-items:start}
.wj-menu-list{display:grid;gap:3px;align-content:start;border:1px solid var(--border);border-radius:16px;padding:10px;background:var(--surface)}
.wj-menu-item{display:flex;align-items:center;gap:7px;width:100%;padding:9px;border:1px solid transparent;border-radius:12px;background:transparent;cursor:pointer;font:inherit;text-align:left;color:var(--text)}
.wj-menu-item:hover{background:var(--surface2)}
.wj-menu-item.active{background:var(--primary-weak);border-color:var(--accent);color:var(--accent)}
.wj-menu-grip{color:var(--text-3);cursor:grab;display:inline-flex}
.wj-menu-name{flex:1;min-width:0;font-size:13px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wj-menu-canvas{display:grid;gap:12px;min-width:0}
.wj-menu-canvas-head{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap}
.wj-menu-canvas-head .wj-field{flex:1;min-width:140px}
.wj-menu-section{border:1px solid var(--border);border-radius:16px;background:var(--surface);overflow:hidden}
.wj-menu-section>header{display:flex;align-items:center;gap:8px;padding:8px 10px;background:var(--surface2);border-bottom:1px solid var(--border)}
.wj-menu-section-name{flex:1;border:0;background:transparent;font-weight:800;font-size:12px;letter-spacing:.04em;text-transform:uppercase}
.wj-menu-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px;padding:12px}
.wj-menu-tile{position:relative;border:1px solid var(--border);border-radius:12px;overflow:hidden;background:var(--surface);display:grid}
.wj-menu-tile-img{aspect-ratio:4/3;display:grid;place-items:center;background:var(--surface2);color:var(--muted);overflow:hidden}
.wj-menu-tile-img img{width:100%;height:100%;object-fit:cover}
.wj-menu-tile small{padding:5px 6px;font-size:11px;line-height:1.25;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.wj-menu-tile.editing{outline:1px dashed var(--accent)}
.wj-menu-tile-actions{position:absolute;inset:auto 0 0 0;display:flex;justify-content:center;gap:2px;padding:3px;background:color-mix(in srgb,var(--surface) 88%,transparent)}
.wj-menu-section-actions,.wj-menu-canvas-actions{display:flex;gap:10px;align-items:center;padding:0 12px 12px;flex-wrap:wrap}
.wj-menu-canvas-actions{padding:0}
.wj-menu-empty{padding:30px;text-align:center;color:var(--muted);border:1px dashed var(--border-strong);border-radius:16px}
.wj-row-thumb.sm{width:34px;height:34px;border-radius:8px}
@media(max-width:720px){.wj-menu-editor{grid-template-columns:1fr}}

/* Editor de disposición a pantalla completa: el lienzo es lo importante. */
.wj-tpl-editor-page{display:grid;grid-template-rows:auto auto minmax(0,1fr);align-content:start;gap:14px;min-height:calc(100dvh - var(--top) - 44px)}
.wj-tpl-editor-page>#tpl-body{align-self:start}
.wj-tpl-editor-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap;position:sticky;top:0;z-index:6;padding:10px 0;background:var(--bg)}
.wj-tpl-editor-title{flex:1;min-width:200px}
.wj-tpl-editor-title h1{margin:0;font-size:22px;letter-spacing:-.02em;display:flex;align-items:center;gap:8px}
.wj-tpl-editor-title p{margin:2px 0 0;color:var(--muted);font-size:13px}
.wj-tpl-editor-page .wj-menu-editor{grid-template-columns:220px minmax(0,1fr)}
.wj-tpl-editor-page .wj-menu-tiles{grid-template-columns:repeat(auto-fill,minmax(132px,1fr))}

/* El menú de centros se ancla por coordenadas al abrirse, así que necesita
   ancho propio: pegado al rail colapsado los nombres salían cortados. */
.wj-venue-menu{min-width:232px;max-width:280px;z-index:120}
.wj-mobile-nav-venue .wj-venue-menu{min-width:0;max-width:none}
.wj-venue-option{display:flex;align-items:center;gap:9px;width:100%;padding:9px 10px;border:0;background:transparent;border-radius:12px;cursor:pointer;font:inherit;text-align:left;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wj-venue-option>span:not(.wj-venue-hq-badge){flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}

/* ---- Guía: bloque social (me gusta, comentarios y respuestas) ---- */
.wj-hb-social{margin-top:26px;padding-top:20px;border-top:1px solid var(--border);display:grid;gap:14px}
.wj-hb-social-bar{display:flex;align-items:center;gap:14px}
.wj-hb-like{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--border);background:var(--surface);border-radius:999px;padding:8px 15px;font:inherit;font-weight:700;font-size:13px;cursor:pointer;color:var(--text)}
.wj-hb-like:hover{border-color:var(--accent);color:var(--accent)}
.wj-hb-like.on{background:var(--primary-weak);border-color:var(--accent);color:var(--accent)}
.wj-hb-comment-form{display:grid;gap:8px;justify-items:end}
.wj-hb-comment-form .wj-textarea{width:100%}
.wj-hb-comments{display:grid;gap:12px}
.wj-hb-comment{border:1px solid var(--border);border-radius:16px;background:var(--surface);padding:12px 14px}
.wj-hb-comment>p,.wj-hb-reply>p{margin:6px 0 0;font-size:14px;line-height:1.55;white-space:pre-wrap;overflow-wrap:anywhere}
.wj-hb-comment-head{display:flex;align-items:center;gap:9px;font-size:12px;color:var(--muted)}
.wj-hb-comment-head strong{color:var(--text);font-size:13px}
.wj-hb-comment-head button{margin-left:auto}
.wj-hb-replies{display:grid;gap:8px;margin:10px 0 0 16px;padding-left:12px;border-left:2px solid var(--border)}
.wj-hb-reply{padding:6px 0}
.wj-hb-reply-form{display:flex;gap:8px;margin-top:10px}
.wj-hb-reply-form .wj-input{flex:1}
/* Contenido enriquecido de los artículos: código y vídeo incrustado. */
.wj-code{background:var(--surface2);border:1px solid var(--border);border-radius:12px;padding:12px 14px;overflow-x:auto;font-family:var(--font-mono);font-size:13px;line-height:1.6}
.wj-embed{position:relative;margin:14px 0;border-radius:16px;overflow:hidden;background:var(--surface2);aspect-ratio:16/9}
.wj-embed iframe,.wj-embed video{position:absolute;inset:0;width:100%;height:100%;border:0}

/* ---- TPV: franjas con color de pulsera, arqueo y sesiones ---- */
.wj-tpv-slot{border-top:4px solid var(--wj-tpv-card-accent,transparent);border-radius:10px 10px 8px 8px;min-width:132px}
.wj-tpv-slot-band{font-size:11px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.wj-tpv-slot.active .wj-tpv-slot-band{color:inherit}
.wj-wb-handout{display:flex;align-items:center;gap:14px;padding:12px;border:1px solid var(--border);border-radius:16px;background:var(--surface)}
.wj-wb-handout strong{display:block;font-size:15px}
.wj-wb-handout small{color:var(--muted)}
.wj-wb-handout b{margin-left:auto;font-size:20px;font-variant-numeric:tabular-nums}
.wj-close-expected,.wj-close-totals{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.wj-close-expected div,.wj-close-totals div{border:1px solid var(--border);border-radius:12px;padding:10px 12px;display:grid;gap:2px;background:var(--surface)}
.wj-close-expected span,.wj-close-totals span{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.wj-close-expected strong,.wj-close-totals strong{font-size:18px;font-variant-numeric:tabular-nums}
.wj-close-totals #tpv-diff.off{color:var(--danger)}
.wj-denoms{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.wj-denom{display:grid;grid-template-columns:52px 1fr;align-items:center;gap:8px;border:1px solid var(--border);border-radius:12px;padding:7px 9px;background:var(--surface)}
.wj-denom>span{font-size:12px;font-weight:800;font-variant-numeric:tabular-nums}
.wj-denom>b{grid-column:1/-1;text-align:right;font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}
.wj-denom .wj-input{padding:5px 8px;text-align:right}
.wj-till-session{border:1px solid var(--border);border-radius:16px;background:var(--surface);padding:12px 14px}
.wj-till-session>header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}
.wj-till-session dl{display:grid;grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:8px;margin:0}
.wj-till-session dl div{display:grid;gap:1px}
.wj-till-session dt{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.wj-till-session dd{margin:0;font-size:14px;font-weight:700;font-variant-numeric:tabular-nums}

/* Un hijo flex no encoge por debajo de su contenido sin min-height:0, así que
   la zona de scroll del TPV crecía y las páginas largas (Dispositivo,
   Hardware) no se podían desplazar. */
.wj-tpv-main{min-height:0}
.wj-tpv-scroll{min-height:0}
.wj-tpv-ticket-lines{min-height:0}

/* ---- TPV: relevo de turno (tarjetas centradas) ---- */
.wj-tpv-login-card.wide{width:min(560px,100%)}
.wj-tpv-login-brand{display:grid;justify-items:center;gap:4px;color:var(--accent)}
.wj-tpv-login-brand strong{font-size:15px;letter-spacing:.08em}
.wj-tpv-login-brand small{color:var(--muted);font-size:12px}

/* El centro al que pertenece esta caja, siempre visible en el rail. */
.wj-tpv-venue{display:flex;align-items:center;justify-content:center;gap:4px;background:var(--accent);color:var(--on-accent);border-radius:999px;padding:3px 8px;font-size:11px;font-weight:800;letter-spacing:.03em;text-transform:uppercase;margin-bottom:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wj-tpv-venue-warn{display:flex;align-items:center;gap:8px;padding:9px 18px;background:var(--warn-weak);color:var(--warn);font-size:13px;font-weight:700;border-bottom:1px solid var(--border)}

/* Barra de salidas: qué pulsera sale y en cuánto, siempre visible en caja. */
.wj-tpv-departures{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 18px;border-top:1px solid var(--border);background:var(--surface)}
.wj-tpv-departure{display:inline-flex;align-items:center;gap:7px;padding:6px 12px;border:1px solid var(--border);border-radius:999px;font-size:13px;color:var(--muted);background:var(--bg)}
.wj-tpv-departure b{font-size:15px;font-variant-numeric:tabular-nums;color:var(--text)}
.wj-tpv-departure.next{border-color:var(--cta);background:var(--surface);color:var(--text);font-weight:700}
.wj-tpv-departure.next b{color:var(--cta);font-size:18px}
.wj-tpv-departure .wj-wb-dot{width:13px;height:13px}

/* ---------- TPV: acabado y microinteracciones ---------- */
/* La baldosa se levanta al pasar por encima, la imagen se acerca un punto y al
   pulsar cede: el gesto se nota antes de que llegue la respuesta del servidor. */
.wj-tpv-card{position:relative;border-radius:16px}
.wj-tpv-card-img img{transition:transform .35s cubic-bezier(.22,1,.36,1)}
.wj-tpv-card:hover .wj-tpv-card-img img{transform:scale(1.06)}
.wj-tpv-card:hover{border-color:var(--wj-tpv-card-accent,var(--accent))}
.wj-tpv-card:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.wj-tpv-card::after{content:'';position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:var(--wj-tpv-card-accent,var(--accent));opacity:0;transition:opacity .18s ease}
.wj-tpv-card:active::after{opacity:.16;transition:none}
.wj-tpv-card-foot b{font-size:14px;font-variant-numeric:tabular-nums}

/* Entrada escalonada de las baldosas, muy corta, solo para dar sensación de
   que la rejilla se compone en vez de aparecer de golpe. */
@keyframes wj-tile-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.wj-tpv-grid .wj-tpv-card{animation:wj-tile-in .22s cubic-bezier(.22,1,.36,1) both}
.wj-tpv-grid .wj-tpv-card:nth-child(1){animation-delay:0ms}
.wj-tpv-grid .wj-tpv-card:nth-child(2){animation-delay:20ms}
.wj-tpv-grid .wj-tpv-card:nth-child(3){animation-delay:40ms}
.wj-tpv-grid .wj-tpv-card:nth-child(4){animation-delay:60ms}
.wj-tpv-grid .wj-tpv-card:nth-child(5){animation-delay:80ms}
.wj-tpv-grid .wj-tpv-card:nth-child(n+6){animation-delay:100ms}

/* Operador: quién está cobrando, arriba a la izquierda y siempre a la vista. */
.wj-tpv-operator{display:flex;align-items:center;justify-content:center;gap:5px;margin:5px 0 3px;min-width:0}
.wj-tpv-avatar{width:22px;height:22px;flex:0 0 auto;border-radius:50%;display:grid;place-items:center;background:var(--accent);color:var(--on-accent);font-size:11px;font-weight:800;letter-spacing:.02em}
.wj-tpv-operator strong{font-size:11px;font-weight:700;letter-spacing:.02em;text-transform:none;opacity:.92;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wj-tpv-rail-top .wj-tpv-venue{font-size:11px;padding:2px 6px}

/* "Más": un panel que sube desde el pie del carril. No cambia de página, así
   que no se pierde de vista lo que se estaba vendiendo. */
.wj-tpv-rail-foot{position:relative}
.wj-tpv-more-btn{width:100%;border:0;background:transparent;color:color-mix(in srgb,var(--surface) 74%,var(--text));padding:9px 4px;font:inherit;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;cursor:pointer;display:grid;justify-items:center;gap:3px}
.wj-tpv-more-btn:hover,.wj-tpv-more-btn[aria-expanded=true]{background:color-mix(in srgb,var(--surface) 12%,transparent);color:var(--surface)}
.wj-tpv-more-pop{position:absolute;left:6px;bottom:calc(100% + 6px);width:206px;z-index:40;padding:6px;border-radius:16px;background:var(--text);border:1px solid color-mix(in srgb,var(--surface) 20%,transparent);box-shadow:0 18px 44px rgba(0,0,0,.42);animation:wj-more-up .16s cubic-bezier(.22,1,.36,1) both}
@keyframes wj-more-up{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.wj-tpv-more-grid{display:grid;grid-template-columns:1fr 1fr;gap:3px}
.wj-tpv-more-grid .wj-tpv-cat{border-bottom:0;border-radius:12px;padding:11px 4px;font-size:11px}
.wj-tpv-more-pop .wj-tpv-rail-utility{border-bottom:0;padding:6px 0 4px}
.wj-tpv-more-pop .wj-tpv-exit{width:100%;border-radius:12px;padding:11px 6px;font-size:12px;display:flex;align-items:center;justify-content:center;gap:7px;border-top:0;background:color-mix(in srgb,var(--danger) 16%,transparent)}
.wj-tpv-more-pop .wj-tpv-exit:hover{background:color-mix(in srgb,var(--danger) 28%,transparent)}

@media(prefers-reduced-motion:reduce){
 .wj-tpv-grid .wj-tpv-card,.wj-tpv-more-pop{animation:none}
 .wj-tpv-card-img img{transition:none}
 .wj-tpv-card:hover{transform:none}
}

/* ---------- Interruptor ---------- */
.wj-switch{position:relative;display:inline-flex;align-items:center;flex:0 0 auto;width:42px;height:24px;cursor:pointer}
.wj-switch input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer}
.wj-switch span{position:absolute;inset:0;border-radius:999px;background:var(--border-strong,var(--border));transition:background .18s ease}
.wj-switch span::after{content:'';position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:var(--surface);box-shadow:0 1px 3px rgba(0,0,0,.25);transition:transform .18s cubic-bezier(.22,1,.36,1)}
.wj-switch input:checked+span{background:var(--ok)}
.wj-switch input:checked+span::after{transform:translateX(18px)}
.wj-switch input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}
.wj-switch input:disabled+span{opacity:.5}

/* ---------- Señal de estado (correos) ----------
   Un punto con un anillo que respira cuando el aviso está entregando. */
.wj-signal{position:relative;display:inline-grid;place-items:center;width:18px;height:18px;flex:0 0 auto}
.wj-signal i{width:9px;height:9px;border-radius:50%;background:var(--muted);display:block}
.wj-signal::before{content:'';position:absolute;inset:0;border-radius:50%;opacity:0}
.wj-signal.live i,.wj-signal.ready i{background:var(--ok)}
.wj-signal.live::before{background:var(--ok);opacity:.35;animation:wj-signal-pulse 1.8s ease-out infinite}
.wj-signal.warn i{background:var(--warn)}
.wj-signal.error i{background:var(--danger)}
.wj-signal.error::before{background:var(--danger);opacity:.3;animation:wj-signal-pulse 1.2s ease-out infinite}
.wj-signal.off i{background:var(--border-strong,var(--border))}
@keyframes wj-signal-pulse{0%{transform:scale(.6);opacity:.45}100%{transform:scale(1.9);opacity:0}}
.wj-mail-state{font-size:12px;font-weight:750;letter-spacing:.01em}
.wj-mail-state.live,.wj-mail-state.ready{color:var(--ok)}
.wj-mail-state.warn{color:var(--warn)}
.wj-mail-state.error{color:var(--danger)}
.wj-mail-state.off{color:var(--muted)}

/* ---------- Correos automáticos ---------- */
.wj-mail-smtp{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:16px;border:1px solid var(--border);background:var(--surface);margin-bottom:18px}
.wj-mail-smtp.warn{border-color:color-mix(in srgb,var(--warn) 45%,var(--border));background:var(--warn-weak)}
.wj-mail-smtp>div{flex:1;min-width:0;display:grid;gap:2px}
.wj-mail-smtp strong{font-size:14px}.wj-mail-smtp small{color:var(--muted);font-size:12px}
.wj-mail-section{margin-bottom:26px}
.wj-mail-list{display:grid;gap:8px}
.wj-mail-row{display:grid;grid-template-columns:18px minmax(0,1.6fr) minmax(0,1fr) auto 16px;align-items:center;gap:14px;padding:13px 16px;border:1px solid var(--border);border-radius:16px;background:var(--surface);cursor:pointer;transition:border-color .16s ease,transform .16s ease,box-shadow .16s ease}
.wj-mail-row:hover{border-color:var(--accent);transform:translateY(-1px);box-shadow:var(--shadow-sm,0 6px 18px rgba(0,0,0,.06))}
.wj-mail-row:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.wj-mail-row.off .wj-mail-copy{opacity:.6}
.wj-mail-copy{min-width:0;display:grid;gap:3px}
.wj-mail-copy strong{font-size:14px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.wj-mail-copy p{margin:0;font-size:13px;color:var(--muted);line-height:1.45}
.wj-mail-copy small{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:var(--muted)}
.wj-mail-stats{display:grid;gap:3px;min-width:0}
.wj-mail-stats small{font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wj-mail-chevron{color:var(--muted)}
.wj-mail-legend{display:flex;flex-wrap:wrap;gap:16px;padding:12px 4px;font-size:12px;color:var(--muted)}
.wj-mail-legend span{display:inline-flex;align-items:center;gap:7px}
.wj-mail-editor{display:grid;gap:16px}
.wj-mail-editor-meta{display:flex;align-items:center;gap:8px;font-size:13px}
.wj-mail-body{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px;line-height:1.55;min-height:220px}
.wj-mail-vars{display:flex;flex-wrap:wrap;gap:6px}
.wj-mail-var{border:1px solid var(--border);background:var(--surface2);color:var(--accent);border-radius:999px;padding:4px 10px;font:inherit;font-size:12px;font-weight:700;font-family:ui-monospace,Menlo,Consolas,monospace;cursor:pointer}
.wj-mail-var:hover{border-color:var(--accent);background:var(--primary-weak)}
.wj-mail-preview{border:1px solid var(--border);border-radius:14px;overflow:hidden;background:var(--surface2)}
.wj-mail-preview-head{padding:8px 14px;border-bottom:1px solid var(--border)}
.wj-mail-preview-mail{padding:14px 16px;background:var(--surface);display:grid;gap:10px}
.wj-mail-preview-mail strong{font-size:14px}
.wj-mail-preview-mail pre{margin:0;white-space:pre-wrap;font:inherit;font-size:13px;line-height:1.6;color:var(--text)}
.wj-mail-test{display:flex;align-items:end;gap:10px}
.wj-mail-test .wj-field{flex:1}
@media(max-width:820px){.wj-mail-row{grid-template-columns:18px minmax(0,1fr) auto;gap:10px}.wj-mail-stats,.wj-mail-chevron{display:none}}

/* ---------- Base de conocimiento ---------- */
.wj-kb{display:grid;gap:22px}
.wj-kb-head{display:flex;align-items:end;justify-content:space-between;gap:20px;flex-wrap:wrap}
.wj-kb-head-copy h1{margin:2px 0 4px;font-size:26px;letter-spacing:-.02em}
.wj-kb-head-copy p{margin:0;color:var(--muted);font-size:14px}
.wj-kb-search{display:flex;align-items:center;gap:8px;flex:0 1 420px;min-width:240px;padding:0 12px;border:1px solid var(--border);border-radius:16px;background:var(--surface);color:var(--muted)}
.wj-kb-search .wj-input{border:0;background:transparent;box-shadow:none;height:44px;padding-left:0}
.wj-kb-search:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--primary-weak)}
.wj-kb-section{display:grid;gap:12px}
.wj-kb-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.wj-kb-section-head h2{margin:0;font-size:16px;letter-spacing:-.01em}
.wj-kb-tile{display:inline-grid;place-items:center;width:34px;height:34px;flex:0 0 auto;border-radius:12px;background:color-mix(in srgb,var(--wj-tpv-card-accent,var(--accent)) 16%,var(--surface));color:var(--wj-tpv-card-accent,var(--accent));font-size:18px;line-height:1}
.wj-kb-tile.md{width:44px;height:44px;border-radius:12px;font-size:24px}
.wj-kb-tile.lg{width:64px;height:64px;border-radius:20px;font-size:34px}
.wj-kb-badge{display:inline-block;font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;padding:2px 7px;border-radius:6px;background:var(--primary-weak);color:var(--accent)}
.wj-kb-badge.team{background:var(--surface2);color:var(--muted)}
.wj-kb-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}
.wj-kb-card{display:flex;align-items:center;gap:12px;padding:14px;border:1px solid var(--border);border-radius:16px;background:var(--surface);text-align:left;font:inherit;color:var(--text);cursor:pointer;transition:border-color .16s ease,transform .16s ease,box-shadow .16s ease}
.wj-kb-card:hover{border-color:var(--accent);transform:translateY(-2px);box-shadow:var(--shadow-sm,0 8px 22px rgba(0,0,0,.07))}
.wj-kb-card-copy{min-width:0;display:grid;gap:4px}
.wj-kb-card-copy strong{display:flex;align-items:center;gap:8px;font-size:14px;overflow:hidden;white-space:nowrap}
.wj-kb-card-copy strong>span:first-child{overflow:hidden;text-overflow:ellipsis}
.wj-kb-card-copy small{color:var(--muted);font-size:12px}
.wj-kb-card.inactive,.wj-kb-row.inactive{opacity:.55}
.wj-kb-table{border:1px solid var(--border);border-radius:16px;background:var(--surface);overflow:hidden}
.wj-kb-row{display:grid;grid-template-columns:minmax(0,2.2fr) 80px minmax(0,1fr) minmax(0,1fr) 84px;align-items:center;gap:12px;padding:12px 16px;border-top:1px solid var(--border);cursor:pointer;transition:background .14s ease}
.wj-kb-row:first-child{border-top:0}
.wj-kb-row:hover{background:var(--surface2)}
.wj-kb-row.head{cursor:default;background:var(--surface2);font-size:11px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.wj-kb-row.head:hover{background:var(--surface2)}
.wj-kb-row-name{display:flex;align-items:center;gap:12px;min-width:0}
.wj-kb-row-title{min-width:0;display:grid;gap:1px}
.wj-kb-row-title strong{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wj-kb-row-title small{color:var(--muted);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wj-kb-row-cell{font-size:13px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wj-kb-row-actions{display:flex;justify-content:flex-end;gap:4px;opacity:.55;transition:opacity .14s ease}
.wj-kb-row:hover .wj-kb-row-actions{opacity:1}
.wj-kb-pin{border:0;background:transparent;color:var(--border-strong,var(--muted));padding:4px;border-radius:8px;cursor:pointer;display:inline-grid;place-items:center;font:inherit}
.wj-kb-pin:hover{color:var(--cta,var(--accent));background:var(--surface2)}
.wj-kb-pin.on{color:var(--cta,var(--warn))}
.wj-kb-results{display:grid;gap:12px}
.wj-kb-result-list{display:grid;gap:6px}
.wj-kb-result{display:flex;align-items:center;gap:12px;padding:10px 14px;border:1px solid var(--border);border-radius:12px;background:var(--surface);text-align:left;font:inherit;color:var(--text);cursor:pointer}
.wj-kb-result:hover{border-color:var(--accent)}
.wj-kb-result>span:nth-child(2){flex:1;min-width:0;display:grid;gap:2px}
.wj-kb-result strong{font-size:14px}.wj-kb-result small{color:var(--muted);font-size:12px}
/* Dentro de una base: árbol a la izquierda, página a la derecha. */
.wj-kb-book{display:grid;grid-template-columns:272px minmax(0,1fr);gap:18px;align-items:start;min-width:0}
.wj-kb-tree{position:sticky;top:calc(var(--top) + 12px);display:grid;gap:12px;padding:14px;border:1px solid var(--border);border-radius:16px;background:var(--surface);max-height:calc(100dvh - var(--top) - 32px);overflow:auto}
.wj-kb-tree-back{display:inline-flex;align-items:center;gap:4px;border:0;background:transparent;color:var(--muted);font:inherit;font-size:13px;font-weight:700;padding:0;cursor:pointer;justify-self:start}
.wj-kb-tree-back svg{transform:rotate(180deg)}
.wj-kb-tree-back:hover{color:var(--accent)}
.wj-kb-tree-title{display:flex;align-items:center;gap:10px}
.wj-kb-tree-title>div{flex:1;min-width:0;display:grid}
.wj-kb-tree-title strong{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wj-kb-tree-title small{color:var(--muted);font-size:12px}
.wj-kb-tree-search .wj-input{height:36px;font-size:13px}
.wj-kb-pages{display:grid;gap:2px}
.wj-kb-page-link{display:flex;align-items:center;gap:9px;padding:8px 9px;border:0;border-radius:12px;background:transparent;font:inherit;font-size:13px;color:var(--text);text-align:left;cursor:pointer;min-width:0}
.wj-kb-page-link:hover{background:var(--surface2)}
.wj-kb-page-link.active{background:var(--primary-weak);color:var(--accent);font-weight:700}
.wj-kb-page-num{width:20px;height:20px;flex:0 0 auto;display:grid;place-items:center;border-radius:6px;background:var(--surface2);font-size:11px;font-weight:800;color:var(--muted)}
.wj-kb-page-link.active .wj-kb-page-num{background:var(--accent);color:var(--on-accent)}
.wj-kb-page-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wj-kb-draft{font-style:normal;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--warn);background:var(--warn-weak);padding:2px 5px;border-radius:5px}
.wj-kb-new-page{justify-self:stretch}
.wj-kb-main{border:1px solid var(--border);border-radius:16px;background:var(--surface);padding:22px 26px;min-height:420px}
.wj-kb-overview{display:grid;gap:22px}
.wj-kb-overview-head{display:flex;align-items:center;gap:16px}
.wj-kb-overview-head h1{margin:0 0 4px;font-size:24px;letter-spacing:-.02em}
.wj-kb-overview-head p{margin:0 0 6px;color:var(--muted);font-size:14px}
.wj-kb-overview-head small{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:12px}
.wj-kb-page-grid .wj-handbook-article-card small{color:var(--muted);font-size:12px}
/* Alta de una base: galería de plantillas con vista previa a la derecha. */
.wj-modal:has(.wj-kb-new){width:min(940px,96vw)}
.wj-kb-new{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(220px,1fr);gap:18px;align-items:start}
.wj-kb-new-gallery{display:grid;gap:10px}
.wj-kb-new-gallery h4{margin:6px 0 0;font-size:13px;color:var(--muted)}
.wj-kb-tpl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px}
.wj-kb-tpl{display:flex;align-items:center;gap:10px;padding:12px;border:1px solid var(--border);border-radius:16px;background:var(--surface);text-align:left;font:inherit;color:var(--text);cursor:pointer;transition:border-color .14s ease,box-shadow .14s ease}
.wj-kb-tpl:hover{border-color:var(--accent)}
.wj-kb-tpl.active{border-color:var(--accent);box-shadow:0 0 0 3px var(--primary-weak)}
.wj-kb-tpl-emoji{font-size:26px;line-height:1;width:40px;height:40px;display:grid;place-items:center;border-radius:12px;background:var(--surface2);flex:0 0 auto}
.wj-kb-tpl-copy{min-width:0;display:grid;gap:2px}
.wj-kb-tpl-copy strong{font-size:14px}
.wj-kb-tpl-copy small{color:var(--muted);font-size:12px;line-height:1.35;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.wj-kb-new-side{position:sticky;top:0;display:grid;gap:8px;padding:18px;border-left:1px solid var(--border);min-height:300px}
.wj-kb-new-side h3{margin:8px 0 0;font-size:16px}
.wj-kb-new-side p{margin:0;color:var(--muted);font-size:13px;line-height:1.5}
.wj-kb-new-side .wj-kicker{margin-top:10px}
.wj-kb-tpl-pages{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.wj-kb-tpl-pages li{display:flex;align-items:center;gap:7px;font-size:13px;padding:6px 8px;border-radius:8px;background:var(--surface2)}
.wj-kb-tpl-pages li.muted{color:var(--muted)}
.wj-kb-form-top{display:flex;align-items:flex-start;gap:14px}
.wj-kb-colors{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}
.wj-kb-color{width:26px;height:26px;border-radius:50%;border:2px solid transparent;cursor:pointer;padding:0;box-shadow:0 0 0 1px var(--border) inset}
.wj-kb-color.on{border-color:var(--text);box-shadow:0 0 0 2px var(--surface) inset}
@media(max-width:900px){.wj-kb-book{grid-template-columns:1fr}.wj-kb-tree{position:static;max-height:none}.wj-kb-row{grid-template-columns:minmax(0,1fr) 60px;}.wj-kb-row>.wj-kb-row-cell:nth-child(3),.wj-kb-row>.wj-kb-row-cell:nth-child(4),.wj-kb-row-actions{display:none}.wj-kb-new{grid-template-columns:1fr}.wj-kb-new-side{border-left:0;border-top:1px solid var(--border);position:static}}

/* ---------- Panel de cambio de centro ----------
   Mismo lenguaje que la navegación secundaria: sale del carril hacia la
   derecha y se retira igual. */
#venue-panel-root .wj-venue-panel-backdrop{position:fixed;inset:0;z-index:95;background:transparent}
#venue-panel-root .wj-venue-panel{position:fixed;top:0;bottom:0;width:264px;display:flex;flex-direction:column;background:var(--surface-raised,var(--surface));border-right:1px solid var(--hairline,var(--border));box-shadow:12px 0 32px rgba(15,23,42,.08);transform:translateX(-14px);opacity:0;transition:transform .2s cubic-bezier(.22,1,.36,1),opacity .18s ease}
#venue-panel-root.open .wj-venue-panel{transform:none;opacity:1}
#venue-panel-root .wj-secondary-collapse{display:inline-flex}
.wj-venue-panel-nav section{display:grid;gap:3px}
.wj-venue-panel-opt{display:flex;align-items:center;gap:10px;width:100%;padding:10px 10px;border:0;border-radius:12px;background:transparent;font:inherit;font-size:14px;font-weight:600;color:var(--text);text-align:left;cursor:pointer}
.wj-venue-panel-opt:hover{background:var(--surface-sunken,var(--surface2))}
.wj-venue-panel-opt.active{background:var(--primary-weak);color:var(--accent)}
.wj-venue-panel-ico{width:30px;height:30px;flex:0 0 auto;display:grid;place-items:center;border-radius:8px;background:var(--surface2);color:inherit}
.wj-venue-panel-opt.active .wj-venue-panel-ico{background:var(--accent);color:var(--on-accent)}
.wj-venue-panel-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wj-venue-panel-check{color:var(--accent);display:inline-grid}
@media(prefers-reduced-motion:reduce){#venue-panel-root .wj-venue-panel{transition:none}}

/* ---------- TPV: acceso ----------
   Mitad marca (oscura, con el reloj y el centro), mitad teclado. */
.wj-tpv-login{min-height:100dvh;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);background:var(--bg)}
.wj-tpv-login-hero{position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;gap:28px;padding:clamp(28px,5vw,64px);background:linear-gradient(160deg,var(--text) 0%,color-mix(in srgb,var(--text) 78%,var(--accent)) 100%);color:var(--surface)}
.wj-tpv-login-orbs i{position:absolute;border-radius:50%;filter:blur(2px);opacity:.55;animation:wj-orb 14s ease-in-out infinite alternate}
.wj-tpv-login-orbs i:nth-child(1){width:360px;height:360px;right:-120px;top:-90px;background:radial-gradient(circle at 30% 30%,color-mix(in srgb,var(--accent) 80%,transparent),transparent 65%)}
.wj-tpv-login-orbs i:nth-child(2){width:280px;height:280px;left:-80px;bottom:10%;background:radial-gradient(circle at 60% 40%,color-mix(in srgb,var(--cta,var(--accent)) 70%,transparent),transparent 65%);animation-delay:-5s}
.wj-tpv-login-orbs i:nth-child(3){width:200px;height:200px;right:12%;bottom:-60px;background:radial-gradient(circle,color-mix(in srgb,var(--surface) 35%,transparent),transparent 65%);animation-delay:-9s}
@keyframes wj-orb{from{transform:translate3d(0,0,0) scale(1)}to{transform:translate3d(24px,-18px,0) scale(1.08)}}
.wj-tpv-login-brand-row{position:relative;display:flex;align-items:center;gap:12px}
.wj-tpv-login-mark{width:44px;height:44px;display:grid;place-items:center;border-radius:14px;background:color-mix(in srgb,var(--surface) 12%,transparent);border:1px solid color-mix(in srgb,var(--surface) 22%,transparent)}
.wj-tpv-login-kicker{font-size:12px;font-weight:800;letter-spacing:.14em;opacity:.85}
.wj-tpv-login-hero-copy{position:relative}
.wj-tpv-login-hero-copy h1{margin:0 0 10px;font-size:clamp(30px,4.2vw,52px);line-height:1.05;letter-spacing:-.03em;font-weight:800}
.wj-tpv-login-hero-copy p{margin:0;font-size:15px;opacity:.78;max-width:38ch}
.wj-tpv-login-clock{position:relative;display:grid;gap:2px}
.wj-tpv-login-clock strong{font-size:clamp(44px,6vw,72px);line-height:1;font-variant-numeric:tabular-nums;letter-spacing:-.04em}
.wj-tpv-login-clock span{font-size:13.5px;opacity:.75}
.wj-tpv-login-clock span::first-letter{text-transform:uppercase}
.wj-tpv-login-venue{position:relative;display:inline-flex;align-items:center;gap:7px;justify-self:start;align-self:flex-start;padding:7px 12px;border-radius:999px;background:var(--accent);color:var(--on-accent);font-size:11.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.wj-tpv-login-panel{display:grid;place-items:center;padding:clamp(20px,4vw,48px)}
.wj-tpv-login-card{width:min(380px,100%);display:grid;gap:16px;padding:28px;border:1px solid var(--border);border-radius:24px;background:var(--surface);box-shadow:var(--shadow-lg)}
.wj-tpv-login-card header h2{margin:0 0 4px;font-size:20px;letter-spacing:-.02em}
.wj-tpv-login-card header p{margin:0;color:var(--muted);font-size:13px}
.wj-tpv-login-card.shake{animation:wj-shake .4s cubic-bezier(.36,.07,.19,.97)}
@keyframes wj-shake{10%,90%{transform:translateX(-2px)}20%,80%{transform:translateX(4px)}30%,50%,70%{transform:translateX(-6px)}40%,60%{transform:translateX(6px)}}
.wj-tpv-login-note{margin:0;padding:11px 14px;border-radius:12px;background:var(--warn-weak);color:var(--warn);font-size:13px;font-weight:650;line-height:1.5}
.wj-tpv-pin-dots{display:flex;justify-content:center;gap:12px;min-height:22px}
.wj-tpv-pin-dots i{width:14px;height:14px;border-radius:50%;border:2px solid var(--border-strong,var(--border));transition:background .12s ease,transform .12s ease,border-color .12s ease}
.wj-tpv-pin-dots i.on{background:var(--accent);border-color:var(--accent);transform:scale(1.15)}
.wj-tpv-keypad{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.wj-tpv-keypad button{height:64px;border:1px solid var(--border);border-radius:16px;background:var(--surface2);font:inherit;font-size:24px;font-weight:700;color:var(--text);cursor:pointer;display:grid;place-items:center;transition:background .12s ease,transform .1s ease,border-color .12s ease;font-variant-numeric:tabular-nums}
.wj-tpv-keypad button:hover{border-color:var(--accent);background:var(--surface)}
.wj-tpv-keypad button:active{transform:scale(.94);background:var(--primary-weak);border-color:var(--accent)}
.wj-tpv-keypad button.tap{animation:wj-key-tap .28s ease}
@keyframes wj-key-tap{0%{transform:scale(.94);background:var(--primary-weak);border-color:var(--accent)}100%{transform:none}}
.wj-tpv-keypad button.soft{font-size:16px;color:var(--muted);background:transparent}
.wj-tpv-login-go{display:flex;align-items:center;justify-content:center;gap:8px;height:56px;border:0;border-radius:16px;background:var(--accent);color:var(--on-accent);font:inherit;font-size:16px;font-weight:800;cursor:pointer;transition:opacity .15s ease,transform .1s ease}
.wj-tpv-login-go:hover{filter:brightness(1.05)}
.wj-tpv-login-go:active{transform:scale(.98)}
.wj-tpv-login-go:disabled{opacity:.4;cursor:not-allowed}
.wj-tpv-login-alt-btn{border:0;background:transparent;color:var(--muted);font:inherit;font-size:12.5px;font-weight:650;cursor:pointer;padding:4px}
.wj-tpv-login-alt-btn:hover{color:var(--text)}
.wj-tpv-pass{padding-top:6px;border-top:1px solid var(--border)}
@media(max-width:900px){.wj-tpv-login{grid-template-columns:1fr}.wj-tpv-login-hero{min-height:38dvh;padding:24px}.wj-tpv-login-hero-copy h1{font-size:28px}.wj-tpv-login-clock strong{font-size:40px}}
@media(prefers-reduced-motion:reduce){.wj-tpv-login-orbs i{animation:none}.wj-tpv-login-card.shake{animation:none}.wj-signal::before{animation:none}}
.wj-tpv-login-center{grid-template-columns:1fr;place-items:center;padding:24px}
.wj-tpv-login-center .wj-tpv-login-card{width:min(420px,100%)}
.wj-tpv-login-center .wj-tpv-login-card.wide{width:min(560px,100%)}

/* ---------- Documentos firmados (admin) ---------- */
.wj-doc-section{margin-bottom:28px}
.wj-doc-section .wj-section-heading{align-items:center}
.wj-doc-section .wj-search{max-width:360px}
.wj-doc-qr-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(420px,1fr));gap:14px}
.wj-doc-qr{display:flex;gap:16px;padding:16px;border:1px solid var(--border);border-radius:20px;background:var(--surface)}
.wj-doc-qr-code{flex:0 0 auto;padding:6px;border-radius:16px;background:var(--surface);border:1px solid var(--border)}
.wj-doc-qr-code svg{display:block;border-radius:8px}
.wj-doc-qr-copy{min-width:0;display:grid;gap:6px;align-content:start}
.wj-doc-qr-copy h3{margin:0;font-size:15px}
.wj-doc-qr-copy p{margin:0;color:var(--muted);font-size:13px;line-height:1.45}
.wj-doc-qr-url{font-size:12px;color:var(--muted);word-break:break-all;background:var(--surface2);padding:6px 8px;border-radius:8px}
.wj-doc-qr-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}
.wj-doc-table{border:1px solid var(--border);border-radius:16px;background:var(--surface);overflow:hidden}
.wj-doc-row{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1.3fr) minmax(0,.9fr) minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px 16px;border-top:1px solid var(--border);cursor:pointer}
.wj-doc-row:first-child{border-top:0}
.wj-doc-row:hover{background:var(--surface2)}
.wj-doc-row.head{cursor:default;background:var(--surface2);font-size:11px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.wj-doc-row.revoked{opacity:.55}
.wj-doc-row-main{display:grid;gap:2px;min-width:0}
.wj-doc-row-main strong{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wj-doc-row-main small{color:var(--muted);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wj-doc-row-cell{font-size:13px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wj-doc-sig{display:grid;place-items:center;padding:12px;border:1px dashed var(--border-strong,var(--border));border-radius:16px;background:var(--surface2);color:var(--text)}
.wj-sign-preview{max-width:100%}
.wj-cust-docs{margin-top:18px;padding-top:14px;border-top:1px solid var(--border);display:grid;gap:8px}
.wj-cust-docs h4{margin:0 0 4px;display:flex;align-items:center;gap:7px;font-size:13px}
.wj-cust-docs h4 small{color:var(--muted);font-weight:600}
.wj-cust-doc{display:flex;align-items:center;gap:10px;padding:9px 12px;border:1px solid var(--border);border-radius:12px;background:var(--surface);color:inherit;text-decoration:none}
/* La fila entera abre el PDF, así que se comporta como algo que se pulsa. */
.wj-cust-doc:hover{border-color:var(--accent);background:var(--surface-2,var(--surface))}
.wj-cust-doc.revoked{opacity:.55}
/* Guardando: el botón se queda donde está pero la rueda gira. Un botón apagado y mudo
   se ve igual que una pantalla colgada. */
.wj-btn.is-busy{cursor:progress;opacity:1}
.wj-btn-spin{width:14px;height:14px;border-radius:50%;border:2px solid currentColor;border-top-color:transparent;animation:wj-btn-spin .7s linear infinite;flex:none;display:inline-block}
@keyframes wj-btn-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.wj-btn-spin{animation-duration:2s}}

/* Bonos en el mostrador: código, cuánto queda y el botón de descontar, grande. */
.wj-tpv-pass-search{padding:12px 14px 0}
.wj-pass-card{margin:12px 14px;padding:14px;border:1px solid var(--border);border-radius:16px;background:var(--surface);display:grid;gap:10px}
.wj-pass-card.spent,.wj-pass-card.expired,.wj-pass-card.void{opacity:.62}
.wj-pass-card>header{display:flex;align-items:flex-start;gap:10px}
.wj-pass-card>header div{flex:1;min-width:0;display:grid;gap:2px}
.wj-pass-card>header strong{font-size:16px;letter-spacing:.04em;font-variant-numeric:tabular-nums}
.wj-pass-card>header small{color:var(--muted)}
.wj-pass-meter{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.wj-pass-meter strong{font-size:30px;line-height:1;font-variant-numeric:tabular-nums}
.wj-pass-meter span{color:var(--muted)}
.wj-pass-meter small{margin-left:auto;color:var(--muted)}
.wj-pass-actions{display:flex;gap:8px;flex-wrap:wrap}
.wj-pass-log summary{cursor:pointer;color:var(--muted);font-size:13px}
.wj-pass-log-row{display:flex;align-items:center;gap:10px;padding:6px 0;border-top:1px solid var(--border2);font-size:13px}
.wj-pass-log-row span{flex:1;min-width:0}

/* Plazas de una reserva: se suben y se bajan donde se están mirando. */
.wj-bk-qty{display:inline-flex;align-items:center;gap:2px;vertical-align:middle;margin-left:6px;border:1px solid var(--border);border-radius:12px;padding:2px;background:var(--surface)}
.wj-bk-qty b{min-width:24px;text-align:center;font-variant-numeric:tabular-nums}
.wj-bk-qty .wj-btn{width:26px;height:26px;min-height:0;font-size:15px;font-weight:800;padding:0}
.wj-cust-doc>span:first-child{flex:1;min-width:0;display:grid;gap:1px}
.wj-cust-doc strong{font-size:13px}
.wj-cust-doc small{color:var(--muted);font-size:12px}
@media(max-width:900px){.wj-doc-qr-grid{grid-template-columns:1fr}.wj-doc-row{grid-template-columns:minmax(0,1fr) auto}.wj-doc-row>.wj-doc-row-cell:nth-child(2),.wj-doc-row>.wj-doc-row-cell:nth-child(3),.wj-doc-row>.wj-doc-row-cell:nth-child(4){display:none}}

/* ---------- Firma pública ---------- */
.wj-sign .wj-public-main{display:grid;gap:16px}
.wj-sign-doc{padding:0;overflow:hidden}
.wj-sign-doc-head{display:grid;gap:2px;padding:14px 18px;border-bottom:1px solid var(--border);background:var(--surface2)}
.wj-sign-doc-head strong{font-size:14px}.wj-sign-doc-head small{color:var(--muted);font-size:12px}
.wj-sign-doc-body{max-height:46vh;overflow:auto;padding:16px 18px;font-size:13.5px;line-height:1.6}
.wj-sign-doc-body h3{margin:14px 0 6px;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.wj-sign-doc-body h3:first-child{margin-top:0}
.wj-sign-doc-body h4{margin:12px 0 4px;font-size:13.5px}
.wj-sign-doc-body p{margin:0 0 10px}
.wj-sign-form{display:grid;gap:14px}
.wj-sign-form h2{margin:0;font-size:18px}
.wj-sign-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.wj-sign-guardian{display:grid;gap:10px;padding:12px;border-radius:14px;background:var(--warn-weak)}
.wj-sign-pad{position:relative;height:190px;border:2px dashed var(--border-strong,var(--border));border-radius:16px;background:var(--surface);color:var(--text);touch-action:none;overflow:hidden}
.wj-sign-pad canvas{display:block;width:100%;height:100%;cursor:crosshair}
.wj-sign-pad-hint{position:absolute;inset:auto 0 12px 0;text-align:center;color:var(--muted);font-size:12.5px;pointer-events:none}
.wj-sign-clear{position:absolute;top:8px;right:8px}
.wj-sign-done{text-align:center;display:grid;justify-items:center;gap:10px}
.wj-sign-done-mark{width:64px;height:64px;display:grid;place-items:center;border-radius:50%;background:var(--ok);color:var(--bg)}
@media(max-width:600px){.wj-sign-grid{grid-template-columns:1fr}.wj-sign-doc-body{max-height:40vh}}

.wj-sign-form .wj-public-check{display:flex;align-items:flex-start;gap:10px;font-size:13.5px;line-height:1.45}
.wj-sign-form .wj-public-check input{margin-top:3px;width:18px;height:18px;flex:0 0 auto}
.wj-sign-form .wj-public-cta{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}
.wj-sign-form .wj-public-cta:disabled{opacity:.6}

.wj-detail-pairs{margin:0;display:grid}
.wj-detail-pairs div{display:grid;grid-template-columns:130px minmax(0,1fr);gap:10px;padding:7px 0;border-bottom:1px solid var(--border);font-size:13px}
.wj-detail-pairs dt{color:var(--muted);font-weight:600}
.wj-detail-pairs dd{margin:0;overflow-wrap:anywhere}

/* ---------- Página pública: se desliza entera, como una web ----------
   La cáscara de la app bloquea el scroll del documento (html, body y #app a
   100% con overflow hidden); las páginas públicas lo devuelven. */
html.wj-public-html,html.wj-public-html body,html.wj-public-html #app{height:auto;min-height:100%;overflow:visible}
html.wj-public-html{scroll-behavior:smooth}
.wj-sign .wj-public-main{display:grid;gap:22px;padding-bottom:110px}
.wj-sign-section{display:grid;gap:16px;scroll-margin-top:72px}
.wj-sign-block{display:grid;gap:14px;scroll-margin-top:72px;padding:clamp(16px,4vw,24px);border:1px solid var(--border);border-radius:20px;background:var(--surface);box-shadow:var(--shadow)}
.wj-sign-block h2{margin:0;font-size:19px}
.wj-sign-block h3{margin:4px 0 0;font-size:15px}
/* El documento va en la página, sin caja con scroll propio. */
.wj-sign-doc{display:grid;gap:4px}
.wj-sign-doc-head{display:grid;gap:2px;padding:0 0 12px;border-bottom:1px solid var(--border)}
.wj-sign-doc-head strong{font-size:15px}.wj-sign-doc-head small{color:var(--muted);font-size:12.5px}
.wj-sign-doc-body{padding:14px 0 4px;font-size:14.5px;line-height:1.7;max-height:none;overflow:visible}
.wj-sign-doc-body h3{margin:18px 0 6px;font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.wj-sign-doc-body h3:first-child{margin-top:0}
.wj-sign-doc-body h4{margin:14px 0 4px;font-size:15px}
.wj-sign-doc-body p{margin:0 0 12px}
.wj-sign-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.wj-sign-age{padding:12px 14px;border-radius:14px;background:var(--primary-weak);font-size:13.5px;line-height:1.5;display:grid;gap:8px}
.wj-sign-who{display:grid;gap:6px}
.wj-sign-who label{display:flex;align-items:center;gap:8px;font-weight:600}
.wj-sign-guardian{display:grid;gap:10px;padding:14px;border-radius:14px;background:var(--warn-weak)}
.wj-sign-consents{display:grid;gap:10px}
.wj-sign-consent{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;border:1px solid var(--border);border-radius:14px;background:var(--surface2);font-size:13.5px;line-height:1.5}
.wj-sign-consent input{margin-top:2px;width:20px;height:20px;flex:0 0 auto;accent-color:var(--accent)}
.wj-sign-consent span{flex:1}
.wj-sign-consent b{display:inline-block;font-size:10px;letter-spacing:.06em;text-transform:uppercase;padding:2px 6px;border-radius:5px;margin-right:6px;vertical-align:1px}
.wj-sign-consent.req b{background:var(--warn-weak);color:var(--warn)}
.wj-sign-consent.opt b{background:var(--primary-weak);color:var(--accent)}
.wj-sign-consent.opt{border-color:color-mix(in srgb,var(--accent) 40%,var(--border))}
.wj-sign-pad{position:relative;height:200px;border:2px dashed var(--border-strong,var(--border));border-radius:16px;background:var(--surface);color:var(--text);touch-action:none;overflow:hidden}
.wj-sign-pad canvas{display:block;width:100%;height:100%;cursor:crosshair}
.wj-sign-pad-hint{position:absolute;inset:auto 0 12px 0;text-align:center;color:var(--muted);font-size:12.5px;pointer-events:none}
.wj-sign-clear{position:absolute;top:8px;right:8px}
.wj-sign-done{text-align:center;display:grid;justify-items:center;gap:10px}
.wj-sign-done-mark{width:64px;height:64px;display:grid;place-items:center;border-radius:50%;background:var(--ok);color:var(--bg)}
.wj-sign-decisions{list-style:none;margin:0;padding:0;display:grid;gap:6px;width:100%;text-align:left}
.wj-sign-decisions li{display:flex;align-items:flex-start;gap:8px;padding:9px 12px;border-radius:12px;font-size:13px;line-height:1.45;background:var(--surface2)}
.wj-sign-decisions li.yes{color:var(--ok)}.wj-sign-decisions li.no{color:var(--muted)}
.wj-sign-decisions li span{color:var(--text)}
.wj-sign .wj-public-cta{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--accent);color:var(--on-accent);border-color:var(--accent)}
.wj-sign .wj-public-cta.danger{background:var(--danger);border-color:var(--danger)}
.wj-sign .wj-public-cta:disabled{opacity:.6}
/* Barra de pasos fija abajo. */
.wj-sign-steps{position:fixed;left:0;right:0;bottom:0;z-index:20;display:grid;grid-template-columns:repeat(3,1fr);gap:6px;padding:8px max(10px,env(safe-area-inset-left)) max(8px,env(safe-area-inset-bottom));background:color-mix(in srgb,var(--surface) 92%,transparent);backdrop-filter:blur(10px);border-top:1px solid var(--border)}
.wj-sign-step{display:flex;align-items:center;justify-content:center;gap:7px;min-height:48px;border:0;border-radius:14px;background:transparent;color:var(--muted);font:inherit;font-size:13px;font-weight:700;cursor:pointer;transition:background .15s ease,color .15s ease}
.wj-sign-step-num{width:22px;height:22px;display:grid;place-items:center;border-radius:50%;background:var(--surface2);font-size:11px;font-weight:800}
.wj-sign-step.active{background:var(--accent);color:var(--on-accent)}
.wj-sign-step.active .wj-sign-step-num{background:color-mix(in srgb,var(--on-accent) 25%,transparent);color:var(--on-accent)}
@media(max-width:600px){.wj-sign-grid{grid-template-columns:1fr}.wj-sign-step span:last-child{display:none}.wj-sign-step{gap:5px}}

/* ---------- Documentos (admin): tipos editables y versiones ---------- */
.wj-doc-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:12px}
.wj-doc-section-head h2{margin:2px 0 4px;font-size:18px}
.wj-doc-section-head p{margin:0;color:var(--muted);font-size:13px;max-width:70ch}
.wj-doc-type-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:12px}
.wj-doc-type{display:grid;gap:12px;padding:16px;border:1px solid var(--border);border-radius:20px;background:var(--surface)}
.wj-doc-type.off{opacity:.6}
.wj-doc-type-head{display:flex;gap:12px;align-items:flex-start}
.wj-doc-type-icon{width:40px;height:40px;flex:0 0 auto;display:grid;place-items:center;border-radius:12px;background:var(--primary-weak);color:var(--accent)}
.wj-doc-type-copy{min-width:0;display:grid;gap:4px}
.wj-doc-type-copy strong{font-size:15px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.wj-doc-type-copy p{margin:0;color:var(--muted);font-size:13px;line-height:1.45}
.wj-doc-type-stats{display:flex;flex-wrap:wrap;gap:8px;font-size:12px;color:var(--muted)}
.wj-doc-type-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.wj-doc-type-actions .wj-switch{margin-left:auto}
.wj-doc-ver{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:800;letter-spacing:.02em;padding:2px 8px;border-radius:999px;white-space:nowrap}
.wj-doc-ver.current{background:color-mix(in srgb,var(--ok) 14%,var(--surface));color:var(--ok)}
.wj-doc-ver.outdated{background:var(--warn-weak);color:var(--warn)}
.wj-doc-version-note{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:16px;background:var(--warn-weak);color:var(--warn);font-size:13px;line-height:1.5}
.wj-doc-version-note p{margin:2px 0 0;color:var(--text)}
.wj-doc-editor{display:grid;gap:16px}
.wj-doc-editor-text{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px;line-height:1.55;min-height:320px}
.wj-doc-preview{border:1px solid var(--border);border-radius:16px;overflow:hidden;background:var(--surface2)}
.wj-doc-preview-head{display:flex;align-items:center;justify-content:space-between;padding:8px 14px;border-bottom:1px solid var(--border)}
.wj-doc-preview-minor{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:700;color:var(--muted)}
.wj-doc-preview-body{padding:14px 16px;background:var(--surface);font-size:13px;line-height:1.6;max-height:420px;overflow:auto}
.wj-doc-preview-body h3{margin:12px 0 4px;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.wj-doc-preview-body h4{margin:10px 0 3px;font-size:13px}
.wj-doc-preview-body p{margin:0 0 8px}
.wj-doc-consents{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.wj-doc-consents li{display:flex;gap:8px;align-items:flex-start;padding:8px 10px;border-radius:12px;background:var(--surface2);font-size:13px;line-height:1.45}
.wj-doc-consents li.yes{color:var(--ok)}.wj-doc-consents li.no{color:var(--muted)}
.wj-doc-consents li span{color:var(--text)}
.wj-doc-row{grid-template-columns:minmax(0,2fr) minmax(0,1.3fr) minmax(0,.9fr) minmax(0,.8fr) minmax(0,1fr) auto}
.wj-doc-consent-editor{display:grid;gap:8px}
.wj-doc-consent-editor .row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;align-items:center}
@media(max-width:900px){.wj-doc-row{grid-template-columns:minmax(0,1fr) auto}.wj-doc-row>.wj-doc-row-cell:nth-child(2),.wj-doc-row>.wj-doc-row-cell:nth-child(4),.wj-doc-row>.wj-doc-row-cell:nth-child(5){display:none}}

/* Cabecera pública: centro + botón de tema. */
.wj-public-head-right{display:flex;align-items:center;gap:8px}
.wj-public-theme{width:36px;height:36px;display:grid;place-items:center;border:1px solid var(--border);border-radius:10px;background:var(--surface2);color:var(--text);cursor:pointer;transition:background .15s ease,transform .1s ease}
.wj-public-theme:hover{background:var(--primary-weak);color:var(--accent)}
.wj-public-theme:active{transform:scale(.94)}
.wj-public-logo{height:30px;width:auto;max-width:180px;display:block;object-fit:contain}
.wj-public-brand{display:flex;align-items:center;min-height:30px}

/* ---------- Campana: punto rojo mientras haya algo sin atender ---------- */
.wj-notification-btn{position:relative}
.wj-notification-btn sup{position:absolute;top:-4px;right:-4px;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--danger);color:var(--bg);font-size:11px;font-weight:800;line-height:18px;text-align:center;box-shadow:0 0 0 2px var(--surface)}
.wj-notification-btn.has-unread::before{content:'';position:absolute;top:-4px;right:-4px;width:18px;height:18px;border-radius:50%;background:var(--danger);opacity:.5;animation:wj-signal-pulse 1.6s ease-out infinite}
.wj-notification-btn.has-unread{color:var(--danger)}

/* ---------- Proyectos ---------- */
.wj-prj-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px;margin-top:14px}
.wj-prj-card{display:grid;gap:10px;padding:16px;border:1px solid var(--border);border-radius:20px;background:var(--surface);cursor:pointer;transition:border-color .16s ease,transform .16s ease,box-shadow .16s ease}
.wj-prj-card:hover{border-color:var(--accent);transform:translateY(-2px);box-shadow:var(--shadow-sm,0 8px 22px rgba(0,0,0,.07))}
.wj-prj-card.completed{opacity:.8}
.wj-prj-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.wj-prj-card-head strong{font-size:15px;line-height:1.3}
.wj-prj-card p{margin:0;color:var(--muted);font-size:13px;line-height:1.5;overflow:hidden;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical}
.wj-prj-meta{display:flex;flex-wrap:wrap;gap:6px 12px;font-size:12px;color:var(--muted)}
.wj-prj-meta span{display:inline-flex;align-items:center;gap:4px}
.wj-prj-bar{display:block;height:8px;border-radius:999px;background:var(--surface2);overflow:hidden}
.wj-prj-bar i{display:block;height:100%;width:0;border-radius:999px;background:var(--accent);transition:width .4s cubic-bezier(.22,1,.36,1)}
.wj-prj-bar.done i{background:var(--ok)}
.wj-prj-card-foot{display:flex;align-items:center;justify-content:space-between}
.wj-prj-card-foot b{font-size:13px;font-variant-numeric:tabular-nums}
.wj-prj-avatars{display:flex}
.wj-prj-avatar{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:var(--primary-weak);color:var(--accent);font-size:11px;font-weight:800;border:2px solid var(--surface);margin-left:-6px}
.wj-prj-avatar:first-child{margin-left:0}
.wj-prj-avatar.more{background:var(--surface2);color:var(--muted)}
.wj-prj-detail{gap:14px}
.wj-prj-desc{margin:0;white-space:pre-wrap;line-height:1.6;font-size:14px}
.wj-prj-progress-row{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:10px;font-size:13px;color:var(--muted)}
.wj-prj-progress-row b{color:var(--text);font-variant-numeric:tabular-nums}
.wj-prj-members{display:flex;flex-wrap:wrap;gap:6px}
.wj-prj-chip{font-size:12px;font-weight:650;padding:4px 10px;border-radius:999px;background:var(--surface2)}
.wj-prj-tasks{display:grid;gap:8px}
.wj-prj-task{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:12px;align-items:start;padding:12px 14px;border:1px solid var(--border);border-radius:16px;background:var(--surface)}
.wj-prj-task.done{background:color-mix(in srgb,var(--ok) 6%,var(--surface));border-color:color-mix(in srgb,var(--ok) 35%,var(--border))}
.wj-prj-task-num{width:28px;height:28px;display:grid;place-items:center;border-radius:50%;background:var(--surface2);font-size:12px;font-weight:800;color:var(--muted)}
.wj-prj-task.done .wj-prj-task-num{background:var(--ok);color:var(--bg)}
.wj-prj-task-copy{min-width:0;display:grid;gap:4px}
.wj-prj-task-copy strong{font-size:14px}
.wj-prj-task.done .wj-prj-task-copy strong{text-decoration:line-through;text-decoration-color:color-mix(in srgb,var(--text) 40%,transparent)}
.wj-prj-task-copy p{margin:0;font-size:13px;color:var(--muted);line-height:1.5}
.wj-prj-task-copy small{font-size:12px;color:var(--muted)}
.wj-prj-task-note{padding:8px 10px;border-radius:12px;background:var(--surface2);color:var(--text)!important;font-size:13px!important}
.wj-prj-task-photos{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}
.wj-prj-task-photos img{width:72px;height:72px;object-fit:cover;border-radius:12px;border:1px solid var(--border);display:block}
.wj-prj-task-actions{display:flex;flex-direction:column;gap:6px;align-items:flex-end}
.wj-prj-people{max-height:220px;overflow:auto}
@media(max-width:700px){.wj-prj-task{grid-template-columns:28px minmax(0,1fr)}.wj-prj-task-actions{grid-column:2;flex-direction:row;justify-content:flex-start}}

/* Un modal abierto desde el panel lateral (editar tarea, confirmar) va por encima del panel, no detrás. */
.wj-modal-backdrop{z-index:96}

.wj-prj-people-box{display:grid;gap:8px}
.wj-prj-people-box legend small{color:var(--muted);font-weight:600;margin-left:6px}
.wj-prj-people-search .wj-input{height:38px;font-size:13px}
.wj-prj-people-filters{display:flex;flex-wrap:wrap;gap:6px}
.wj-prj-people-filters button{border:1px solid var(--border);background:var(--surface);color:var(--muted);border-radius:999px;padding:4px 10px;font:inherit;font-size:12px;font-weight:700;cursor:pointer}
.wj-prj-people-filters button.active{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.wj-prj-people{max-height:260px;overflow:auto;display:grid;gap:2px}
.wj-prj-people .wj-checklist-option{padding:6px 8px;border-radius:8px}
.wj-prj-people .wj-checklist-option:hover{background:var(--surface2)}
.wj-prj-hq{display:inline-flex;align-items:center;gap:4px;background:var(--primary-weak);color:var(--accent)}
.wj-prj-from-hq{margin:0;display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:12px;background:var(--primary-weak);color:var(--accent);font-size:13px;font-weight:700}
.wj-input-static{display:flex;align-items:center;background:var(--surface2);color:var(--muted);cursor:default}
.wj-prj-venues{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:4px}

/* ---------- Cabecera móvil: centro a un toque ---------- */
.wj-topbar-venue{display:none}
html[data-layout="mobile"] .wj-eyebrow-text{display:none}
html[data-layout="mobile"] .wj-topbar-venue{display:inline-flex;align-items:center;gap:4px;max-width:56vw;padding:3px 8px;border:1px solid var(--border);border-radius:999px;background:var(--surface2);color:var(--accent);font:inherit;font-size:11px;font-weight:800;letter-spacing:.02em;text-transform:uppercase;cursor:pointer}
html[data-layout="mobile"] .wj-topbar-venue span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
html[data-layout="mobile"] .wj-topbar-venue.hq{background:var(--primary-weak)}
html[data-layout="mobile"] .wj-topbar-venue+.wj-hq-indicator{display:none}
html[data-layout="mobile"] #venue-panel-root .wj-venue-panel{left:0!important;width:min(88vw,320px)}

/* ---------- Stock → Retirar ---------- */
.wj-wd-search{display:flex;align-items:center;gap:8px;padding:0 12px;margin:0 0 12px;border:1px solid var(--border);border-radius:16px;background:var(--surface);color:var(--muted)}
.wj-wd-search .wj-input{border:0;background:transparent;box-shadow:none;height:48px;font-size:16px;padding-left:0}
.wj-wd-search:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--primary-weak)}
.wj-wd-list{display:grid;gap:8px}
.wj-wd-row{border:1px solid var(--border);border-radius:16px;background:var(--surface);overflow:hidden;transition:border-color .15s ease,box-shadow .15s ease}
.wj-wd-row.open{border-color:var(--accent);box-shadow:0 0 0 3px var(--primary-weak)}
.wj-wd-row.out .wj-wd-qty b{color:var(--danger)}
.wj-wd-row.low .wj-wd-qty b{color:var(--warn)}
.wj-wd-head{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:12px;align-items:center;width:100%;padding:10px 12px;border:0;background:transparent;font:inherit;color:var(--text);text-align:left;cursor:pointer;min-height:64px}
.wj-wd-head:hover{background:var(--surface2)}
.wj-wd-thumb{width:44px;height:44px;border-radius:12px;background:var(--surface2);display:grid;place-items:center;color:var(--muted);overflow:hidden}
.wj-wd-thumb img{width:100%;height:100%;object-fit:cover}
.wj-wd-copy{min-width:0;display:grid;gap:2px}
.wj-wd-copy strong{font-size:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wj-wd-copy small{color:var(--muted);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wj-wd-qty{display:grid;justify-items:end;gap:2px;text-align:right}
.wj-wd-qty b{font-size:20px;line-height:1;font-variant-numeric:tabular-nums}
.wj-wd-qty small{font-size:11px;color:var(--muted)}
.wj-wd-form{display:grid;gap:10px;padding:12px;border-top:1px solid var(--border);background:var(--surface2)}
.wj-wd-units{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.wj-wd-unit{display:flex;flex-direction:column;align-items:center;gap:1px;padding:10px 6px;border:1px solid var(--border);border-radius:12px;background:var(--surface);font:inherit;font-size:13px;font-weight:700;color:var(--text);cursor:pointer}
.wj-wd-unit small{font-size:11px;color:var(--muted);font-weight:600}
.wj-wd-unit.active{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.wj-wd-unit.active small{color:inherit;opacity:.85}
.wj-wd-unit:disabled{opacity:.4;cursor:not-allowed}
.wj-wd-stepper{display:grid;grid-template-columns:52px minmax(0,1fr) 52px auto;gap:8px;align-items:center}
.wj-wd-step{height:52px;border:1px solid var(--border);border-radius:12px;background:var(--surface);font:inherit;font-size:24px;font-weight:700;cursor:pointer;color:var(--text)}
.wj-wd-step:active{background:var(--primary-weak)}
.wj-wd-count{height:52px;text-align:center;font-size:22px;font-weight:800;font-variant-numeric:tabular-nums}
.wj-wd-equals{font-size:13px;color:var(--muted);white-space:nowrap}
.wj-wd-equals b{color:var(--text);font-size:15px}
.wj-wd-go{display:flex;align-items:center;justify-content:center;gap:8px;height:56px;border:0;border-radius:16px;background:var(--accent);color:var(--on-accent);font:inherit;font-size:16px;font-weight:800;cursor:pointer}
.wj-wd-go:disabled{opacity:.6}
@media(max-width:520px){.wj-wd-stepper{grid-template-columns:52px minmax(0,1fr) 52px}.wj-wd-equals{grid-column:1/-1;text-align:center}}

/* Sin avatar arriba a la derecha en escritorio: ya está en el menú lateral. */

/* Menú principal más compacto. */
.wj-nav-btn{padding:8px 10px;min-height:38px}
.wj-nav-group{gap:1px}
.wj-nav-group-label{margin:10px 0 4px}
@media(prefers-reduced-motion:reduce){.wj-shell.has-secondary,.wj-secondary-sidebar{transition:none}}
.wj-user-lastlogin{display:inline-flex;align-items:center;gap:4px;color:var(--muted)}

/* ---------- Navegación secundaria: botón de plegado ----------
   Un botón en la cabecera del panel lo contrae; el botón "Menú" de la barra
   superior lo muestra u oculta. La columna se estrecha con animación. */
.wj-shell.has-secondary{transition:grid-template-columns .22s cubic-bezier(.22,1,.36,1)}
.wj-shell.has-secondary.secondary-collapsed{--secondary:0px}
.wj-secondary-sidebar{overflow:hidden;transition:opacity .16s ease,visibility .16s ease}
.wj-secondary-fold{display:inline-flex;flex:0 0 auto;width:32px;height:32px;border-radius:8px;color:var(--muted)}
.wj-secondary-fold .wj-icon{transform:rotate(180deg)}
.wj-secondary-fold:hover{color:var(--accent);background:var(--surface2)}
.wj-secondary-collapse{display:none!important}
html:not([data-layout="mobile"]) .wj-shell.has-secondary .wj-btn.wj-secondary-toggle{display:inline-flex;width:38px;height:38px;padding:0;border-radius:12px;color:var(--muted)}
html:not([data-layout="mobile"]) .wj-btn.wj-secondary-toggle.is-collapsed{color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--surface))}
html[data-layout="mobile"] .wj-secondary-fold{display:none}

/* ---------- Pendientes: número + punto rojo en cada función ---------- */
.wj-nav-count,.wj-sub-count{margin-left:auto;flex:none;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:var(--danger);color:#fff;font-size:11px;font-weight:800;display:inline-flex;align-items:center;justify-content:center;line-height:1;font-variant-numeric:tabular-nums}
.wj-sub-count{min-width:18px;height:18px;font-size:11px}
.wj-nav-btn,.wj-mobile-dock button,.wj-secondary-nav button{position:relative}
.wj-nav-btn.has-pending>.wj-icon::after,.wj-mobile-dock button.has-pending>.wj-icon::after{content:'';position:absolute;width:8px;height:8px;border-radius:50%;background:var(--danger);box-shadow:0 0 0 2px var(--surface)}
.wj-nav-btn>.wj-icon,.wj-mobile-dock button>.wj-icon{position:relative;overflow:visible}
.wj-nav-btn.has-pending>.wj-icon::after{top:-3px;right:-3px}
.wj-mobile-dock button.has-pending>.wj-icon::after{top:-2px;right:-2px}
.wj-dock-count{position:absolute;top:4px;left:calc(50% + 6px);min-width:16px;height:16px;padding:0 4px;border-radius:999px;background:var(--danger);color:#fff;font-size:11px;font-weight:800;display:inline-flex;align-items:center;justify-content:center;line-height:1}
.wj-mobile-dock button.has-pending>.wj-icon::after{display:none}
@media(max-width:1179px){.wj-nav-btn .wj-nav-count{display:none}}

/* ---------- TPV en el móvil: tablero de pulseras ---------- */
.wj-band-hero{border-radius:24px;padding:18px 18px 16px;background:linear-gradient(145deg,color-mix(in srgb,var(--accent) 88%,#000) 0%,var(--accent) 60%,color-mix(in srgb,var(--accent) 70%,#fff) 100%);color:#fff;box-shadow:0 14px 34px color-mix(in srgb,var(--accent) 35%,transparent);margin-bottom:14px}
.wj-band-hero-top{display:flex;justify-content:space-between;align-items:center;gap:10px}
.wj-band-hero .wj-kicker{color:rgba(255,255,255,.85)}
.wj-band-day{font-size:12px;font-weight:700;opacity:.9;font-variant-numeric:tabular-nums}
.wj-band-clock{font-size:52px;font-weight:850;letter-spacing:-.02em;line-height:1.05;margin-top:8px;font-variant-numeric:tabular-nums}
.wj-band-now{margin-top:6px;font-size:14px;font-weight:650;opacity:.92}
.wj-band-list{display:grid;gap:10px}
.wj-band{display:grid;grid-template-columns:14px minmax(0,1fr) auto;gap:14px;align-items:center;min-height:72px;padding:0 16px 0 0;border:1px solid var(--border);border-radius:20px;background:var(--surface);overflow:hidden;transition:transform .2s ease,box-shadow .2s ease,opacity .2s ease}
.wj-band-strip{align-self:stretch;width:14px;border-radius:0}
.wj-band-copy{display:grid;gap:2px;padding:12px 0}
.wj-band-copy strong{font-size:16px}
.wj-band-copy small{color:var(--muted);font-size:13px}
.wj-band-copy small b{color:var(--text);font-variant-numeric:tabular-nums}
.wj-band-timer{display:grid;justify-items:end;gap:1px;text-align:right}
.wj-band-timer b{font-size:22px;font-weight:800;font-variant-numeric:tabular-nums;line-height:1}
.wj-band-timer small{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-weight:700}
.wj-band.done{opacity:.5}
.wj-band.done .wj-band-timer b{font-size:15px;color:var(--muted)}
.wj-band.next .wj-band-timer b{font-size:15px;color:var(--muted)}
.wj-band.live{grid-template-columns:22px minmax(0,1fr) auto;border-color:transparent;box-shadow:0 12px 30px rgba(15,23,42,.14);transform:scale(1.015)}
.wj-band.live .wj-band-strip{width:22px}
.wj-band.live .wj-band-copy strong{font-size:18px}
.wj-band.live .wj-band-timer b{font-size:30px;color:var(--danger)}
.wj-band-note{margin-top:16px;text-align:center}

/* ---------- Pulseras: compartir tablero + página pública ---------- */
.wj-wb-share{display:flex;gap:18px;align-items:flex-start}
.wj-wb-share-qr{flex:0 0 auto;padding:8px;border:1px solid var(--border);border-radius:16px;background:#fff}
.wj-wb-share-qr svg{display:block;width:132px;height:132px}
.wj-wb-share-copy{min-width:0;flex:1;display:grid;gap:10px}
.wj-wb-share-copy h3{margin:0}
.wj-wb-share-link .wj-input{font-size:13px}
@media(max-width:699px){.wj-wb-share{flex-direction:column;align-items:stretch}.wj-wb-share-qr{align-self:center}}
.wj-board-public{display:grid;gap:14px}
.wj-board-public .wj-band-hero{margin-bottom:0}

/* ---------- TPV: requisitos de venta ---------- */
.wj-tpv-ticket-req{display:flex;gap:8px;align-items:flex-start;margin:0 12px 8px;padding:8px 10px;border-radius:10px;background:color-mix(in srgb,var(--warn) 14%,var(--surface));color:var(--text);font-size:12.5px;line-height:1.35}
.wj-tpv-ticket-req .wj-icon{flex:none;color:var(--warn);margin-top:1px}
.wj-doc-qr-copy{min-width:0;flex:1;display:grid;gap:8px}
.wj-doc-qr-copy .wj-input{font-size:12px}

/* ---------- Reserva pública: documento requerido (waiver) ---------- */
.wj-public-req{display:grid;gap:8px;margin:6px 0 10px;padding:12px 14px;border:1px solid var(--border);border-radius:14px;background:var(--surface2)}
.wj-public-req strong{display:flex;align-items:center;gap:8px;font-size:14px}
.wj-public-req p{margin:0;font-size:13px;color:var(--muted);line-height:1.4}
.wj-public-req-actions{display:flex;gap:8px;flex-wrap:wrap}
.wj-public-req.missing{border-color:var(--danger);background:color-mix(in srgb,var(--danger) 8%,var(--surface))}
.wj-public-req.missing strong{color:var(--danger)}
.wj-public-req .wj-btn{display:inline-flex;align-items:center;gap:6px;background:var(--surface);color:var(--text);border:1px solid var(--border)}
.wj-public-req .wj-btn.primary{background:var(--wj-public-accent,var(--accent,#0f766e));color:#fff;border-color:var(--wj-public-accent,var(--accent,#0f766e))}

/* ---------- TPV: quién entra ---------- */
.wj-tpv-people{display:grid;gap:8px}
.wj-tpv-person{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;padding:10px 12px;border:1px solid var(--border);border-radius:12px;background:var(--surface);cursor:pointer}
.wj-tpv-person input{width:18px;height:18px}
.wj-tpv-person-copy{display:grid;gap:2px;min-width:0}
.wj-tpv-person-copy small{color:var(--muted);font-size:12px}
.wj-tpv-person-state{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:700;padding:3px 8px;border-radius:999px}
.wj-tpv-person.ok .wj-tpv-person-state{background:var(--success-weak);color:var(--ok)}
.wj-tpv-person.missing .wj-tpv-person-state{background:color-mix(in srgb,var(--danger) 12%,var(--surface));color:var(--danger)}
.wj-tpv-person-add summary{cursor:pointer;font-weight:700;font-size:13px;color:var(--accent);display:flex;align-items:center;gap:6px;padding:6px 0}
.wj-tpv-person-add form{margin-top:8px}
.wj-tpv-ticket-people{margin:0 12px 8px}
.wj-tpv-people-btn{display:flex;flex-wrap:wrap;align-items:center;gap:6px;width:100%;padding:8px 10px;border:1px dashed var(--border);border-radius:12px;background:transparent;font:inherit;font-size:13px;font-weight:700;color:var(--accent);cursor:pointer;text-align:left}
.wj-tpv-person-chip{padding:2px 8px;border-radius:999px;font-size:12px;font-weight:700}
.wj-tpv-person-chip.ok{background:var(--success-weak);color:var(--ok)}
.wj-tpv-person-chip.missing{background:color-mix(in srgb,var(--danger) 12%,var(--surface));color:var(--danger)}
/* ---------- Ficha de cliente: actividad ---------- */
.wj-cust-block{margin-top:18px;padding-top:14px;border-top:1px solid var(--border);display:grid;gap:8px}
.wj-cust-block h4{display:flex;align-items:center;gap:8px;margin:0;font-size:13px}
.wj-cust-block h4 small{color:var(--muted);font-weight:600}
.wj-cust-block h4 .wj-btn{margin-left:auto}
.wj-cust-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 12px;border:1px solid var(--border);border-radius:12px;background:var(--surface);font:inherit;color:var(--text);text-align:left}
.wj-cust-row>span:first-child{display:grid;gap:2px;min-width:0}
.wj-cust-row small{color:var(--muted);font-size:12px}
.wj-cust-row b{font-variant-numeric:tabular-nums}
.wj-cust-link{cursor:pointer;width:100%}
.wj-cust-link:hover{border-color:var(--accent)}
.wj-cust-row-actions{display:flex;gap:4px}

/* ---------- Tienda online (/reservar/<centro>) ---------- */
/* ---------- Tienda pública (/reservar): diseño «Vuelta» ---------- */
.wj-shop-body{background:rgb(244,246,250)}
.wj-shop{--shop-accent:rgb(22,119,255);--shop-accent-ink:color-mix(in srgb,var(--shop-accent) 78%,#000);--shop-accent-2:color-mix(in srgb,var(--shop-accent) 72%,#fff);--shop-accent-light:color-mix(in srgb,var(--shop-accent) 55%,#fff);--shop-on-accent:#fff;--shop-navy:rgb(8,17,38);--shop-navy-2:rgb(16,30,64);--shop-ink:rgb(17,24,39);--shop-muted:rgb(100,112,132);--shop-line:rgb(226,231,239);--shop-card:rgb(255,255,255);--shop-bg:rgb(244,246,250);--shop-radius:16px;background:var(--shop-bg);color:var(--shop-ink);font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif}
.wj-shop .wj-btn.primary{background:var(--shop-accent);border-color:var(--shop-accent);color:var(--shop-on-accent);font-weight:800}
.wj-shop .wj-btn.primary:hover{filter:brightness(.95)}
.wj-shop .wj-btn.primary:disabled{opacity:.45;filter:none}
.wj-shop .wj-input,.wj-shop .wj-textarea{background:var(--shop-card);border:1px solid var(--shop-line);color:var(--shop-ink)}
/* cabecera */
.wj-shop-head{position:sticky;top:0;z-index:20;background:var(--shop-navy);color:rgb(255,255,255);border-bottom:1px solid rgba(255,255,255,.06)}
.wj-shop-head-inner{max-width:1180px;margin:0 auto;display:flex;align-items:center;gap:18px;padding:12px clamp(14px,4vw,32px)}
.wj-shop-head .wj-public-brand{flex:0 0 auto;cursor:pointer;color:rgb(255,255,255);display:flex;align-items:center}
.wj-shop-head .wj-public-logo{height:38px;width:auto;max-width:170px;object-fit:contain}
.wj-shop-nav{display:flex;gap:2px;margin-left:auto;margin-right:auto;flex-wrap:wrap;justify-content:center}
.wj-shop-navlink{border:0;background:transparent;color:rgba(255,255,255,.86);font:inherit;font-size:14px;font-weight:600;padding:8px 12px;border-radius:10px;cursor:pointer;text-decoration:none}
.wj-shop-navlink:hover,.wj-shop-navlink.active{color:var(--shop-accent);background:rgba(255,255,255,.06)}
.wj-shop .wj-public-head-right{display:flex;align-items:center;gap:8px;flex:0 0 auto}
.wj-shop-cartbtn{position:relative;display:grid;place-items:center;width:40px;height:40px;border-radius:12px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.06);color:rgb(255,255,255);cursor:pointer}
.wj-shop-cartbtn b{position:absolute;top:-6px;right:-6px;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--shop-accent);color:var(--shop-on-accent);font-size:11px;font-weight:800;display:grid;place-items:center}
.wj-shop-lang{border:1px solid rgba(255,255,255,.18);border-radius:10px;padding:8px 12px;font-size:13px;font-weight:700;color:rgb(255,255,255)}
/* hero */
.wj-shop-hero{background:radial-gradient(120% 140% at 85% 20%,color-mix(in srgb,var(--shop-accent) 28%,transparent),transparent 55%),linear-gradient(120deg,var(--shop-navy) 0%,var(--shop-navy-2) 60%,rgb(32,18,74) 100%);color:rgb(255,255,255);overflow:hidden}
.wj-shop-hero-inner{position:relative;max-width:1180px;margin:0 auto;padding:28px clamp(14px,4vw,32px) 26px;display:flex;align-items:center;gap:20px;min-height:150px}
.wj-shop-hero.tall .wj-shop-hero-inner{min-height:320px;padding-top:40px;padding-bottom:40px}
.wj-shop-hero-copy{position:relative;z-index:2;max-width:560px;display:grid;gap:8px}
.wj-shop-kicker{font-size:12px;font-weight:800;letter-spacing:.24em;text-transform:uppercase;color:var(--shop-accent)}
.wj-shop-hero h1{margin:0;font-size:clamp(30px,5vw,58px);line-height:1;font-weight:900;letter-spacing:-.02em}
.wj-shop-hero h1 em{font-style:normal;color:var(--shop-accent);display:block}
.wj-shop-hero:not(.tall) h1{font-size:clamp(24px,3.4vw,34px)}
.wj-shop-hero:not(.tall) h1 em{display:inline}
.wj-shop-hero p{margin:4px 0 0;font-size:15px;line-height:1.5;color:rgba(255,255,255,.86);max-width:460px}
.wj-shop-hero:not(.tall) p{display:none}
.wj-shop-back{align-self:flex-start;order:-1;display:inline-flex;align-items:center;gap:6px;margin:0 0 6px;border:1px solid rgba(255,255,255,.28);background:rgba(255,255,255,.12);color:rgb(255,255,255);font:inherit;font-size:13.5px;font-weight:700;cursor:pointer;padding:7px 14px 7px 10px;border-radius:999px;backdrop-filter:blur(6px)}
.wj-shop-back:hover{background:var(--shop-accent);border-color:var(--shop-accent);color:var(--shop-on-accent)}
.wj-shop-back svg{transform:rotate(180deg)}
.wj-shop-hero-art{position:absolute;inset:0 0 0 42%;background-size:cover;background-position:center;z-index:1;-webkit-mask-image:linear-gradient(90deg,transparent,rgb(0,0,0) 30%);mask-image:linear-gradient(90deg,transparent,rgb(0,0,0) 30%)}
.wj-shop-hero:not(.tall) .wj-shop-hero-art{opacity:.55}
.wj-shop-sticker{position:absolute;right:clamp(14px,4vw,40px);top:50%;transform:translateY(-50%) rotate(-10deg);z-index:2;font-size:clamp(18px,2.6vw,30px);font-weight:900;letter-spacing:.04em;line-height:1.05;white-space:pre-line;text-align:center;color:rgb(255,255,255);text-shadow:0 2px 12px rgba(0,0,0,.45);max-width:150px}
.wj-shop-hero:not(.tall) .wj-shop-sticker{display:none}
/* pasos */
/* Durante la reserva, la barra de pasos manda: se queda pegada arriba al desplazarse, así el
   cliente siempre sabe en qué paso está y puede volver al anterior sin subir del todo. La
   cabecera de la tienda deja de ser pegajosa en esos pasos para no pelearse con ella. */
.wj-shop:has(.wj-shop-stepwrap) .wj-shop-head{position:static}
.wj-shop-stepwrap{position:sticky;top:0;z-index:25;background:var(--shop-card);border-bottom:1px solid var(--shop-line);box-shadow:0 8px 20px rgba(15,23,42,.07)}
.wj-shop-steps li button{cursor:pointer}
.wj-shop-steps{list-style:none;margin:0 auto;padding:14px clamp(14px,4vw,32px);max-width:1180px;display:flex;align-items:center;gap:0;counter-reset:s}
.wj-shop-steps li{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;position:relative;color:var(--shop-muted);font-size:13px;font-weight:600}
.wj-shop-steps li:not(:last-child)::after{content:"";position:absolute;top:14px;left:calc(50% + 20px);right:calc(-50% + 20px);border-top:2px dashed var(--shop-line)}
.wj-shop-step-n{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:var(--shop-bg);border:2px solid var(--shop-line);font-size:12px;font-weight:800;color:var(--shop-muted)}
.wj-shop-steps li.active{color:var(--shop-ink)}
.wj-shop-steps li.active .wj-shop-step-n{background:var(--shop-accent);border-color:var(--shop-accent);color:var(--shop-on-accent);box-shadow:0 0 0 5px color-mix(in srgb,var(--shop-accent) 18%,transparent)}
.wj-shop-steps li.done{color:var(--shop-accent-ink)}
.wj-shop-steps li.done .wj-shop-step-n{background:color-mix(in srgb,var(--shop-accent) 22%,transparent);border-color:var(--shop-accent);color:var(--shop-accent-ink)}
.wj-shop-steps li.done .wj-shop-step-n svg{stroke-width:3}
.wj-shop-steps li.done::after{border-top-style:solid;border-color:var(--shop-accent)}
/* cuerpo */
.wj-shop-main{max-width:1180px;width:100%;margin:0 auto;padding:22px clamp(14px,4vw,32px) 40px;display:grid;gap:18px;box-sizing:border-box}
.wj-shop-main.with-aside{grid-template-columns:minmax(0,1fr) 340px;align-items:start}
.wj-shop-content{display:grid;gap:16px;min-width:0}
/* Cada bloque tiene que poder encoger. Sin esto, la fila de franjas horarias (que ya
   sabe desplazarse sola) imponía su ancho a toda la columna y la ficha del producto se
   metía por debajo del carrito: el solapamiento que se veía con muchas sesiones. */
.wj-shop-content>*{min-width:0}
.wj-shop-times{min-width:0}
.wj-shop-aside{display:grid;gap:16px;position:sticky;top:76px}
.wj-shop-panel{background:var(--shop-card);border:1px solid var(--shop-line);border-radius:var(--shop-radius);padding:18px 20px;box-shadow:0 8px 24px rgba(15,23,42,.05);display:grid;gap:14px}
.wj-shop-panel-head{display:flex;align-items:center;gap:10px}
.wj-shop-panel-head h2{margin:0;font-size:17px;font-weight:800}
.wj-shop-panel-head h2 small{font-weight:500;color:var(--shop-muted);font-size:14px}
.wj-shop-panel-ico{display:grid;place-items:center;width:32px;height:32px;border-radius:10px;background:color-mix(in srgb,var(--shop-accent) 16%,transparent);color:var(--shop-accent-ink)}
.wj-shop .wj-public-lead{margin:0;color:var(--shop-muted);font-size:14.5px;line-height:1.5}
.wj-shop .wj-public-hint{margin:0;color:var(--shop-muted);font-size:14px}
.wj-shop .wj-public-error{background:rgb(254,242,242);color:rgb(185,28,28);border:1px solid rgb(254,202,202);border-radius:12px;padding:10px 14px;font-size:14px}
/* fechas */
.wj-shop-dates{display:grid;gap:10px}
.wj-shop-dates-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.wj-shop-month{font-size:14px;font-weight:700;color:var(--shop-muted)}
.wj-shop-dates-nav{display:flex;align-items:center;gap:4px}
.wj-shop-day-nav{width:32px;height:32px;border-radius:9px;border:1px solid var(--shop-line);background:var(--shop-card);display:grid;place-items:center;cursor:pointer;color:var(--shop-ink)}
.wj-shop-day-nav svg{transform:rotate(180deg)}.wj-shop-day-nav.next svg{transform:none}
.wj-shop-day-nav:disabled{opacity:.35;cursor:default}
.wj-shop-day-pick{width:32px;height:32px;border-radius:9px;border:1px solid var(--shop-line);background:var(--shop-card);display:grid;place-items:center;cursor:pointer;color:var(--shop-ink)}
.wj-shop-day-pick:hover{border-color:var(--shop-accent)}
/* calendario emergente */
.wj-shop-cal-backdrop{align-items:center;padding:12px}
.wj-shop-cal{width:min(440px,100%);background:var(--shop-card);border-radius:18px;padding:16px;display:grid;gap:10px;box-shadow:0 24px 60px rgba(8,17,38,.35)}
.wj-shop-cal-head{display:flex;align-items:center;gap:8px}
.wj-shop-cal-head strong{flex:1;text-align:center;font-size:16px;font-weight:800}
.wj-shop-cal-x{margin-left:4px}
.wj-shop-cal-sub{margin:-4px 0 0;text-align:center;font-size:12.5px;color:var(--shop-muted)}
.wj-shop-cal-week{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;font-size:11px;font-weight:800;color:var(--shop-muted);text-transform:uppercase}
.wj-shop-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;transition:opacity .15s}
.wj-shop-cal-grid.loading{opacity:.45}
.wj-shop-cal-day{position:relative;display:grid;justify-items:center;align-content:start;gap:2px;padding:6px 2px 5px;min-height:54px;border-radius:10px;border:1px solid var(--shop-line);background:var(--shop-card);font:inherit;color:var(--shop-ink);cursor:pointer}
.wj-shop-cal-day.empty{border:0;background:transparent;cursor:default}
.wj-shop-cal-day.off{opacity:.35;cursor:default;background:var(--shop-bg)}
.wj-shop-cal-day:not(.off):hover{border-color:var(--shop-accent)}
.wj-shop-cal-day.today .wj-shop-cal-n{text-decoration:underline;text-underline-offset:3px}
.wj-shop-cal-day.sel{background:var(--shop-navy);border-color:var(--shop-navy);color:rgb(255,255,255)}
.wj-shop-cal-n{font-size:14px;font-weight:800;line-height:1}
.wj-shop-cal-p{display:inline-flex;align-items:center;gap:2px;font-size:10.5px;font-weight:700;color:var(--shop-muted);line-height:1}
.wj-shop-cal-day.p-low .wj-shop-cal-p{color:var(--shop-accent-ink)}
.wj-shop-cal-day.p-high .wj-shop-cal-p{color:rgb(217,119,6)}
.wj-shop-cal-day.sel .wj-shop-cal-p{color:rgba(255,255,255,.85)}
.wj-shop-cal-occ{display:block;width:70%;height:4px;border-radius:2px;background:rgba(15,23,42,.1);overflow:hidden}
.wj-shop-cal-occ b{display:block;height:100%;width:0;background:rgb(31,157,85)}
.wj-shop-cal-day.medium .wj-shop-cal-occ b{background:rgb(224,164,0)}
.wj-shop-cal-day.low .wj-shop-cal-occ b{background:rgb(249,115,22)}
.wj-shop-cal-day.full{background:rgb(254,242,242);color:rgb(185,28,28)}
.wj-shop-cal-day.full .wj-shop-cal-occ b{background:rgb(214,69,69)}
.wj-shop-cal-legend{display:flex;flex-wrap:wrap;gap:6px 12px;font-size:11px;color:var(--shop-muted);border-top:1px solid var(--shop-line);padding-top:8px}
.wj-shop-cal-legend span{display:inline-flex;align-items:center;gap:5px}
.wj-shop-cal-legend .lv{width:14px;height:4px;border-radius:2px;background:rgb(31,157,85)}
.wj-shop-cal-legend .lv.medium{background:rgb(224,164,0)}.wj-shop-cal-legend .lv.low{background:rgb(249,115,22)}.wj-shop-cal-legend .lv.full{background:rgb(214,69,69)}
.wj-shop-cal-legend .pl{width:8px;height:8px;border-radius:50%;background:rgb(217,119,6)}
/* cuenta de cliente */
.wj-shop-userbtn.on{background:var(--shop-accent);border-color:var(--shop-accent);color:var(--shop-on-accent)}
.wj-shop-avatar{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--shop-navy);color:var(--shop-accent);font-size:12px;font-weight:800}
.wj-shop-userbtn .wj-shop-avatar{width:100%;height:100%;border-radius:11px;background:transparent;color:inherit;font-size:13px}
.wj-shop-avatar.lg{width:48px;height:48px;font-size:17px}
.wj-shop-auth-tabs{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;border-radius:12px;background:var(--shop-bg)}
.wj-shop-auth-tabs button{border:0;border-radius:9px;padding:9px;background:transparent;font:inherit;font-size:13px;font-weight:700;color:var(--shop-muted);cursor:pointer}
.wj-shop-auth-tabs button.on{background:var(--shop-card);color:var(--shop-ink);box-shadow:0 2px 8px rgba(15,23,42,.08)}
.wj-shop-auth-form{display:grid;gap:12px}
.wj-shop-auth .wj-public-cta{min-height:46px;border-radius:12px;width:100%}
.wj-shop-acct{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--shop-line);border-radius:12px}
.wj-shop-acct>div{flex:1;min-width:0;display:grid}.wj-shop-acct strong{font-size:14.5px}.wj-shop-acct small{color:var(--shop-muted);font-size:12.5px}
.wj-shop-acct-choice{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.wj-shop-inline-link{border:0;background:transparent;color:var(--shop-accent-ink);font:inherit;font-size:13px;font-weight:700;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.wj-shop-mybookings{display:grid;gap:8px}
.wj-shop-mybooking{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border:1px solid var(--shop-line);border-radius:12px}
.wj-shop-mybooking>div{display:grid;gap:2px;min-width:0}.wj-shop-mybooking strong{font-size:14.5px}.wj-shop-mybooking small{color:var(--shop-muted);font-size:12.5px}
.wj-shop-ref{font-variant-numeric:tabular-nums;letter-spacing:.04em}
.wj-shop-bstatus{font-size:12px;font-weight:800;padding:5px 10px;border-radius:999px;background:rgba(224,164,0,.16);color:rgb(150,100,0);white-space:nowrap}
.wj-shop-bstatus.ok{background:rgba(31,157,85,.16);color:rgb(21,110,60)}.wj-shop-bstatus.ko{background:rgb(254,226,226);color:rgb(185,28,28)}
/* pasos clicables */
.wj-shop-steps li button{display:flex;flex-direction:column;align-items:center;gap:6px;border:0;background:transparent;font:inherit;color:inherit;cursor:pointer;padding:0}
.wj-shop-steps li button:hover .wj-shop-step-n{border-color:var(--shop-accent)}
.wj-shop-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}
.wj-shop-day{display:grid;justify-items:center;gap:2px;padding:10px 4px;border-radius:12px;border:1px solid var(--shop-line);background:var(--shop-card);cursor:pointer;color:var(--shop-ink);font:inherit}
.wj-shop-day small{font-size:11px;font-weight:700;color:var(--shop-muted);text-transform:uppercase;letter-spacing:.02em}
.wj-shop-day strong{font-size:20px;font-weight:800;line-height:1.1}
.wj-shop-day:hover{border-color:var(--shop-accent)}
.wj-shop-day.active{background:linear-gradient(135deg,var(--shop-accent),var(--shop-accent-ink));border-color:transparent;color:rgb(255,255,255);box-shadow:0 8px 20px color-mix(in srgb,var(--shop-accent) 35%,transparent)}
.wj-shop-day.active small{color:rgba(255,255,255,.9)}
.wj-shop-day:disabled{opacity:.35;cursor:default}
/* horas */
.wj-shop-slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px}
.wj-shop-slot{display:grid;justify-items:center;gap:2px;padding:12px 8px;border-radius:12px;border:1px solid var(--shop-line);background:var(--shop-card);cursor:pointer;color:var(--shop-ink);font:inherit}
.wj-shop-slot strong{font-size:16px;font-weight:800}
.wj-shop-slot small{font-size:12px;color:var(--shop-muted)}
.wj-shop-slot:hover{border-color:var(--shop-accent)}
.wj-shop-slot.active{background:linear-gradient(135deg,var(--shop-accent),var(--shop-accent-ink));border-color:transparent;color:rgb(255,255,255)}
.wj-shop-slot.active small{color:rgba(255,255,255,.9)}
.wj-shop-slot:disabled{opacity:.4;cursor:default;text-decoration:line-through}
/* producto */
.wj-shop-product-head{display:flex;flex-wrap:wrap;gap:18px;align-items:flex-start}
.wj-shop-product-img{width:min(300px,42%);aspect-ratio:4/3;object-fit:cover;border-radius:14px;flex:0 0 auto;display:grid;place-items:center;background:var(--shop-bg);color:var(--shop-muted)}
.wj-shop-product-copy{display:grid;gap:8px;min-width:0}
.wj-shop-product-copy h2{margin:0;font-size:22px;font-weight:900}
.wj-shop-meta{display:flex;flex-wrap:wrap;gap:14px;font-size:12.5px;color:var(--shop-muted)}
.wj-shop-meta span{display:inline-flex;align-items:center;gap:5px}
.wj-shop-qty{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border:1px solid var(--shop-line);border-radius:12px}
.wj-shop-qty-copy{display:grid;gap:2px}.wj-shop-qty-copy strong{font-size:15px}.wj-shop-qty-copy small{color:var(--shop-muted);font-size:12.5px}.wj-shop-qty-copy b{font-size:14px}
.wj-shop-stepper{display:inline-flex;align-items:center;border:1px solid var(--shop-line);border-radius:10px;overflow:hidden;background:var(--shop-bg)}
.wj-shop-stepper button{width:36px;height:36px;border:0;background:transparent;font-size:18px;cursor:pointer;color:var(--shop-ink)}
.wj-shop-stepper button:disabled{opacity:.35;cursor:default}
.wj-shop-stepper output{min-width:38px;text-align:center;font-weight:800;background:var(--shop-card);height:36px;display:grid;place-items:center}
.wj-shop-stepper.big button{width:42px;height:42px}.wj-shop-stepper.big output{height:42px;min-width:46px;font-size:16px}
.wj-shop-addons{display:grid;gap:10px}
.wj-shop-addon{display:grid;grid-template-columns:64px minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:12px;border:1px solid var(--shop-line);border-radius:12px}
.wj-shop-addon-img{width:64px;height:64px;border-radius:10px;background:var(--shop-bg);display:grid;place-items:center;overflow:hidden;color:var(--shop-muted)}
.wj-shop-addon-img img{width:100%;height:100%;object-fit:cover}
.wj-shop-addon-copy{display:grid;gap:2px;min-width:0}.wj-shop-addon-copy strong{font-size:14.5px}.wj-shop-addon-copy small{color:var(--shop-muted);font-size:12.5px;line-height:1.4}
.wj-shop-addon-price{font-size:15px;font-weight:800}
.wj-shop-add{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:14px 18px;background:var(--shop-card);border:1px solid var(--shop-line);border-radius:var(--shop-radius)}
.wj-shop .wj-public-total{display:flex;align-items:baseline;gap:8px;font-size:15px;color:var(--shop-muted)}.wj-shop .wj-public-total strong{font-size:24px;color:var(--shop-ink);font-weight:900}
.wj-shop-addbtn{display:inline-flex;align-items:center;gap:8px;padding:0 20px;min-height:46px;border-radius:12px}
/* catálogo */
.wj-shop-section{display:grid;gap:12px}
.wj-shop-section h2{margin:0;font-size:20px;font-weight:900}
.wj-shop-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr));gap:10px}
.wj-shop-card{display:grid;grid-template-columns:72px minmax(0,1fr) auto;align-items:center;gap:10px;text-align:left;border:1px solid var(--shop-line);background:var(--shop-card);border-radius:14px;overflow:hidden;cursor:pointer;padding:8px 10px 8px 8px;font:inherit;color:var(--shop-ink);box-shadow:0 4px 14px rgba(15,23,42,.04);transition:transform .15s,box-shadow .15s}
.wj-shop-card:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(15,23,42,.1)}
.wj-shop-card-img{display:block;width:72px;height:72px;border-radius:10px;background:var(--shop-bg);overflow:hidden}
.wj-shop-card-img img{width:100%;height:100%;object-fit:cover;display:block}
.wj-shop-card-ph{display:grid;place-items:center;height:100%;color:var(--shop-muted)}
.wj-shop-card-body{display:grid;gap:3px;min-width:0}
.wj-shop-card-body strong{font-size:14px;font-weight:800;line-height:1.2}
.wj-shop-card-desc{font-size:12px;color:var(--shop-muted);line-height:1.35;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}
.wj-shop-card-go{color:var(--shop-muted)}
.wj-shop-grid.dim .wj-shop-card{opacity:.6}
.wj-shop-card-foot{display:flex;align-items:baseline;justify-content:space-between;gap:8px}
.wj-shop-card-price{font-weight:900;font-size:14px;color:var(--shop-accent-ink)}
.wj-shop-card-foot small{color:var(--shop-muted);font-size:12px}
/* carrito */
.wj-shop-cart{background:var(--shop-card);border:1px solid var(--shop-line);border-radius:var(--shop-radius);padding:16px 18px;display:grid;gap:12px;box-shadow:0 8px 24px rgba(15,23,42,.05)}
.wj-shop-cart-head{display:flex;align-items:center;justify-content:space-between;padding-bottom:10px;border-bottom:1px solid var(--shop-line)}
.wj-shop-cart-head h3{margin:0;font-size:17px;font-weight:800;display:flex;align-items:center;gap:8px}
.wj-shop-line{display:grid;grid-template-columns:52px minmax(0,1fr) auto;gap:10px;align-items:start}
.wj-shop-line-img{width:52px;height:44px;border-radius:8px;background:var(--shop-bg);display:grid;place-items:center;overflow:hidden;color:var(--shop-muted)}
.wj-shop-line-img img{width:100%;height:100%;object-fit:cover}
.wj-shop-line-copy{display:grid;gap:1px;min-width:0}.wj-shop-line-copy strong{font-size:14px}.wj-shop-line-copy small{font-size:12px;color:var(--shop-muted)}
.wj-shop-line-right{display:grid;justify-items:end;gap:4px}.wj-shop-line-right b{font-size:15px}
.wj-shop-line-del{border:0;background:transparent;color:var(--shop-muted);cursor:pointer;padding:2px}.wj-shop-line-del:hover{color:rgb(185,28,28)}
.wj-shop-promo-code{display:flex;align-items:center;gap:6px;border:1px solid var(--shop-line);border-radius:10px;padding:4px 4px 4px 10px}
.wj-shop-promo-code .wj-input{border:0;background:transparent;flex:1;min-width:0;padding:6px 4px}
.wj-shop-promo-ico{color:var(--shop-muted);display:grid}
.wj-shop-cart-sums{margin:0;display:grid;gap:6px}
.wj-shop-cart-sums div{display:flex;justify-content:space-between;font-size:13.5px;color:var(--shop-muted)}.wj-shop-cart-sums dd{margin:0;color:var(--shop-ink)}
.wj-shop-cart-total{display:flex;justify-content:space-between;align-items:baseline;border-top:1px solid var(--shop-line);padding-top:10px;font-size:18px;font-weight:800}
.wj-shop-cart-total b{font-size:22px;font-weight:900}
.wj-shop-cart .wj-public-cta{display:flex;align-items:center;justify-content:center;gap:8px;min-height:46px;border-radius:12px;width:100%}
.wj-shop-secure{margin:0;text-align:center;font-size:12px;color:var(--shop-muted);display:flex;justify-content:center;align-items:center;gap:5px}
.wj-shop-cart-empty{display:grid;justify-items:center;gap:8px;text-align:center;padding:16px 0;color:var(--shop-muted);font-size:13.5px}
/* confianza, promo, grupos */
/* Un día completo se ve tachado; los días sin pases ni se pintan. */
.wj-shop-day.is-full{opacity:.45}
.wj-shop-day.is-full strong{text-decoration:line-through}
.wj-shop-days-note{margin:10px 2px 0;font-size:13px;color:var(--shop-muted)}
/* Cantidad dentro del carrito: el cliente ajusta sin volver al producto. */
.wj-shop-line-step{display:inline-flex;align-items:center;gap:2px;border:1px solid var(--shop-line);border-radius:11px;padding:2px;background:var(--shop-card)}
.wj-shop-line-step button{width:30px;height:30px;border:0;background:transparent;border-radius:9px;font:inherit;font-size:16px;font-weight:800;color:var(--shop-ink,inherit);cursor:pointer;line-height:1}
.wj-shop-line-step button:hover{background:var(--shop-bg,#f1f5f9)}
.wj-shop-line-step b{min-width:22px;text-align:center;font-variant-numeric:tabular-nums;font-size:14px}
.wj-shop-line-right{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.wj-shop-badges{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.wj-shop-badge{display:grid;justify-items:center;text-align:center;gap:4px;font-size:12px;color:var(--shop-muted)}
.wj-shop-badge strong{font-size:12.5px;color:var(--shop-ink)}
.wj-shop-badge-ico{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:color-mix(in srgb,var(--shop-accent) 16%,transparent);color:var(--shop-accent-ink)}
.wj-shop-promo{position:relative;overflow:hidden;border-radius:var(--shop-radius);background:radial-gradient(90% 120% at 100% 0%,color-mix(in srgb,var(--shop-accent) 35%,transparent),transparent 55%),linear-gradient(135deg,var(--shop-navy),var(--shop-navy-2));color:rgb(255,255,255);min-height:190px;display:flex;align-items:flex-end}
.wj-shop-promo-copy{position:relative;z-index:2;padding:18px;display:grid;gap:8px;max-width:62%}
.wj-shop-promo-copy h3{margin:0;font-size:22px;line-height:1.05;font-weight:900}.wj-shop-promo-copy h3::first-line{font-weight:600;font-size:16px}
.wj-shop-promo-copy p{margin:0;font-size:13px;color:rgba(255,255,255,.85);line-height:1.4}
.wj-shop-promo-btn{display:inline-flex;align-items:center;gap:6px;justify-self:start;border:0;border-radius:10px;padding:9px 14px;background:var(--shop-accent);color:var(--shop-on-accent);font:inherit;font-size:13px;font-weight:800;cursor:pointer;text-decoration:none}
.wj-shop-promo-art{position:absolute;inset:0 0 0 45%;background-size:cover;background-position:center;-webkit-mask-image:linear-gradient(90deg,transparent,rgb(0,0,0) 35%);mask-image:linear-gradient(90deg,transparent,rgb(0,0,0) 35%)}
.wj-shop-group{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:14px 16px;border:1px solid var(--shop-line);border-radius:var(--shop-radius);background:var(--shop-card);color:var(--shop-ink);text-decoration:none}
.wj-shop-group-ico{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:color-mix(in srgb,var(--shop-accent) 16%,transparent);color:var(--shop-accent-ink)}
.wj-shop-group strong{display:block;font-size:14.5px}.wj-shop-group small{color:var(--shop-muted);font-size:12.5px;line-height:1.4}
/* checkout / listo */
.wj-shop-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.wj-shop-checkout form{display:grid;gap:12px}
.wj-shop .wj-public-field{display:grid;gap:5px;font-size:13px;font-weight:600}
.wj-shop .wj-public-check{display:flex;align-items:flex-start;gap:8px;font-size:13px;color:var(--shop-muted)}
.wj-shop .wj-public-note{margin:0;font-size:13px;color:var(--shop-muted);display:flex;gap:6px;align-items:center}
.wj-shop-checkout .wj-public-cta{min-height:48px;border-radius:12px;font-size:15px}
.wj-shop-done{text-align:center;justify-items:center}
.wj-shop-done .wj-public-check{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;background:color-mix(in srgb,var(--shop-accent) 20%,transparent);color:var(--shop-accent-ink)}
.wj-shop-done .wj-public-check.ko{background:rgb(254,226,226);color:rgb(185,28,28)}
.wj-shop-done h2{margin:0;font-size:24px;font-weight:900}
.wj-shop .wj-public-reference{display:grid;gap:4px;padding:12px 20px;border:1px dashed var(--shop-line);border-radius:12px}
.wj-shop .wj-public-reference strong{font-size:22px;letter-spacing:.06em}
.wj-shop .wj-public-summary{width:100%;max-width:420px;margin:0;display:grid;grid-template-columns:auto 1fr;gap:6px 14px;text-align:left;font-size:13.5px}
.wj-shop .wj-public-summary dt{color:var(--shop-muted)}.wj-shop .wj-public-summary dd{margin:0;font-weight:600}
/* barra móvil y hoja del carrito */
.wj-shop-bar{position:sticky;bottom:0;z-index:15;display:none;align-items:center;gap:10px;padding:10px 14px;background:var(--shop-navy);color:rgb(255,255,255)}
.wj-shop-bar-open{flex:1;display:flex;align-items:center;gap:10px;border:0;background:transparent;color:inherit;font:inherit;font-size:14px;cursor:pointer;padding:4px;border-radius:12px;text-align:left}
.wj-shop-bar-open:hover{background:rgba(255,255,255,.08)}
/* El carrito con su contador: es lo que la gente busca con la mirada. */
.wj-shop-bar-ico{position:relative;display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:rgba(255,255,255,.12);flex:none}
.wj-shop-bar-ico i{position:absolute;top:-4px;right:-5px;min-width:19px;height:19px;padding:0 5px;border-radius:999px;background:var(--shop-accent);color:var(--shop-on-accent);font-size:11.5px;font-weight:800;font-style:normal;display:grid;place-items:center;line-height:1}
.wj-shop-bar-copy{display:grid;gap:1px;min-width:0}
.wj-shop-bar-copy strong{font-size:14.5px;font-weight:700}
.wj-shop-bar-copy small{font-size:12px;color:rgba(255,255,255,.72)}
.wj-shop-bar-open b{font-size:17px;margin-left:auto}
/* La flecha apunta arriba: el carrito sube desde abajo. Al abrirlo, se da la vuelta. */
.wj-shop-bar-arrow{display:grid;place-items:center;width:26px;height:26px;flex:none;transform:rotate(-90deg);transition:transform .18s ease;opacity:.8}
.wj-shop-bar-open[aria-expanded="true"] .wj-shop-bar-arrow{transform:rotate(90deg)}
.wj-shop-bar-go{min-height:42px;border-radius:10px;padding:0 16px}
.wj-shop-sheet-backdrop{position:fixed;inset:0;z-index:30;background:rgba(8,17,38,.55);display:flex;align-items:flex-end;justify-content:center}
.wj-shop-sheet{width:min(560px,100%);max-height:86vh;overflow:auto;background:var(--shop-card);border-radius:18px 18px 0 0;padding:6px}
/* pie */
.wj-shop-foot{background:var(--shop-navy);color:rgb(255,255,255);padding:28px clamp(14px,4vw,32px);display:grid;gap:14px}
.wj-shop-foot-inner{max-width:1180px;margin:0 auto;width:100%;display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap}
.wj-shop-foot-brand .wj-public-logo{height:44px;width:auto;max-width:200px;object-fit:contain}
.wj-shop-foot-tag{font-size:clamp(14px,2vw,22px);letter-spacing:.32em;font-weight:600;text-transform:uppercase;color:rgba(255,255,255,.9)}
.wj-shop-foot-note{font-size:clamp(16px,2vw,22px);font-weight:900;letter-spacing:.04em;transform:rotate(-6deg);color:rgb(255,255,255)}
.wj-shop-foot-links{max-width:1180px;margin:0 auto;width:100%;display:flex;gap:16px;flex-wrap:wrap;font-size:12px;color:rgba(255,255,255,.6);border-top:1px solid rgba(255,255,255,.08);padding-top:12px}
.wj-shop-foot-links a{color:inherit}
@media(max-width:899px){
 .wj-shop-main.with-aside{grid-template-columns:1fr}
 .wj-shop-aside{position:static}
 .wj-shop-aside .wj-shop-cart{display:none}
 .wj-shop-bar{display:flex}
 .wj-shop-nav{display:none}
 .wj-shop-hero-art{inset:0 0 0 30%;opacity:.5}
}
@media(min-width:900px){
 .wj-shop-sheet-backdrop{align-items:center}
 .wj-shop-sheet{border-radius:18px}
}
@media(max-width:520px){
 .wj-shop-form-grid{grid-template-columns:1fr}
 .wj-shop-steps li .wj-shop-step-l{font-size:11px;text-align:center}
 .wj-shop-day strong{font-size:16px}
 .wj-shop-product-head{flex-direction:column}
 .wj-shop-product-img{width:100%}
 .wj-shop-addon{grid-template-columns:52px minmax(0,1fr);grid-template-areas:"img copy" "price step"}
 .wj-shop-addon-img{grid-area:img}.wj-shop-addon-copy{grid-area:copy}.wj-shop-addon-price{grid-area:price}.wj-shop-addon .wj-shop-stepper{grid-area:step;justify-self:end}
 .wj-shop-badges{grid-template-columns:1fr 1fr 1fr;gap:6px}
 .wj-shop-promo-copy{max-width:100%}
 .wj-shop-sticker{display:none}
}

/* ---------- Ventanas a pantalla completa ---------- */
.wj-modal-backdrop.is-full{padding:12px}
.wj-modal.full{width:100%;height:100%;max-height:none;max-width:1180px;display:flex;flex-direction:column;border-radius:20px}
.wj-modal.full .wj-modal-head{flex:0 0 auto;position:sticky;top:0;z-index:2;background:var(--surface)}
.wj-modal.full .wj-modal-body{flex:1;min-height:0;overflow:auto}
html[data-layout="mobile"] .wj-modal-backdrop.is-full{padding:0}
html[data-layout="mobile"] .wj-modal.full{border-radius:0;max-height:100dvh}
/* ---------- IVA ---------- */
.wj-tax-rates{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,200px),1fr));gap:10px}
.wj-tax-rate{display:grid;grid-template-columns:auto auto minmax(0,1fr);gap:10px;align-items:center;padding:12px 14px;border:1px solid var(--border);border-radius:16px;background:var(--surface);cursor:pointer}
.wj-tax-rate b{font-size:18px;font-variant-numeric:tabular-nums}
.wj-tax-rate span{font-size:13px;color:var(--muted)}
.wj-tax-rate.active{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,var(--surface))}
.wj-tax-cats{display:grid;gap:8px}
.wj-tax-cat{display:grid;grid-template-columns:14px minmax(0,1fr) minmax(200px,320px);gap:12px;align-items:center;padding:8px 12px;border:1px solid var(--border);border-radius:12px;background:var(--surface)}
.wj-tax-cat-dot{width:14px;height:14px;border-radius:50%;background:var(--surface3)}
@media(max-width:620px){.wj-tax-cat{grid-template-columns:14px minmax(0,1fr)}.wj-tax-cat .wj-select{grid-column:1/-1}}
/* ---------- Selector de fecha ---------- */
.wj-date{position:relative;display:block;width:100%}
.wj-date input[type="date"]{position:absolute;inset:0;width:100%;height:100%;opacity:0;pointer-events:none}
.wj-date-btn{display:flex;align-items:center;gap:8px;width:100%;min-height:42px;padding:0 12px;border:1px solid var(--border);border-radius:12px;background:var(--surface);font:inherit;font-size:14px;color:var(--text);cursor:pointer;text-align:left}
.wj-date-btn>span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wj-date-btn.empty>span{color:var(--muted)}
.wj-date-btn:hover{border-color:var(--accent)}
.wj-date-btn:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.wj-date-btn.disabled{opacity:.6;cursor:not-allowed}
.wj-date-btn i{font-style:normal;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;color:var(--muted)}
.wj-date-btn i:hover{background:var(--surface2);color:var(--danger)}
.wj-date-pop{position:fixed;z-index:120;width:300px;padding:10px;border:1px solid var(--border);border-radius:16px;background:var(--surface);box-shadow:0 18px 44px rgba(15,23,42,.18);animation:wjDateIn .14s ease}
@keyframes wjDateIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
.wj-date-head{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-bottom:6px}
.wj-date-head .wj-btn svg{transform:rotate(180deg)}
.wj-date-head .wj-btn.next svg{transform:none}
.wj-date-title{display:flex;gap:4px;flex:1;justify-content:center}
.wj-date-month,.wj-date-year{border:1px solid transparent;border-radius:8px;background:transparent;font:inherit;font-weight:800;font-size:14px;color:var(--text);padding:4px 6px;cursor:pointer;text-transform:capitalize}
.wj-date-month:hover,.wj-date-year:hover{background:var(--surface2)}
.wj-date-dow{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;font-size:11px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;text-align:center;margin-bottom:2px}
.wj-date-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}
.wj-date-cell{height:36px;border:0;border-radius:12px;background:transparent;font:inherit;font-size:14px;font-weight:600;color:var(--text);cursor:pointer;font-variant-numeric:tabular-nums}
.wj-date-cell:hover:not(:disabled){background:var(--surface2)}
.wj-date-cell.today{box-shadow:inset 0 0 0 1px var(--accent);color:var(--accent)}
.wj-date-cell.sel{background:var(--accent);color:var(--on-accent,#fff)}
.wj-date-cell:disabled{opacity:.3;cursor:not-allowed}
.wj-date-cell.pad{pointer-events:none}
.wj-date-foot{display:flex;gap:6px;justify-content:flex-end;margin-top:8px;padding-top:8px;border-top:1px solid var(--border)}

/* ---------- Roles y permisos legibles ---------- */
.wj-perm-tools{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.wj-perm-tools .wj-search{flex:1}
.wj-perm-groups{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:12px}
.wj-perm-group{border:1px solid var(--border);border-radius:16px;background:var(--surface);overflow:hidden}
.wj-perm-group.has-some{border-color:color-mix(in srgb,var(--accent) 45%,var(--border))}
.wj-perm-group-head{padding:10px 12px;background:var(--surface2);border-bottom:1px solid var(--border)}
.wj-perm-all{display:flex;align-items:center;gap:10px;cursor:pointer}
.wj-perm-all input{width:18px;height:18px}
.wj-perm-all strong{flex:1;font-size:14px}
.wj-perm-all small{color:var(--muted);font-weight:700;font-variant-numeric:tabular-nums}
.wj-perm-group-icon{display:grid;place-items:center;width:26px;height:26px;border-radius:8px;background:var(--surface);color:var(--accent)}
.wj-perm-list{display:grid;gap:2px;padding:6px}
.wj-perm-item{display:flex;align-items:flex-start;gap:10px;padding:7px 8px;border-radius:12px;cursor:pointer}
.wj-perm-item:hover{background:var(--surface2)}
.wj-perm-item input{margin-top:2px;width:17px;height:17px;flex:none}
.wj-perm-copy{display:grid;gap:1px;min-width:0}
.wj-perm-copy strong{font-size:14px;font-weight:600;line-height:1.3}
.wj-perm-copy small{font-size:11px;color:var(--text-3,var(--muted));font-family:ui-monospace,Menlo,Consolas,monospace}
.wj-perm-summary{display:grid;gap:10px}
.wj-perm-sum-group h4{display:flex;align-items:center;gap:6px;margin:0 0 6px;font-size:13px}
.wj-perm-sum-group h4 small{color:var(--muted);font-weight:600}
.wj-perm-sum-group ul{margin:0;padding:0;list-style:none;display:grid;gap:3px}
.wj-perm-sum-group li{display:flex;justify-content:space-between;gap:10px;padding:6px 10px;border:1px solid var(--border);border-radius:12px;font-size:13px}
.wj-perm-sum-group li small{color:var(--text-3,var(--muted));font-family:ui-monospace,Menlo,Consolas,monospace;font-size:11px;white-space:nowrap}
.wj-perm-id{margin-top:14px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:11px}

/* ---------- Configuración: pestañas y volver ---------- */
.wj-settings-tabs{margin:0 0 14px;display:flex;gap:6px;flex-wrap:wrap}
.wj-settings-back{margin-bottom:12px;display:inline-flex;align-items:center;gap:6px}
.wj-settings-back svg{transform:rotate(180deg)}

/* ---------- Login ---------- */
.wj-login-art-top{display:flex;align-items:center;min-height:44px}
.wj-login-logo{height:44px;width:auto;max-width:220px;object-fit:contain}
.wj-login-logo.sm{height:34px}
.wj-login-art-copy{display:grid;gap:10px;max-width:460px}
.wj-login-eyebrow{font-size:11px;font-weight:800;letter-spacing:.14em;color:rgba(255,255,255,.7)}
.wj-login-features{list-style:none;margin:6px 0 0;padding:0;display:grid;gap:8px}
.wj-login-features li{display:flex;align-items:center;gap:8px;font-size:13.5px;color:rgba(255,255,255,.88)}
.wj-login-features li svg{flex:none;width:22px;height:22px;padding:4px;border-radius:50%;background:rgba(255,255,255,.14)}
.wj-login-version{font-size:11px;color:rgba(255,255,255,.55);font-weight:700;letter-spacing:.04em}
.wj-login-mobile-brand{display:none;align-items:center;gap:10px;justify-content:center;padding:26px 0 6px}
@media(max-width:820px){.wj-login-art{display:none}.wj-login-mobile-brand{display:flex}.wj-login-panel{padding:8px 18px 32px}.wj-login-stack{max-width:440px;margin:0 auto;width:100%}.wj-login-card{box-shadow:none;border:0;padding:8px 0}}
/* ---------- Perfil ---------- */
.wj-me{display:grid;gap:16px}
.wj-me-hero{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:center;padding:22px 24px;border-radius:24px;background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 88%,#000) 0%,var(--accent) 55%,color-mix(in srgb,var(--accent) 65%,#fff) 100%);color:#fff;box-shadow:0 16px 40px color-mix(in srgb,var(--accent) 35%,transparent)}
.wj-me-hero-main{display:flex;align-items:center;gap:18px;min-width:0}
.wj-me-avatar{position:relative;flex:none;width:84px;height:84px;border-radius:50%;padding:0;border:3px solid rgba(255,255,255,.55);background:rgba(255,255,255,.15);cursor:pointer;overflow:visible}
.wj-me-avatar .wj-avatar,.wj-me-avatar .wj-avatar-media{width:100%;height:100%;border-radius:50%;font-size:26px}
.wj-me-avatar .wj-avatar-media img{width:100%;height:100%;object-fit:cover;border-radius:50%}
.wj-me-avatar-edit{position:absolute;right:-2px;bottom:-2px;width:26px;height:26px;border-radius:50%;background:#fff;color:var(--accent);display:grid;place-items:center;box-shadow:0 2px 8px rgba(0,0,0,.2)}
.wj-me-id{min-width:0;display:grid;gap:4px}
.wj-me-id h1{margin:0;font-size:clamp(22px,3vw,30px);letter-spacing:-.02em;line-height:1.1}
.wj-me-id p{margin:0;opacity:.9;font-size:14px}
.wj-me-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.wj-me-chip{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:999px;background:rgba(255,255,255,.16);font-size:12px;font-weight:700}
.wj-me-hero-actions .wj-btn{background:rgba(255,255,255,.92);color:var(--accent);border-color:transparent}
.wj-me-ring{display:flex;align-items:center;gap:12px}
.wj-me-ring svg{width:96px;height:96px;transform:rotate(-90deg)}
.wj-me-ring circle{fill:none;stroke:rgba(255,255,255,.22);stroke-width:9}
.wj-me-ring .wj-me-ring-fill{stroke:#fff;stroke-linecap:round;transition:stroke-dashoffset .8s cubic-bezier(.22,1,.36,1)}
.wj-me-ring div{display:grid}
.wj-me-ring b{font-size:24px;line-height:1}
.wj-me-ring span{font-size:12px;opacity:.85;font-weight:700;text-transform:uppercase;letter-spacing:.06em}
.wj-me-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.wj-me-stat{display:grid;gap:2px;padding:14px 16px;border:1px solid var(--border);border-radius:20px;background:var(--surface)}
.wj-me-stat-icon{width:32px;height:32px;border-radius:12px;display:grid;place-items:center;background:color-mix(in srgb,var(--accent) 12%,var(--surface));color:var(--accent);margin-bottom:4px}
.wj-me-stat b{font-size:26px;line-height:1;font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.wj-me-stat span:not(.wj-me-stat-icon){font-size:13px;color:var(--muted);font-weight:700}
.wj-me-stat small{font-size:12px;color:var(--muted)}
.wj-me-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:16px;align-items:start}
.wj-ach-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.wj-ach{position:relative;display:grid;gap:4px;padding:14px 12px 12px;border:1px solid var(--border);border-radius:20px;background:var(--surface);text-align:center;justify-items:center;filter:grayscale(1);opacity:.62;transition:transform .2s ease,box-shadow .2s ease,filter .3s ease,opacity .3s ease}
.wj-ach.on{filter:none;opacity:1;border-color:color-mix(in srgb,var(--accent) 55%,var(--border));background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 10%,var(--surface)),var(--surface));box-shadow:0 10px 26px color-mix(in srgb,var(--accent) 18%,transparent)}
.wj-ach.on:hover{transform:translateY(-2px)}
.wj-ach-emoji{font-size:32px;line-height:1;width:56px;height:56px;display:grid;place-items:center;border-radius:50%;background:var(--surface2)}
.wj-ach.on .wj-ach-emoji{background:color-mix(in srgb,var(--accent) 16%,var(--surface));box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 12%,transparent)}
.wj-ach strong{font-size:13px;line-height:1.2}
.wj-ach small{font-size:11px;color:var(--muted);line-height:1.3;min-height:28px}
.wj-ach-bar{width:100%;height:5px;border-radius:999px;background:var(--surface2);overflow:hidden}
.wj-ach-bar i{display:block;height:100%;width:0;background:var(--accent);border-radius:999px;transition:width .6s ease}
.wj-ach em{font-style:normal;font-size:11px;font-weight:800;color:var(--muted)}
.wj-ach.on em{color:var(--accent)}
.wj-me-acts{display:grid;gap:6px}
.wj-me-act{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;padding:9px 10px;border:1px solid var(--border);border-radius:12px;background:var(--surface);font:inherit;color:var(--text);text-align:left;cursor:pointer}
.wj-me-act:hover{border-color:var(--accent)}
.wj-me-act>span:nth-child(2){display:grid;gap:1px;min-width:0}
.wj-me-act strong{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wj-me-act small{font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wj-me-widget{display:flex;gap:10px;align-items:center}
@media(max-width:899px){.wj-me-grid{grid-template-columns:1fr}.wj-me-hero{grid-template-columns:1fr}.wj-me-ring{justify-content:flex-start}}
@media(max-width:520px){.wj-me-hero{padding:18px}.wj-me-hero-main{flex-direction:column;align-items:flex-start}.wj-me-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.wj-ach-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* ---------- Libros de la Guía ---------- */
.wj-shelf .wj-section-heading{margin-bottom:12px}
.wj-shelf-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:16px 14px;padding:6px 2px 2px}
.wj-book{display:grid;gap:8px;padding:0;border:0;background:transparent;font:inherit;color:var(--text);text-align:left;cursor:pointer}
.wj-book-cover{position:relative;display:grid;place-items:center;aspect-ratio:3/4;border-radius:6px 12px 12px 6px;background:linear-gradient(160deg,color-mix(in srgb,var(--wj-tpv-card-accent,var(--accent)) 92%,#fff) 0%,var(--wj-tpv-card-accent,var(--accent)) 55%,color-mix(in srgb,var(--wj-tpv-card-accent,var(--accent)) 70%,#000) 100%);color:#fff;overflow:hidden;box-shadow:0 10px 22px rgba(15,23,42,.18),inset 0 0 0 1px rgba(255,255,255,.12);transition:transform .2s ease,box-shadow .2s ease}
.wj-book:hover .wj-book-cover{transform:translateY(-4px) rotate(-1deg);box-shadow:0 18px 34px rgba(15,23,42,.24)}
.wj-book-cover.has-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.wj-book-cover.sm{width:96px;aspect-ratio:3/4}
.wj-book-spine{position:absolute;left:0;top:0;bottom:0;width:8px;background:linear-gradient(90deg,rgba(0,0,0,.28),rgba(255,255,255,.08));pointer-events:none}
.wj-book-emoji{font-size:34px;line-height:1;margin-bottom:8px}
.wj-book-emoji svg{width:30px;height:30px}
.wj-book-title{position:absolute;left:14px;right:10px;bottom:12px;font-size:13px;font-weight:800;line-height:1.25;text-shadow:0 1px 2px rgba(0,0,0,.35);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.wj-book-cover>.wj-book-emoji{align-self:start;margin-top:16px}
.wj-book-meta{display:grid;gap:1px;min-width:0}
.wj-book-meta strong{font-size:13px;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wj-book-meta small{color:var(--muted);font-size:12px}
.wj-kb-grid{grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:16px 14px}
.wj-kb-cover-row{display:flex;gap:14px;align-items:flex-start}
.wj-upload-zone.compact{padding:12px}
.wj-kb-move-down svg{transform:rotate(90deg)}
.wj-kb-row-actions [data-kb-move="up"] svg{transform:rotate(-90deg)}
/* ---------- Guía: base a pantalla completa ---------- */
.wj-kb-book{min-height:calc(100dvh - var(--top) - 32px);align-items:stretch}
.wj-kb-tree{position:sticky;top:calc(var(--top) + 12px);height:calc(100dvh - var(--top) - 32px);overflow:auto;align-content:start}
.wj-kb-main{display:flex;flex-direction:column;min-height:calc(100dvh - var(--top) - 32px)}
.wj-kb-main .wj-handbook-article{display:flex;flex-direction:column;flex:1}
.wj-kb-main .wj-handbook-content{flex:1}
.wj-hb-social{margin-top:auto;padding-top:14px}
.wj-hb-social-bar{gap:10px}
.wj-hb-comment-form{position:sticky;bottom:calc(var(--safe,0px) + 8px);z-index:3;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:8px;padding:8px;border:1px solid var(--border);border-radius:16px;background:var(--surface);box-shadow:0 10px 30px rgba(15,23,42,.12)}
.wj-hb-comment-form .wj-textarea{min-height:40px;max-height:120px;border:0;background:var(--surface2);resize:none}
.wj-hb-comment-form .wj-btn{height:40px}
.wj-hb-comments{max-height:none}
.wj-kb-mobilebar{display:none}
@media(max-width:900px){
 .wj-kb-book{min-height:0}
 .wj-kb-tree{display:none}
 .wj-kb-main{min-height:0;padding:14px}
 .wj-kb-mobilebar{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px;align-items:center;margin-bottom:12px;position:sticky;top:0;z-index:2;background:var(--surface);padding-bottom:8px}
 .wj-hb-comment-form{bottom:calc(var(--dock,64px) + var(--safe,0px) + 12px)}
 .wj-shelf-row{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:12px 10px}
}
/* ---------- Buscador global ---------- */
.wj-global-search{position:relative}
.wj-search-pop{position:absolute;left:0;right:0;top:calc(100% + 6px);z-index:70;display:grid;gap:2px;padding:6px;border:1px solid var(--border);border-radius:16px;background:var(--surface);box-shadow:0 18px 44px rgba(15,23,42,.18)}
.wj-search-hit{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;padding:8px 10px;border:0;border-radius:12px;background:transparent;font:inherit;color:var(--text);text-align:left;cursor:pointer}
.wj-search-hit:hover,.wj-search-hit.first{background:var(--surface2)}
.wj-search-hit-icon{width:28px;height:28px;border-radius:8px;display:grid;place-items:center;background:color-mix(in srgb,var(--accent) 12%,var(--surface));color:var(--accent)}
.wj-search-hit>span:nth-child(2){display:grid;min-width:0}
.wj-search-hit strong{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wj-search-hit small{font-size:12px;color:var(--muted)}
.wj-search-hit em{font-style:normal;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}

/* ---------- Pie del menú: perfil + cerrar sesión ---------- */
.wj-side-user{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:6px}
.wj-side-user .wj-user-chip{min-width:0;gap:8px;padding:8px}
.wj-side-user .wj-user-meta{min-width:0}
.wj-side-user .wj-user-meta span{display:block;font-size:11px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wj-side-logout{display:flex;align-items:center;justify-content:center;gap:6px;min-width:0;padding:8px;border:1px solid var(--border);border-radius:16px;background:var(--surface);font:inherit;font-size:13px;font-weight:700;color:var(--danger);cursor:pointer}
.wj-side-logout:hover{background:color-mix(in srgb,var(--danger) 8%,var(--surface));border-color:var(--danger)}
.wj-side-logout span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:1179px){.wj-side-user{grid-template-columns:1fr;gap:4px}.wj-side-logout span{display:none}}

.wj-me-widgets{border:1px solid var(--border);border-radius:16px;background:var(--surface);padding:0}
.wj-me-widgets summary{cursor:pointer;padding:12px 16px;font-weight:700;font-size:13px;display:flex;align-items:center;gap:8px;color:var(--muted)}
.wj-me-widgets-body{padding:0 16px 14px;display:grid;gap:10px}
.wj-me-widgets-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px}
.wj-me-widget{display:flex;gap:10px;align-items:center;padding:8px 10px;border:1px solid var(--border);border-radius:12px}
.wj-me-widget small{display:block;color:var(--muted);font-size:12px}

/* ---------- Gymkana: cajón ---------- */
.wj-gym-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
.wj-gym-ref{display:grid;gap:6px}
.wj-gym-pills{display:flex;gap:8px;flex-wrap:wrap}
.wj-pill-select{position:relative;display:inline-flex;align-items:center;gap:4px;padding:0 10px 0 0;border-radius:999px;background:var(--surface2);color:var(--text);font-size:12px;font-weight:800;text-transform:capitalize}
.wj-pill-select select{appearance:none;-webkit-appearance:none;border:0;background:transparent;font:inherit;font-weight:800;color:inherit;padding:5px 4px 5px 12px;cursor:pointer;text-transform:capitalize}
.wj-pill-select select:focus{outline:none}
.wj-pill-select svg{pointer-events:none;opacity:.7;transform:rotate(90deg)}
.wj-pill-select.status.nuevo{background:color-mix(in srgb,var(--warn) 18%,var(--surface));color:color-mix(in srgb,var(--warn) 70%,#000)}
.wj-pill-select.status.preparando{background:color-mix(in srgb,var(--accent) 14%,var(--surface));color:var(--accent)}
.wj-pill-select.status.confirmado{background:var(--success-weak);color:var(--ok)}
.wj-pill-select.status.realizado{background:var(--surface3);color:var(--muted)}
.wj-pill-select.pay.no_pagado{background:color-mix(in srgb,var(--danger) 12%,var(--surface));color:var(--danger)}
.wj-pill-select.pay.parcial{background:color-mix(in srgb,var(--warn) 18%,var(--surface));color:color-mix(in srgb,var(--warn) 70%,#000)}
.wj-pill-select.pay.pagado{background:var(--success-weak);color:var(--ok)}
.wj-gym-notes{margin-top:10px}
.wj-drawer-foot .wj-actionbar{flex-wrap:wrap;gap:6px}
.wj-drawer-foot .wj-actionbar .wj-btn.primary{margin-left:auto}

/* ---------- Móvil: sin zoom por doble toque ---------- */
html{touch-action:manipulation}
/* ---------- Pie del cajón: rejilla, sin desbordar ---------- */
.wj-drawer-foot .wj-actionbar{display:flex;flex-wrap:wrap;gap:6px}
html[data-layout="mobile"] .wj-drawer-foot .wj-actionbar{display:grid;grid-template-columns:1fr 1fr;gap:6px}
html[data-layout="mobile"] .wj-drawer-foot .wj-actionbar .wj-btn{min-height:40px;font-size:13px;padding:0 8px}
html[data-layout="mobile"] .wj-drawer-foot .wj-actionbar .wj-btn.primary{grid-column:1/-1;order:-1;margin-left:0}
/* ---------- Calendario: modo arriba ---------- */
.wj-calendar-head{margin-bottom:8px}
.wj-calendar-head .wj-calendar-mode{display:inline-flex}
/* ---------- Selector de mes ---------- */
.wj-date.wj-month{width:auto;min-width:170px}
.wj-month-pop{width:260px}
.wj-month-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:4px}
.wj-month-grid .wj-date-cell{text-transform:capitalize}
/* ---------- Botón de menú visible ---------- */
html:not([data-layout="mobile"]) .wj-shell.has-secondary .wj-btn.wj-secondary-toggle{width:auto;padding:0 12px 0 10px;gap:7px;font-size:13px;font-weight:700;color:var(--muted);border:1px solid var(--border)}
html:not([data-layout="mobile"]) .wj-shell.has-secondary .wj-secondary-toggle-label{display:inline}
html:not([data-layout="mobile"]) .wj-btn.wj-secondary-toggle.is-collapsed{color:var(--on-accent,#fff);background:var(--accent);border-color:var(--accent);box-shadow:0 6px 16px color-mix(in srgb,var(--accent) 35%,transparent)}
/* ---------- Historial: rastro de versiones ---------- */
.wj-changelog-older{margin-top:8px;border-top:1px dashed var(--border);padding-top:10px}
.wj-changelog-older summary{cursor:pointer;display:flex;align-items:center;gap:8px;font-size:13px;font-weight:700;color:var(--accent);list-style:none}
.wj-changelog-older summary::-webkit-details-marker{display:none}
.wj-changelog-older summary svg{transform:rotate(90deg);transition:transform .15s}
.wj-changelog-older[open] summary svg{transform:rotate(-90deg)}
.wj-changelog-trace{margin-left:auto;font-size:11px;font-weight:700;color:var(--muted);font-variant-numeric:tabular-nums}
.wj-changelog-older .wj-changelog-list{margin-top:10px}
/* ---------- Contactos ---------- */
.wj-contacts{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr));gap:10px}
.wj-contact{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px;border:1px solid var(--border);border-radius:20px;background:var(--surface);transition:border-color .15s,box-shadow .15s}
.wj-contact:hover{border-color:var(--accent);box-shadow:0 10px 24px rgba(15,23,42,.08)}
.wj-contact-avatar-btn{border:0;background:transparent;padding:0;cursor:pointer;border-radius:50%}
.wj-contact-avatar{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;background:var(--wj-tpv-card-accent,var(--accent));color:#fff;font-weight:800;font-size:16px;overflow:hidden;flex:none}
.wj-contact-avatar img{width:100%;height:100%;object-fit:cover}
.wj-contact-avatar-btn:hover .wj-contact-avatar{box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 30%,transparent)}
.wj-contact-body{display:grid;gap:2px;min-width:0;border:0;background:transparent;padding:0;font:inherit;color:var(--text);text-align:left;cursor:pointer}
.wj-contact-body strong{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wj-contact-body small{color:var(--muted);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wj-contact-tags{display:flex;flex-wrap:wrap;gap:4px 10px;margin-top:2px}
.wj-contact-tags i{font-style:normal;display:inline-flex;align-items:center;gap:3px;font-size:11px;color:var(--muted)}
.wj-contact-cta{width:32px;height:32px;border-radius:12px;display:grid;place-items:center;background:color-mix(in srgb,var(--accent) 12%,var(--surface));color:var(--accent)}
.wj-contact-hero{display:flex;align-items:center;gap:14px;margin-bottom:12px}
.wj-contact-hero .wj-contact-avatar{width:64px;height:64px;font-size:20px}
.wj-contact-hero strong{display:block;font-size:18px}
.wj-contact-hero small{color:var(--muted)}
.wj-contact-actions{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}
.wj-contact-actions .wj-btn{display:inline-flex;align-items:center;gap:6px;text-decoration:none}
.wj-contact-threads{margin-top:16px}
.wj-home-contacts{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:8px;margin-top:10px}
.wj-home-contact{display:grid;justify-items:center;gap:4px;padding:10px 6px;border:1px solid var(--border);border-radius:16px;background:var(--surface);font:inherit;color:var(--text);cursor:pointer;min-width:0}
.wj-home-contact:hover{border-color:var(--accent)}
.wj-home-contact .wj-contact-avatar{width:44px;height:44px;font-size:14px}
.wj-home-contact strong{font-size:12px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wj-home-contact small{font-size:11px;color:var(--muted);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

.wj-changelog-older:not([open])>.wj-changelog-list{display:none}

/* ---------- Stock: retirar más compacto ---------- */
.wj-wd-head{min-height:56px;padding:8px 12px}
.wj-wd-form{gap:8px;padding:10px 12px}
.wj-wd-units{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;max-width:420px}
.wj-wd-unit{padding:7px 6px;font-size:13px;border-radius:12px}
.wj-wd-stepper{grid-template-columns:40px 96px 40px auto;gap:6px}
.wj-wd-step{height:40px;font-size:20px;border-radius:12px}
.wj-wd-count{height:40px;font-size:18px}
.wj-wd-form .wj-input:not(.wj-wd-count){height:38px}
.wj-wd-go{height:42px;font-size:14px;border-radius:12px;max-width:320px}
@media(max-width:520px){.wj-wd-stepper{grid-template-columns:40px minmax(0,1fr) 40px}.wj-wd-go{max-width:none}}
/* ---------- Historial de pedidos ---------- */
.wj-order-hist-list{display:grid;gap:10px}
.wj-order-hist{display:grid;gap:10px;padding:14px 16px;border:1px solid var(--border);border-radius:16px;background:var(--surface);cursor:pointer}
.wj-order-hist:hover{border-color:var(--accent)}
.wj-order-hist-head{display:flex;justify-content:space-between;align-items:center;gap:10px}
.wj-order-hist-head strong{font-size:15px}
.wj-order-hist-head small{display:block;color:var(--muted);font-size:12px}
.wj-stages{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px}
.wj-stage{position:relative;display:grid;gap:4px;font-size:11px;font-weight:700;color:var(--muted);text-align:center}
.wj-stage i{display:block;height:5px;border-radius:999px;background:var(--surface3)}
.wj-stage.done i{background:var(--ok)}
.wj-stage.now i{background:var(--accent)}
.wj-stage.now{color:var(--accent)}
.wj-stage.done{color:var(--ok)}
.wj-order-hist-meta{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:12px;color:var(--muted)}
.wj-order-hist-meta span{display:inline-flex;align-items:center;gap:4px}

/* ---------- Stock: ajuste ---------- */
.wj-wd-adjust{border-top:1px dashed var(--border);padding-top:6px}
.wj-wd-adjust summary{cursor:pointer;display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:700;color:var(--muted)}
.wj-wd-adjust-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr) auto;gap:8px;align-items:end;padding-top:8px}
@media(max-width:520px){.wj-wd-adjust-body{grid-template-columns:1fr}}
/* ---------- Selector de productos del pedido semanal ---------- */
.wj-picker-filters{position:sticky;top:0;z-index:2;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;padding-bottom:10px;margin-bottom:6px;background:var(--surface)}
.wj-picker-filters .wj-search{grid-column:1/-1}
.wj-picker-only{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--muted);white-space:nowrap;grid-column:1/-1}
.wj-catalog-picker-row.picked{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 6%,var(--surface))}
.wj-drawer-foot .wj-catalog-picker-total{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%}

/* ---------- Botón del segundo menú: legible ---------- */
html:not([data-layout="mobile"]) .wj-btn.wj-secondary-toggle.is-collapsed,html:not([data-layout="mobile"]) .wj-btn.wj-secondary-toggle.is-collapsed .wj-secondary-toggle-label{color:#fff}
.wj-secondary-toggle-fam{display:none}

html[data-layout="mobile"].secondary-open::after{content:'';position:fixed;inset:0;background:rgba(6,10,24,.38);z-index:89}

/* ---------- Catálogo: más densidad + vista lista ---------- */
.wj-view-toggle{display:inline-flex;gap:2px;padding:3px;border:1px solid var(--border);border-radius:12px;background:var(--surface)}
.wj-view-toggle button{display:inline-flex;align-items:center;justify-content:center;width:34px;height:32px;border:0;border-radius:8px;background:transparent;color:var(--muted);cursor:pointer;transition:background .15s,color .15s}
.wj-view-toggle button:hover{color:var(--text)}
.wj-view-toggle button.is-on{background:color-mix(in srgb,var(--accent) 12%,var(--surface));color:var(--accent)}
.wj-product-grid{grid-template-columns:repeat(auto-fill,minmax(178px,1fr));gap:10px}
.wj-product{border-radius:12px}
.wj-product-media{aspect-ratio:1/1}
.wj-product-copy{padding:9px 11px 4px;gap:2px}
.wj-product-copy strong{font-size:13px;line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.wj-product-foot{padding:0 11px 9px}
.wj-product-grid.is-list{display:flex;flex-direction:column;gap:6px}
.wj-product-grid.is-list .wj-product{flex-direction:row;align-items:center;gap:12px;padding:6px 12px 6px 6px;border-radius:12px}
.wj-product-grid.is-list .wj-product-media{aspect-ratio:1/1;width:52px;height:52px;flex:0 0 52px;border-radius:8px}
.wj-product-grid.is-list .wj-product-media svg{width:20px;height:20px}
.wj-product-grid.is-list .wj-product-copy{padding:0;flex:1;min-width:0;flex-direction:column}
.wj-product-grid.is-list .wj-product-copy strong{-webkit-line-clamp:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}
.wj-product-grid.is-list .wj-product-foot{padding:0;flex:0 0 auto;gap:12px}
html[data-layout="mobile"] .wj-product-grid:not(.is-list){grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px}
html[data-layout="mobile"] .wj-product-grid.is-list{grid-template-columns:1fr}
html[data-layout="mobile"] .wj-product-grid.is-list .wj-product{padding:6px 10px 6px 6px}

/* ---------- Botón menú móvil: solo icono, hamburguesa animada ---------- */
.wj-burger{display:none}
html[data-layout="mobile"] .wj-topbar .wj-btn.wj-secondary-toggle{width:42px!important;min-width:42px!important;max-width:42px!important;height:42px;padding:0!important;border-radius:12px;position:relative;overflow:visible}
html[data-layout="mobile"] .wj-secondary-toggle>svg,html[data-layout="mobile"] .wj-secondary-toggle-label{display:none!important}
html[data-layout="mobile"] .wj-burger{display:block;position:relative;width:20px;height:14px}
html[data-layout="mobile"] .wj-burger i{position:absolute;left:0;height:2.5px;border-radius:3px;background:currentColor;transition:transform .28s cubic-bezier(.4,0,.2,1),width .28s cubic-bezier(.4,0,.2,1),opacity .2s,top .28s cubic-bezier(.4,0,.2,1)}
html[data-layout="mobile"] .wj-burger i:nth-child(1){top:0;width:20px}
html[data-layout="mobile"] .wj-burger i:nth-child(2){top:5.75px;width:13px}
html[data-layout="mobile"] .wj-burger i:nth-child(3){top:11.5px;width:17px}
html[data-layout="mobile"] .wj-secondary-toggle:active .wj-burger i:nth-child(2){width:20px}
html[data-layout="mobile"].secondary-open .wj-burger i:nth-child(1){top:5.75px;width:20px;transform:rotate(45deg)}
html[data-layout="mobile"].secondary-open .wj-burger i:nth-child(2){opacity:0;transform:translateX(-8px)}
html[data-layout="mobile"].secondary-open .wj-burger i:nth-child(3){top:5.75px;width:20px;transform:rotate(-45deg)}

/* ---------- TPV: filas de reservas / documentos ---------- */
.wj-asset-row.wj-tpv-line{display:flex!important;grid-template-columns:none!important;gap:10px;align-items:center;min-width:0}
.wj-asset-row.wj-tpv-line>div{display:grid;gap:2px;min-width:0;flex:1}
.wj-tpv-grow{flex:1;min-width:0}
.wj-asset-row.wj-tpv-line .wj-row-meta{display:flex;flex-wrap:wrap;gap:4px 10px}
.wj-tpv-link{flex:1;min-width:0;overflow-wrap:anywhere;word-break:break-all;font-size:13px}
/* Ficha de la reserva dentro del TPV: la fila se pulsa como un botón y la ficha es la
   misma que la del panel. Cabecera y acciones quedan pegadas: en el mostrador no se
   puede perder el botón de volver ni el de cobrar por culpa del scroll. */
/* Selector de productos del TPV: una fila por producto, sin estilos en línea. */
.wj-picker-chips{margin:0 0 2px;flex-wrap:wrap}
.wj-picker-list{display:grid;gap:2px}
.wj-picker-row{display:grid;grid-template-columns:20px 36px minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px 12px;border:1px solid transparent;border-radius:12px;cursor:pointer}
.wj-picker-row:hover{background:var(--surface2)}
.wj-picker-row:has(input:checked){background:color-mix(in srgb,var(--accent) 9%,transparent);border-color:color-mix(in srgb,var(--accent) 35%,transparent)}
.wj-picker-thumb{width:36px;height:36px;border-radius:12px;display:grid;place-items:center;background:var(--surface2);color:var(--muted);overflow:hidden}
.wj-picker-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.wj-picker-name{display:grid;min-width:0;line-height:1.25}
.wj-picker-name strong{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wj-picker-name small{color:var(--muted);font-size:12px}
.wj-picker-price{font-variant-numeric:tabular-nums;white-space:nowrap;font-size:14px}
.wj-picker-foot{display:flex;align-items:center;justify-content:space-between;gap:12px}
/* Cestas aparcadas: una fila por cesta, con su importe y sus dos acciones. */
.wj-parked-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--border);border-radius:16px;background:var(--surface)}
.wj-parked-row .wj-picker-name small{white-space:normal}
.wj-parked-actions{display:flex;gap:8px;align-items:center}
.wj-parked-list{gap:8px}
/* Cobro parcial: la señal se escribe donde se cobra, no en otra pantalla. */
.wj-tpv-deposit-check{margin:14px 2px 0}
.wj-tpv-deposit{margin:10px 0 0;display:grid;gap:6px}
.wj-cust-row{grid-template-columns:36px minmax(0,1fr) auto;width:100%;text-align:left;background:transparent;font:inherit;color:inherit}
.wj-cust-row .wj-picker-thumb{font-size:12px;font-weight:800;color:var(--accent)}
.wj-cust-pick .wj-picker-list{min-height:60px}
/* Pase terminado: apagado, pero pulsable para poder explicar por qué no se vende. */
.wj-tpv-slot.is-past{opacity:.45;filter:grayscale(1)}
/* Pase en curso: barra que avanza sola (en SVG, porque la CSP no deja anchos en línea). */
.wj-tpv-slot-bar{display:block;width:100%;height:4px;margin-top:7px;overflow:visible}
.wj-tpv-slot-bar .bg{fill:color-mix(in srgb,currentColor 18%,transparent)}
.wj-tpv-slot-bar .fg{fill:currentColor;transition:width .9s linear}
.wj-tpv-slot.is-now{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 35%,transparent)}
.wj-tpv-slots{scroll-behavior:smooth}
.wj-tpv-slot.is-past strong,.wj-tpv-slot.is-past small{color:var(--muted)}
.wj-tpv-book-row{cursor:pointer}
.wj-tpv-book-row:hover{background:color-mix(in srgb,var(--accent) 7%,transparent)}
.wj-tpv-book-row:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.wj-tpv-book{display:grid;gap:10px}
.wj-tpv-book-head{position:sticky;top:0;z-index:4;display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:var(--bg);padding:10px 2px;margin:-4px -2px 0}
.wj-tpv-book-title{display:grid;gap:1px;min-width:0;flex:1}
.wj-tpv-book-title strong{font-size:18px;letter-spacing:-.01em}
.wj-tpv-book-title span{color:var(--muted);font-size:13px}
.wj-tpv-book-body{display:grid;min-width:0}
.wj-tpv-book-body .wj-bk-section{margin:0}
.wj-tpv-book-actions{position:sticky;bottom:0;z-index:4;display:flex;gap:8px;flex-wrap:wrap;background:var(--bg);border-top:1px solid var(--border);padding:10px 2px calc(6px + var(--safe));margin:0 -2px}
.wj-tpv-book-actions .wj-btn{flex:1 1 150px;min-height:48px;justify-content:center}
.wj-wb-hours{font-style:normal;font-weight:600;color:var(--accent);margin-left:6px;text-transform:none;letter-spacing:0}

/* ---------- TPV: tema / idioma / bloqueo siempre a la vista ---------- */
/* Tema, idioma y bloqueo: un disco partido en tres porciones. La que se apunta crece y se
   separa del centro; las otras se encogen. Nada apretado y cada porción es un blanco grande. */
.wj-tpv-pizza{position:relative;width:min(104px,100% - 16px);aspect-ratio:1;margin:10px auto 14px}
.wj-tpv-pizza-disc{width:100%;height:100%;display:block;overflow:visible}
.wj-tpv-pizza-disc .sl{fill:color-mix(in srgb,var(--surface) 13%,transparent);stroke:color-mix(in srgb,var(--surface) 26%,transparent);stroke-width:1.1;transform-box:view-box;transform-origin:50px 50px;transition:transform .2s cubic-bezier(.22,1,.36,1),fill .2s ease,opacity .2s ease}
.wj-tpv-pizza-hit{position:absolute;width:38px;height:38px;transform:translate(-50%,-50%);display:grid;place-items:center;border:0;background:transparent;color:color-mix(in srgb,var(--surface) 82%,var(--text));cursor:pointer;font:inherit;font-size:12px;font-weight:800;z-index:2;transition:transform .2s cubic-bezier(.22,1,.36,1),color .2s ease}
.wj-tpv-pizza-hit b{font-size:13px;font-weight:900;letter-spacing:.02em}
.hit-theme{left:22%;top:50%}
.hit-lock{left:78%;top:50%}
.wj-tpv-pizza-tag{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-size:11px;font-weight:800;letter-spacing:.02em;color:color-mix(in srgb,var(--surface) 70%,var(--text));opacity:0;transition:opacity .18s ease;pointer-events:none;text-align:center;max-width:44px;line-height:1.1}
/* Primero encogen todas, luego crece la apuntada: el orden importa, misma especificidad. */
.wj-tpv-pizza:has(.wj-tpv-pizza-hit:hover) .sl,.wj-tpv-pizza:has(.wj-tpv-pizza-hit:focus-visible) .sl{transform:scale(.93);opacity:.72}
.wj-tpv-pizza:has(.hit-theme:hover) .sl-theme,.wj-tpv-pizza:has(.hit-theme:focus-visible) .sl-theme{fill:color-mix(in srgb,var(--surface) 26%,transparent);transform:scale(1.07) translate(-3px,0)}
.wj-tpv-pizza:has(.hit-lang:hover) .sl-lang,.wj-tpv-pizza:has(.hit-lang:focus-visible) .sl-lang{fill:color-mix(in srgb,var(--surface) 26%,transparent);transform:scale(1.07) translate(2.6px,-1.5px)}
.wj-tpv-pizza:has(.hit-lock:hover) .sl-lock,.wj-tpv-pizza:has(.hit-lock:focus-visible) .sl-lock{fill:color-mix(in srgb,var(--danger) 30%,transparent);stroke:color-mix(in srgb,var(--danger) 55%,transparent);transform:scale(1.07) translate(3px,0)}
.wj-tpv-pizza:has(.hit-theme:hover) .sl-theme,.wj-tpv-pizza:has(.hit-lang:hover) .sl-lang,.wj-tpv-pizza:has(.hit-lock:hover) .sl-lock,.wj-tpv-pizza:has(.hit-theme:focus-visible) .sl-theme,.wj-tpv-pizza:has(.hit-lang:focus-visible) .sl-lang,.wj-tpv-pizza:has(.hit-lock:focus-visible) .sl-lock{opacity:1}
.wj-tpv-pizza-hit:hover,.wj-tpv-pizza-hit:focus-visible{color:var(--surface);transform:translate(-50%,-50%) scale(1.16);outline:0}
.hit-lock:hover,.hit-lock:focus-visible{color:#fff}
.wj-tpv-pizza:has(.hit-theme:hover) .tag-theme,.wj-tpv-pizza:has(.hit-lang:hover) .tag-lang,.wj-tpv-pizza:has(.hit-lock:hover) .tag-lock{opacity:1}
/* Botón de icono que se abre al pasar por encima: ocupa poco y dice qué es cuando hace falta. */
/* El contenido se alinea a la izquierda: con  (el del botón normal)
   el icono quedaba fuera del recuadro al estar cerrado, y solo se veía el número. */
.wj-tpv-iconbtn{display:inline-flex;align-items:center;justify-content:flex-start;gap:0;max-width:46px;min-height:44px;padding:0 11px;overflow:hidden;white-space:nowrap;position:relative;transition:max-width .22s ease,gap .22s ease}
.wj-tpv-iconbtn>.wj-lottie,.wj-tpv-iconbtn>svg{flex:0 0 auto}
.wj-tpv-iconbtn-label{opacity:0;transform:translateX(-4px);transition:opacity .18s ease,transform .18s ease}
.wj-tpv-iconbtn:hover,.wj-tpv-iconbtn:focus-visible{max-width:260px;gap:9px}
.wj-tpv-iconbtn:hover .wj-tpv-iconbtn-label,.wj-tpv-iconbtn:focus-visible .wj-tpv-iconbtn-label{opacity:1;transform:none}
.wj-tpv-iconbtn[disabled]{opacity:.45}
.wj-tpv-iconbtn-count{position:absolute;top:4px;right:4px;min-width:17px;height:17px;padding:0 4px;border-radius:99px;background:var(--danger);color:#fff;font-size:11px;font-weight:800;display:grid;place-items:center;line-height:1}

.wj-tpv-quick .wj-tpv-lock{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 45%,transparent)}
.wj-tpv-quick .wj-tpv-lock:hover{background:color-mix(in srgb,var(--danger) 22%,transparent);color:#fff}

/* ---------- Pie del menú: salir (icono) + usuario ---------- */
.wj-side-user{grid-template-columns:auto minmax(0,1fr);gap:6px}
.wj-side-logout{width:40px;height:40px;padding:0;border-radius:12px;flex:none}
.wj-side-logout span{display:none}
.wj-side-user .wj-user-chip{padding:5px 8px 5px 5px;min-height:40px}
.wj-side-user .wj-user-meta span{color:var(--text);font-weight:700;font-size:12px}
@media(max-width:1179px){.wj-side-user{grid-template-columns:1fr}.wj-side-logout{width:100%}}

/* ---------- Documentos en cajones: acciones en su propia fila ---------- */
.wj-card.wj-doc-row{grid-template-columns:auto minmax(0,1fr)!important;gap:10px 12px}
.wj-doc-icon{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:color-mix(in srgb,var(--accent) 10%,var(--surface));color:var(--accent);font-size:16px}
.wj-card.wj-doc-row .wj-doc-actions{grid-column:1/-1;justify-content:flex-start;gap:6px}
.wj-doc-actions .wj-btn{padding:6px 10px}

/* ---------- Contactos: tarjetas con más presencia ---------- */
.wj-contacts{grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr));gap:14px}
.wj-contact{padding:16px;gap:14px;border-radius:20px}
.wj-contact-avatar{width:64px;height:64px;font-size:20px}
.wj-contact-body{gap:4px}
.wj-contact-body strong{font-size:16px}
.wj-contact-body small{font-size:13px}
.wj-contact-tags i{font-size:12px}
.wj-contact-cta{width:40px;height:40px;border-radius:12px}

/* ---------- Login móvil: formas flotando ---------- */
.wj-login-float{display:none}
@media(max-width:820px){
 .wj-login-panel{overflow:hidden}
 .wj-login-float{display:block;position:absolute;inset:0;pointer-events:none;z-index:0}
 .wj-login-float i{position:absolute;border-radius:50%;background:radial-gradient(circle at 30% 30%,color-mix(in srgb,var(--accent) 55%,#fff),color-mix(in srgb,var(--accent) 22%,transparent));opacity:.35;filter:blur(1px);animation:wj-float 14s ease-in-out infinite}
 .wj-login-float i:nth-child(1){width:180px;height:180px;left:-60px;top:-40px;animation-duration:16s}
 .wj-login-float i:nth-child(2){width:90px;height:90px;right:-20px;top:12%;animation-duration:12s;animation-delay:-3s}
 .wj-login-float i:nth-child(3){width:56px;height:56px;left:14%;top:38%;animation-duration:10s;animation-delay:-6s;opacity:.28}
 .wj-login-float i:nth-child(4){width:140px;height:140px;right:-40px;bottom:18%;animation-duration:18s;animation-delay:-9s}
 .wj-login-float i:nth-child(5){width:40px;height:40px;left:8%;bottom:14%;animation-duration:9s;animation-delay:-2s;opacity:.3}
 .wj-login-float i:nth-child(6){width:24px;height:24px;left:60%;top:20%;animation-duration:8s;animation-delay:-5s;opacity:.45}
 .wj-login-panel>*:not(.wj-login-float){position:relative;z-index:1}
}
@keyframes wj-float{0%,100%{transform:translate3d(0,0,0) scale(1)}33%{transform:translate3d(14px,-22px,0) scale(1.06)}66%{transform:translate3d(-12px,12px,0) scale(.96)}}
@media(prefers-reduced-motion:reduce){.wj-login-float i{animation:none}}

/* ---------- Campana: buzón desplegable ---------- */
.wj-notif-wrap{position:relative;display:inline-flex}
.wj-notif-pop{position:absolute;right:0;top:calc(100% + 8px);width:min(380px,calc(100vw - 24px));max-height:min(70vh,560px);display:flex;flex-direction:column;z-index:80;border:1px solid var(--border);border-radius:16px;background:var(--surface);box-shadow:0 18px 44px rgba(15,23,42,.18);overflow:hidden;animation:wj-notif-in .16s ease}
@keyframes wj-notif-in{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.wj-notif-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 14px;border-bottom:1px solid var(--border)}
.wj-notif-head strong{font-size:14px}
.wj-notif-list{overflow:auto;flex:1;min-height:0}
.wj-notif-item{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;width:100%;padding:11px 14px;border:0;border-bottom:1px solid var(--hairline,var(--border));background:transparent;font:inherit;color:var(--text);text-align:left;cursor:pointer}
.wj-notif-item:hover{background:color-mix(in srgb,var(--accent) 7%,var(--surface))}
.wj-notif-item:last-child{border-bottom:0}
.wj-notif-dot{width:8px;height:8px;border-radius:50%;background:var(--danger);flex:none}
.wj-notif-copy{display:grid;gap:2px;min-width:0}
.wj-notif-copy strong{font-size:13px;line-height:1.3}
.wj-notif-copy small{color:var(--muted);font-size:12px;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.wj-notif-copy em{font-style:normal;font-size:11px;color:var(--muted)}
.wj-notif-item>svg{color:var(--muted)}
.wj-notif-empty{display:grid;justify-items:center;gap:6px;padding:28px 14px;color:var(--muted);font-size:13px}
.wj-notif-empty svg{color:var(--ok)}
.wj-notif-foot{padding:10px 14px;border-top:1px solid var(--border);display:flex;justify-content:flex-end}
.wj-notif-loading{padding:14px}
html[data-layout="mobile"] .wj-notif-pop{position:fixed;left:12px;right:12px;top:64px;width:auto}

/* ---------- Nunca un input de mes nativo a la vista ---------- */
.wj-date input[type="month"]{position:absolute;inset:0;width:100%;height:100%;opacity:0;pointer-events:none}

/* ---------- Selector de periodo ---------- */
.wj-range-pop{width:auto;max-width:calc(100vw - 16px);padding:0;display:flex;overflow:hidden}
.wj-range-presets{display:flex;flex-direction:column;gap:2px;padding:10px 8px;border-right:1px solid var(--border);min-width:150px;background:var(--surface2)}
.wj-range-presets button{border:0;background:transparent;text-align:left;padding:8px 10px;border-radius:8px;font:inherit;font-size:13px;font-weight:600;color:var(--text);cursor:pointer}
.wj-range-presets button:hover{background:color-mix(in srgb,var(--accent) 10%,var(--surface))}
.wj-range-body{display:flex;flex-direction:column}
.wj-range-months{display:flex;gap:0}
.wj-range-month{padding:12px 12px 6px;width:296px}
.wj-range-month+.wj-range-month{border-left:1px solid var(--border)}
.wj-range-month .wj-date-title{font-size:14px;font-weight:800;text-transform:capitalize}
.wj-range-month .wj-date-cell.pad{color:var(--muted);opacity:.45;display:grid;place-items:center;font-weight:500}
.wj-range-month .wj-date-cell.in{background:color-mix(in srgb,var(--accent) 12%,var(--surface));border-radius:0}
.wj-range-month .wj-date-cell.sel{background:var(--accent);color:#fff}
.wj-range-month .wj-date-cell.edge-l{border-radius:10px 0 0 10px}
.wj-range-month .wj-date-cell.edge-r{border-radius:0 10px 10px 0}
.wj-range-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border-top:1px solid var(--border);flex-wrap:wrap}
.wj-range-values{display:flex;align-items:center;gap:8px}
.wj-range-value{padding:8px 12px;border:1px solid var(--border);border-radius:12px;font-size:13px;font-weight:600;min-width:120px;font-variant-numeric:tabular-nums}
.wj-range-value.empty{color:var(--muted)}
.wj-range-values i{color:var(--muted);font-style:normal}
.wj-range-actions{display:flex;gap:6px;margin-left:auto}
@media(max-width:760px){.wj-range-pop{flex-direction:column;left:8px!important;right:8px;width:auto}.wj-range-presets{flex-direction:row;flex-wrap:wrap;border-right:0;border-bottom:1px solid var(--border);min-width:0}.wj-range-month{width:100%}.wj-range-value{min-width:0;flex:1}}
.wj-calendar-period{display:inline-flex;align-items:center;gap:8px;font-weight:700;text-transform:capitalize;white-space:nowrap}
.wj-calendar-period>svg:last-child{transform:rotate(90deg);color:var(--muted)}

/* ---------- Pulseras: orden arrastrable ---------- */
.wj-wb-row{display:grid;grid-template-columns:auto auto minmax(0,1fr) auto;align-items:center;gap:8px}
.wj-wb-grip{display:grid;place-items:center;width:28px;height:36px;border-radius:8px;color:var(--muted);cursor:grab;user-select:none;touch-action:none}
.wj-wb-grip:hover{background:var(--surface2);color:var(--text)}
#wb-colors.is-locked .wj-wb-grip{cursor:not-allowed;opacity:.45}
.wj-wb-row.dragging{opacity:.5}
/* Pulseras especiales: color, nombre, productos y quitar. En móvil los productos bajan a su propia línea. */
.wj-wb-row.wj-wb-special{grid-template-columns:auto minmax(0,1fr) minmax(0,1.2fr) auto}
.wj-wb-products{justify-content:flex-start;min-width:0}
.wj-wb-special-legend{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:12px 0}
.wj-wb-special-legend>small{width:100%;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.04em;font-size:11px}
.wj-wb-products [data-wb-products-label]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:760px){.wj-wb-row.wj-wb-special{grid-template-columns:auto minmax(0,1fr) auto}.wj-wb-row.wj-wb-special .wj-wb-products{grid-column:1/-1;grid-row:2}}

/* ---------- Pedidos · Gestión: tarjetas que abren un panel ---------- */
button.wj-managed-order{width:100%;text-align:left;font:inherit;color:var(--text);cursor:pointer;transition:border-color .15s,box-shadow .15s}
button.wj-managed-order:hover{border-color:var(--accent);box-shadow:0 8px 20px rgba(15,23,42,.08)}
.wj-managed-order .wj-section-title>svg{color:var(--muted);transform:rotate(0);flex:none}
.wj-managed-meta{margin-bottom:12px}
.wj-week-pick{display:flex;align-items:center;gap:6px}
.wj-catalog-note{margin:-4px 0 10px}
.wj-product-media.sm{width:40px;height:40px;aspect-ratio:1/1;border-radius:8px;flex:none}
.wj-product-media.sm img{width:100%;height:100%;object-fit:cover}
/* ---------- Calendario en móvil: navegación arriba, filtros y vistas en filas propias ---------- */
@media(max-width:699px){
 .wj-calendar-toolbar{gap:8px}
 .wj-calendar-nav{order:1;width:100%;flex:none;display:flex}
 .wj-calendar-nav .wj-calendar-period{flex:1;min-width:0;justify-content:center;overflow:hidden}
 .wj-calendar-nav .wj-calendar-period span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
 .wj-cal-product-filter,#calendar-filter-toggle{order:2;flex:1;min-width:0}
 .wj-cal-product-filter summary,#calendar-filter-toggle{width:100%;justify-content:center;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
 .wj-cal-product-filter-menu{left:0;right:auto;max-width:calc(100vw - 32px)}
 .wj-calendar-toolbar .wj-tabs{order:3}
}

/* ---------- Aforo: recursos ---------- */
.wj-res-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
.wj-res-card{display:grid;gap:10px}
.wj-res-head{display:flex;align-items:center;gap:12px}
.wj-res-head strong{display:block;font-size:15px}.wj-res-head small{color:var(--muted);font-size:12px}
.wj-res-kind{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:color-mix(in srgb,var(--accent) 12%,var(--surface));color:var(--accent);flex:none}
.wj-res-kind.exclusive{background:color-mix(in srgb,var(--warn) 18%,var(--surface));color:color-mix(in srgb,var(--warn) 70%,#000)}
/* editor de tramos */
.wj-res-editor{display:grid;gap:10px;margin-top:8px}
.wj-res-row{display:grid;gap:6px}
.wj-res-row-head{display:flex;gap:6px;align-items:center}
.wj-res-row-head .wj-select.sm{min-height:34px;padding:4px 28px 4px 10px;font-size:13px;width:auto}
.wj-res-track{position:relative;height:34px;border-radius:8px;background:repeating-linear-gradient(90deg,var(--surface2) 0,var(--surface2) 1px,transparent 1px,transparent 12.5%),var(--surface-sunken,var(--surface2));border:1px solid var(--border);overflow:hidden;touch-action:none}
.wj-res-bar{position:absolute;top:3px;bottom:3px;border-radius:7px;display:flex;align-items:center;justify-content:space-between;background:var(--accent);color:#fff;font-size:11px;font-weight:700;overflow:hidden;white-space:nowrap}
.wj-res-bar i{font-style:normal;padding:0 8px;overflow:hidden;text-overflow:ellipsis;flex:1;text-align:center}
.wj-res-bar.fixed{cursor:grab}.wj-res-bar.fixed.dragging{cursor:grabbing;opacity:.85}
.wj-res-bar b{width:10px;align-self:stretch;cursor:ew-resize;background:rgba(255,255,255,.28);flex:none}
.wj-res-bar.fill{background:color-mix(in srgb,var(--accent) 30%,var(--surface));color:var(--text);border:1px dashed color-mix(in srgb,var(--accent) 60%,transparent)}
.wj-res-axis{display:flex;justify-content:space-between;font-size:11px;color:var(--muted)}

/* ---------- Crear reserva ---------- */
.wj-bc-layout{display:grid;grid-template-columns:minmax(240px,290px) minmax(0,1fr);gap:16px;align-items:start}
.wj-bc-left{display:grid;gap:12px}
.wj-bc-cal{padding:10px}
.wj-bc-cal .wj-date-cell.past{color:var(--muted);opacity:.55}
.wj-bc-cal .wj-date-cell.sel{background:var(--accent);color:#fff}
.wj-bc-products h3{margin:0 0 8px;font-size:14px}
.wj-bc-product{display:flex;align-items:center;gap:10px;width:100%;padding:8px;border:1px solid var(--border);border-radius:12px;background:var(--surface);font:inherit;color:var(--text);text-align:left;cursor:pointer}
.wj-bc-product:hover{border-color:var(--accent)}
.wj-bc-product.sel{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,var(--surface))}
.wj-bc-product-media{width:38px;height:38px;border-radius:8px;overflow:hidden;display:grid;place-items:center;background:var(--surface2);color:var(--muted);flex:none}
.wj-bc-product-media img{width:100%;height:100%;object-fit:cover}
.wj-bc-product-copy{display:grid;min-width:0}.wj-bc-product-copy strong{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wj-bc-product-copy small{color:var(--muted);font-size:12px}
.wj-bc-slots{min-height:320px}
.wj-bc-empty{display:grid;justify-items:center;gap:8px;padding:60px 20px;color:var(--muted);text-align:center;max-width:360px;margin:0 auto}
.wj-bc-form{position:sticky;top:16px}
.wj-occ-legend{display:flex;flex-wrap:wrap;gap:6px 14px;margin:6px 0 12px;font-size:12px;color:var(--muted)}
.wj-occ-legend span{display:inline-flex;align-items:center;gap:6px}.wj-occ-legend i{width:12px;height:12px;border-radius:4px;display:inline-block}
.lv-free{--lv:var(--muted)}.lv-low{--lv:var(--info,color-mix(in srgb,var(--accent) 55%,blue))}.lv-mid{--lv:var(--ok)}.lv-high{--lv:var(--warn)}.lv-full{--lv:var(--danger)}
.wj-occ-legend i{background:var(--lv)}
.wj-slot-list{display:grid;gap:6px}
.wj-slot-bar{position:relative;display:grid;grid-template-columns:130px minmax(0,1fr) auto;align-items:center;gap:12px;min-height:44px;padding:0 14px;border:1px solid var(--border);border-radius:12px;background:var(--surface);font:inherit;color:var(--text);text-align:left;cursor:pointer;overflow:hidden;transition:border-color .15s,transform .15s}
.wj-slot-bar:hover{border-color:var(--lv);transform:translateX(2px)}
.wj-slot-bar.sel{border-color:var(--lv);box-shadow:0 0 0 2px color-mix(in srgb,var(--lv) 40%,transparent)}
.wj-slot-fill{position:absolute;left:0;top:0;bottom:0;background:color-mix(in srgb,var(--lv) 22%,transparent);pointer-events:none;transition:width .3s}
.wj-slot-bar.lv-free .wj-slot-fill{width:0!important}
.wj-slot-bar::before{content:'';position:absolute;left:0;top:0;bottom:0;width:5px;background:var(--lv)}
.wj-slot-time{position:relative;font-weight:800;font-variant-numeric:tabular-nums}
.wj-slot-meta{position:relative;font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wj-slot-level{position:relative;font-size:11px;font-weight:800;color:var(--lv);white-space:nowrap}
@media(max-width:699px){.wj-bc-layout{grid-template-columns:1fr}.wj-slot-bar{grid-template-columns:1fr auto}.wj-slot-meta{grid-column:1/-1}}

/* ---------- Vista previa de correo con el mismo diseño que el HTML real ---------- */
.wj-mailpv{background:rgb(238,241,243);padding:18px 12px;border-radius:16px}
.wj-mailpv-card{max-width:520px;margin:0 auto;background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 8px 30px rgba(15,23,42,.10);color:rgb(18,23,26);font-family:Inter,Arial,sans-serif}
.wj-mailpv-head{background:var(--accent);padding:22px 26px;display:flex;align-items:center;gap:12px;color:#fff}
.wj-mailpv-head img{height:32px;width:auto;max-width:180px}
.wj-mailpv-head strong{font-size:18px;letter-spacing:-.01em}
.wj-mailpv-body{padding:26px 26px 8px}
.wj-mailpv-body h2{margin:0 0 14px;font-size:20px;line-height:1.25;letter-spacing:-.02em}
.wj-mailpv-body p{margin:0 0 12px;font-size:14px;line-height:1.6;color:rgb(45,54,60)}
.wj-mailpv-kv{display:grid;grid-template-columns:auto minmax(0,1fr);gap:6px 14px;margin:0 0 14px;padding:12px 14px;border-radius:12px;background:rgb(244,246,247);font-size:13px}
.wj-mailpv-kv span{color:rgb(90,101,110)}.wj-mailpv-kv strong{font-weight:700}
.wj-mailpv-cta{display:inline-block;margin:4px 0 16px;padding:11px 18px;border-radius:12px;background:var(--accent);color:#fff;font-weight:800;font-size:14px}
.wj-mailpv-foot{padding:16px 26px 22px;border-top:1px solid rgb(230,234,236);font-size:12px;color:rgb(122,133,140);line-height:1.5}

/* ---------- Horarios: panel de producto y editor (estilo Roller) ---------- */
.wj-sched-day.tinted{color:#fff;font-weight:700}
.wj-sched-panel-head{display:grid;gap:6px;padding-bottom:12px;border-bottom:1px solid var(--border)}
.wj-sched-panel-head h3{margin:0;font-size:18px;letter-spacing:-.01em}
.wj-sched-back{display:inline-flex;align-items:center;gap:4px;border:0;background:transparent;padding:0;font:inherit;font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);cursor:pointer;width:fit-content}
.wj-sched-back svg{transform:rotate(180deg)}
.wj-sched-back:hover{color:var(--accent)}
.wj-sched-list{display:grid;gap:2px}
.wj-sched-item{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;width:100%;padding:11px 6px;border:0;border-bottom:1px solid var(--hairline,var(--border));background:transparent;font:inherit;color:var(--text);text-align:left;cursor:pointer;border-radius:8px}
.wj-sched-item:hover{background:var(--surface2)}
.wj-sched-item.off{opacity:.55}
.wj-sched-item-copy{display:grid;gap:2px;min-width:0}
.wj-sched-item-copy strong{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wj-sched-item-copy small{color:var(--muted);font-size:12px}
.wj-sched-item-time{font-size:13px;font-weight:700;color:var(--muted);white-space:nowrap}
.wj-sched-dot{width:10px;height:10px;border-radius:50%;background:var(--accent);flex:none;display:inline-block}
.wj-sched-dot.lg{width:14px;height:14px}
.wj-sched-panel-actions{display:flex;gap:8px;justify-content:flex-end;padding-top:12px;border-top:1px solid var(--border);margin-top:auto}
.wj-sched-panel-actions .wj-btn{flex:1;justify-content:center}
.wj-sched-editor{display:grid;gap:14px;position:relative}
.wj-sched-title-row{display:flex;align-items:center;gap:8px}
.wj-sched-title{flex:1;min-width:0;border:0;border-bottom:1px solid transparent;background:transparent;font:inherit;font-size:20px;font-weight:800;letter-spacing:-.01em;color:var(--text);padding:2px 0}
.wj-sched-title:focus{outline:none;border-bottom-color:var(--accent)}
.wj-sched-desc{border:0;background:transparent;font:inherit;font-size:13px;color:var(--muted);padding:0;font-style:italic}
.wj-sched-desc:focus{outline:none;color:var(--text);font-style:normal}
.wj-sched-menu{position:absolute;right:0;top:64px;z-index:5;display:grid;min-width:160px;padding:6px;border:1px solid var(--border);border-radius:12px;background:var(--surface);box-shadow:0 12px 32px rgba(15,23,42,.16)}
.wj-sched-menu button{border:0;background:transparent;text-align:left;padding:8px 10px;border-radius:8px;font:inherit;font-size:13px;font-weight:600;color:var(--text);cursor:pointer}
.wj-sched-menu button:hover{background:var(--surface2)}
.wj-sched-menu button.danger{color:var(--danger)}
.wj-sched-two{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.wj-sched-two .wj-field{display:grid;gap:6px}
.wj-sched-interval{display:flex;gap:6px}
.wj-sched-interval .wj-select,.wj-sched-interval .wj-input{min-width:0;flex:1}
.wj-sched-daychips{display:flex;flex-wrap:wrap;gap:6px}
.wj-sched-daychip{min-width:44px;padding:8px 10px;border:1px solid var(--border);border-radius:12px;background:var(--surface);font:inherit;font-size:13px;font-weight:700;color:var(--muted);cursor:pointer}
.wj-sched-daychip.on{background:var(--accent);border-color:var(--accent);color:#fff}
.wj-sched-excl{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:8px;border:1px solid var(--border);border-radius:12px;min-height:46px}
.wj-sched-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 8px 5px 10px;border-radius:999px;background:var(--surface2);font-size:12px;font-weight:700}
.wj-sched-chip button{border:0;background:transparent;padding:0;display:grid;place-items:center;color:var(--muted);cursor:pointer}
.wj-sched-chip button:hover{color:var(--danger)}
.wj-sched-excl-add{flex:1;min-width:150px}
.wj-sched-excl-add .wj-date-btn{min-height:34px}
@media(max-width:699px){.wj-sched-two{grid-template-columns:1fr}}

/* ---------- Ficha de reserva ---------- */
.wj-text-ok{color:var(--ok)}.wj-text-warn{color:color-mix(in srgb,var(--warn) 75%,#000)}.wj-text-danger{color:var(--danger)}
.wj-bk-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:14px}
.wj-bk-num{font-size:22px;font-weight:900;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.wj-bk-section{padding:14px 0;border-top:1px solid var(--border)}
.wj-bk-section h3{margin:0 0 4px;font-size:14px}
.wj-bk-customer-row{display:flex;align-items:center;gap:12px}
.wj-bk-customer-copy{flex:1;min-width:0;display:grid;gap:2px}
.wj-bk-customer-copy strong{font-size:15px}.wj-bk-customer-copy small{color:var(--muted);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wj-bk-people{display:grid;gap:6px;margin-top:10px}
.wj-bk-person{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--border);border-radius:12px;background:var(--surface);width:100%;text-align:left;font:inherit;color:var(--text)}
button.wj-bk-person{cursor:pointer}button.wj-bk-person:hover{border-color:var(--accent)}
.wj-bk-person.ok{border-color:color-mix(in srgb,var(--ok) 45%,var(--border))}
.wj-bk-person.bad{border-color:color-mix(in srgb,var(--danger) 45%,var(--border))}
.wj-bk-person.empty{border-style:dashed;color:var(--muted);background:transparent}
.wj-bk-check{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:var(--surface2);color:var(--muted);flex:none}
.wj-bk-person.ok .wj-bk-check{background:var(--success-weak);color:var(--ok)}
.wj-bk-person.bad .wj-bk-check{background:color-mix(in srgb,var(--danger) 14%,var(--surface));color:var(--danger)}
.wj-bk-person-copy{flex:1;min-width:0;display:grid;gap:1px}
.wj-bk-person-copy strong{font-size:14px}.wj-bk-person-copy small{color:var(--muted);font-size:12px}
.wj-bk-person-copy small b{color:var(--danger);font-weight:700}
.wj-bk-person-copy a{color:var(--accent);font-weight:700}
.wj-bk-money{display:grid;grid-template-columns:repeat(auto-fit,minmax(90px,1fr));gap:8px;margin-top:8px}
.wj-bk-money>div{display:grid;gap:2px;padding:10px 12px;border-radius:12px;background:var(--surface2)}
.wj-bk-money span{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.wj-bk-money strong{font-size:16px;font-variant-numeric:tabular-nums}
.wj-bk-refunds{display:grid;gap:4px;margin-top:10px}
.wj-bk-refund{display:flex;justify-content:space-between;gap:10px;font-size:13px;color:var(--muted)}
.wj-bk-refund strong{color:var(--danger);font-variant-numeric:tabular-nums}
.wj-bk-refund-lines{display:grid;gap:6px}
.wj-bk-refund-lines .wj-check{display:flex;align-items:center;gap:8px;padding:8px 10px;border:1px solid var(--border);border-radius:12px}
.wj-bk-refund-lines .wj-check span{flex:1}.wj-bk-refund-lines .wj-check em{font-style:normal;color:var(--muted);font-variant-numeric:tabular-nums}
.wj-bk-refund-total{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;border-radius:12px;background:var(--surface2);font-weight:700}
.wj-bk-refund-total strong{font-size:18px;font-variant-numeric:tabular-nums}

/* Nombre, precio, minutos y quitar. Los minutos son opcionales, por eso van estrechos. */
.wj-price-row{display:grid;grid-template-columns:minmax(0,1fr) 110px 86px auto;gap:8px;align-items:center}
@media(max-width:560px){.wj-price-row{grid-template-columns:minmax(0,1fr) 1fr auto;grid-auto-rows:auto}.wj-price-row [data-price-name]{grid-column:1/-1}}
.wj-sched-swatches{display:flex;gap:6px;flex-wrap:wrap}
.wj-sched-swatch{width:26px;height:26px;border-radius:50%;border:2px solid transparent;cursor:pointer;padding:0}
.wj-sched-swatch.on{border-color:var(--text);box-shadow:0 0 0 2px var(--surface) inset}
.wj-sched-item-time{display:grid;justify-items:end;gap:1px}.wj-sched-item-time small{font-weight:600;font-size:11px;color:var(--muted)}

/* Horarios: vista previa del borrador y aviso de cambios sin guardar */
.wj-sched-preview-pill{display:inline-flex;align-items:center;gap:6px;margin-left:auto;padding:5px 10px;border-radius:999px;background:var(--warn-soft,rgba(224,164,0,.14));color:var(--warn-text,rgb(150,100,0));font-size:12px;font-weight:700}
.wj-leave-actions{flex-wrap:wrap;justify-content:flex-end}
/* Solicitudes: editor por secciones, reembolso y adjuntos */
.wj-req-form{display:grid;gap:14px}
.wj-req-section{border:1px solid var(--hairline,var(--border));border-radius:16px;padding:14px;background:var(--surface-raised,var(--surface));display:grid;gap:12px}
.wj-req-section-head h3{margin:0;font-size:13px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.wj-req-section-head p{margin:2px 0 0}
.wj-req-summary{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;padding:14px 16px;border-radius:16px;background:var(--accent);color:var(--on-accent,#fff)}
.wj-req-summary .wj-kicker{color:inherit;opacity:.8}
.wj-req-summary strong{display:block;font-size:26px;line-height:1.1;font-variant-numeric:tabular-nums}
.wj-req-summary p{margin:0;color:inherit;opacity:.9;text-align:right;max-width:55%}
.wj-req-breakdown{margin:0;display:grid;gap:6px}
.wj-req-breakdown div{display:flex;justify-content:space-between;gap:12px;font-size:13px}
.wj-req-breakdown dt{color:var(--muted)}.wj-req-breakdown dd{margin:0;font-weight:700;font-variant-numeric:tabular-nums}
.wj-req-breakdown .total{border-top:1px solid var(--hairline,var(--border));padding-top:6px;font-size:14px}
.wj-sched-daychip:disabled{opacity:.4;cursor:not-allowed}
.wj-filepick{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.wj-filepick .wj-filepick-name{font-size:13px;color:var(--muted);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wj-filepick.has-file .wj-filepick-name{color:var(--text);font-weight:600}
.wj-filepick .wj-help{flex-basis:100%}
.wj-req-expense{display:grid;gap:12px;padding:14px;border-radius:16px;border:1px solid var(--hairline,var(--border));background:var(--surface-raised,var(--surface));margin-bottom:14px}
.wj-req-total{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap}
.wj-req-total strong{display:block;font-size:24px;line-height:1.1;font-variant-numeric:tabular-nums}
.wj-req-chips{display:flex;gap:6px;flex-wrap:wrap}
.wj-req-files{display:grid;gap:8px}
.wj-req-file{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;border:1px solid var(--hairline,var(--border))}
.wj-req-file>div{flex:1;min-width:0}.wj-req-file strong{display:block;font-size:13px}.wj-req-file small{color:var(--muted);display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wj-req-file.warn{border-color:rgba(224,164,0,.5);background:rgba(224,164,0,.08)}
.wj-req-file.ok{border-color:rgba(31,157,85,.45);background:rgba(31,157,85,.08)}
.wj-req-file-ico{display:grid;place-items:center;width:32px;height:32px;border-radius:12px;background:var(--surface2)}
.wj-req-details{margin:0;white-space:pre-wrap;font-size:14px}

/* Acciones compactas en el pie del panel de detalle (icono + etiqueta corta) */
.wj-drawer-foot .wj-actionbar-compact{display:flex;flex-wrap:wrap;gap:6px;width:100%;padding:0;align-items:center}
.wj-actionbar-compact .wj-btn{display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:0 10px;font-size:13px;white-space:nowrap}
.wj-actionbar-compact .wj-btn svg{flex:0 0 auto}
html[data-layout="mobile"] .wj-drawer-foot .wj-actionbar-compact{display:flex;flex-wrap:wrap;gap:6px}
html[data-layout="mobile"] .wj-drawer-foot .wj-actionbar-compact .wj-btn{width:auto;min-height:36px;padding:0 10px;grid-column:auto;order:0;margin-left:0}
@media(max-width:520px){.wj-actionbar-compact{grid-template-columns:none!important}.wj-actionbar-compact .wj-btn span{display:none}.wj-actionbar-compact .wj-btn{padding:0 9px;min-width:36px;justify-content:center}}
.wj-leave-actions{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}
.wj-leave-actions .wj-btn{display:inline-flex;align-items:center;gap:6px}

/* Configuración → Diseño de la tienda */
.wj-shop-imgslot{display:grid;gap:8px}
.wj-shop-imgslot img{display:none;width:100%;max-width:320px;max-height:140px;object-fit:contain;border:1px solid var(--hairline,var(--border));border-radius:10px;background:var(--surface2)}
.wj-shop-imgslot.has-img img{display:block}
.wj-shop-imgslot-actions{display:flex;gap:6px}
.wj-shop-imgslot:not(.has-img) [data-img-clear]{display:none}
.wj-shop-accent-row{display:flex;align-items:center;gap:8px}
.wj-shop-accent-dot{width:28px;height:28px;border-radius:50%;border:1px solid var(--hairline,var(--border));flex:0 0 auto}

/* Tienda: cómo empezar, guía tras la fecha, selector de mes */
.wj-shop-start{display:grid;gap:10px}
.wj-shop-start h2{margin:0;font-size:20px;font-weight:900}
.wj-shop-start-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.wj-shop-start-card{display:grid;justify-items:start;gap:6px;text-align:left;padding:16px 18px;border-radius:var(--shop-radius);border:2px solid var(--shop-line);background:var(--shop-card);font:inherit;color:var(--shop-ink);cursor:pointer;box-shadow:0 8px 24px rgba(15,23,42,.05);transition:border-color .15s,transform .15s}
.wj-shop-start-card:hover{transform:translateY(-2px);border-color:var(--shop-accent)}
.wj-shop-start-card.on{border-color:var(--shop-accent);background:linear-gradient(135deg,color-mix(in srgb,var(--shop-accent) 16%,transparent),var(--shop-card))}
.wj-shop-start-card strong{font-size:16px;font-weight:900}.wj-shop-start-card small{font-size:12.5px;color:var(--shop-muted);line-height:1.4}
.wj-shop-start-ico{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:color-mix(in srgb,var(--shop-accent) 18%,transparent);color:var(--shop-accent-ink)}
.wj-shop-guide{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:12px;background:var(--shop-navy);color:rgb(255,255,255);position:relative}
.wj-shop-guide>div{flex:1;min-width:0;display:grid;gap:2px}.wj-shop-guide strong{font-size:14px}.wj-shop-guide small{font-size:12.5px;color:rgba(255,255,255,.8)}
.wj-shop-guide-ico{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--shop-accent);color:var(--shop-on-accent);flex:0 0 auto}
.wj-shop-guide .wj-btn.primary{display:inline-flex;align-items:center;gap:6px;min-height:38px;border-radius:10px;padding:0 14px}
.wj-shop-guide .wj-btn.primary svg{transform:rotate(90deg)}
.wj-shop-guide-arrow{position:absolute;left:50%;bottom:-16px;transform:translateX(-50%) rotate(90deg);width:28px;height:28px;border-radius:50%;background:var(--shop-accent);color:var(--shop-on-accent);display:grid;place-items:center;box-shadow:0 6px 14px color-mix(in srgb,var(--shop-accent) 40%,transparent);animation:wj-shop-bounce 1.4s ease-in-out infinite}
@keyframes wj-shop-bounce{0%,100%{transform:translateX(-50%) rotate(90deg) translateX(0)}50%{transform:translateX(-50%) rotate(90deg) translateX(5px)}}
.wj-shop-guide.pulse{animation:wj-shop-pulse .6s ease-out}
@keyframes wj-shop-pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--shop-accent) 60%,transparent)}100%{box-shadow:0 0 0 14px color-mix(in srgb,var(--shop-accent) 0%,transparent)}}
.wj-shop-month{border:0;background:transparent;font:inherit;font-size:14px;font-weight:700;color:var(--shop-muted);cursor:pointer;display:inline-flex;align-items:center;gap:4px;padding:4px 6px;border-radius:8px}
.wj-shop-month:hover{background:var(--shop-bg);color:var(--shop-ink)}
.wj-shop-month svg{transform:rotate(90deg)}
.wj-shop-cal-title{flex:1;border:0;background:transparent;font:inherit;font-size:16px;font-weight:800;color:var(--shop-ink);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:4px;padding:6px;border-radius:8px}
.wj-shop-cal-title:hover{background:var(--shop-bg)}.wj-shop-cal-title svg{transform:rotate(90deg)}
.wj-shop-cal-months{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;min-height:352px;align-content:start}
.wj-shop-cal-months button{padding:16px 8px;border-radius:12px;border:1px solid var(--shop-line);background:var(--shop-card);font:inherit;font-size:14px;font-weight:700;color:var(--shop-ink);cursor:pointer}
.wj-shop-cal-months button:hover{border-color:var(--shop-accent)}
.wj-shop-cal-months button.sel{background:var(--shop-navy);border-color:var(--shop-navy);color:rgb(255,255,255)}
.wj-shop-cal-months button:disabled{opacity:.35;cursor:default}
@media(max-width:520px){.wj-shop-start-grid{grid-template-columns:1fr}.wj-shop-guide{flex-wrap:wrap}.wj-shop-guide .wj-btn.primary{width:100%;justify-content:center}}

/* Inicio por fecha: calendario grande y productos del día */
.wj-shop-hcal{display:grid;gap:8px}
.wj-shop-hcal .wj-shop-cal-day{min-height:44px;padding:8px 2px}
.wj-shop-hcal .wj-shop-cal-months{min-height:0}
.wj-shop-hcal-hint{display:flex;align-items:center;gap:6px}
.wj-shop-dayhead{display:flex;align-items:baseline;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.wj-shop-dayhead strong{font-size:18px;font-weight:900}.wj-shop-dayhead small{color:var(--shop-muted);font-size:13px}
.wj-shop-av{font-size:11.5px;font-weight:800;padding:2px 8px;border-radius:999px}
.wj-shop-av.ok{background:rgba(31,157,85,.14);color:rgb(21,110,60)}.wj-shop-av.ko{background:rgb(254,226,226);color:rgb(185,28,28)}
.wj-shop-section h2 small{font-size:13px;font-weight:700;color:var(--shop-muted);margin-left:4px}
.wj-shop-ko{margin-top:12px}.wj-shop-ko summary{cursor:pointer;font-size:13px;font-weight:700;color:var(--shop-muted);margin-bottom:8px}
@media(min-width:900px){.wj-shop-hcal .wj-shop-cal-day{min-height:52px}}

/* ---------- Marca Uelta (interfaz interna) y "Tecnología de Uelta" (páginas públicas) ---------- */
.wj-side-head{height:auto;min-height:52px;padding-top:4px}
.wj-brand-lockup{padding:4px 2px}
.wj-brand-image.uelta-brand{max-width:100%;width:100%;height:auto;display:block}
.wj-brand-image.uelta-brand img{max-height:none}
.wj-brand-image.uelta-brand .uelta-full{display:block;width:100%;max-width:196px;height:auto}
.wj-brand-image.uelta-brand .uelta-mark{display:none;width:40px;height:40px}
@media(max-width:1179px){.wj-brand-image.uelta-brand .uelta-full{display:none}.wj-brand-image.uelta-brand .uelta-mark{display:block;margin:0 auto}}
.wj-mobile-nav-head .wj-brand-image.uelta-brand .uelta-full{display:block;max-width:170px}.wj-mobile-nav-head .wj-brand-image.uelta-brand .uelta-mark{display:none}
.wj-login-logo{height:auto;width:230px;max-width:60vw}
.wj-login-logo.sm{width:170px}
.wj-shop-powered{margin-left:auto;display:inline-flex;align-items:center;gap:8px;color:rgba(255,255,255,.75)!important;text-decoration:none;font-weight:600;white-space:nowrap}
.wj-shop-powered img{height:18px;width:auto;display:block}

/* ---------- Marca más discreta, centro único y guía de puesta en marcha ---------- */
.wj-brand-image.uelta-brand .uelta-full{max-width:140px}
.wj-mobile-nav-head .wj-brand-image.uelta-brand .uelta-full{max-width:140px}
.wj-venue-trigger.is-static{cursor:default;display:inline-flex;align-items:center;gap:8px;font-weight:700;color:var(--text)}
.wj-setup-guide{margin-bottom:14px;border:1px solid color-mix(in srgb,var(--accent) 35%,var(--border));background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 8%,var(--surface)),var(--surface))}
.wj-setup-steps{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.wj-setup-steps li{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:12px;background:var(--surface);border:1px solid var(--border)}
.wj-setup-steps li.done{opacity:.7}
.wj-setup-num{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:var(--accent);color:var(--on-accent,#FFFFFF);font-weight:800;font-size:13px;flex:0 0 auto}
.wj-setup-steps li.done .wj-setup-num{background:color-mix(in srgb,var(--accent) 25%,var(--surface));color:var(--accent)}
.wj-setup-text{flex:1;font-weight:600}
.wj-setup-ok{font-size:12px;font-weight:700;color:var(--accent)}

.wj-side-help{text-decoration:none}

/* ---------- Iconos animados, arranque y centro en la barra lateral ---------- */
.wj-lottie{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:18px;height:18px;vertical-align:middle;color:inherit}
.wj-lottie svg{width:100%!important;height:100%!important;display:block}
/* Paleta de los iconos: trazo negro → color del texto, azul → acento de marca, relleno blanco → transparente. */
.wj-lottie svg [stroke="rgb(0,0,0)"]{stroke:currentColor}.wj-lottie svg [stroke="rgb(83,109,254)"]{stroke:var(--accent)}.wj-lottie svg [fill="rgb(255,255,255)"]{fill:transparent}.wj-lottie svg [fill="rgb(0,0,0)"]{fill:currentColor}.wj-lottie svg [fill="rgb(83,109,254)"]{fill:var(--accent)}.wj-nav-btn.active .wj-lottie svg path[stroke="rgb(83,109,254)"]{stroke:currentColor}
.wj-toast{display:flex;align-items:center;gap:10px}
.wj-home-greeting{display:flex;align-items:flex-start;gap:6px}.wj-home-greeting .wj-page-head{flex:1}.wj-home-greeting .wj-lottie{margin-top:2px}
.wj-login-card-head .wj-lottie{display:flex;margin-bottom:8px;color:var(--accent)}
.wj-empty .wj-lottie{display:flex;margin:0 auto 8px;color:var(--muted)}

@keyframes wj-boot-pulse{0%,100%{transform:scale(1);opacity:.9}50%{transform:scale(1.08);opacity:1}}
@keyframes wj-boot-slide{0%{transform:translateX(-120%)}100%{transform:translateX(320%)}}
.wj-venue-switcher.has-swap{display:flex;align-items:center;gap:4px}
.wj-venue-name{cursor:pointer;font:inherit;color:inherit;text-align:left}
.wj-venue-trigger.is-static{cursor:pointer;border:0;background:transparent;padding:6px 8px;border-radius:12px}.wj-venue-trigger.is-static:hover{background:color-mix(in srgb,var(--accent) 10%,var(--surface))}
.wj-venue-swap{width:28px;height:28px;flex:0 0 auto;border-radius:8px;border:1px solid var(--border);background:var(--surface);display:grid;place-items:center;color:var(--muted);cursor:pointer;transform:rotate(90deg)}.wj-venue-swap:hover{color:var(--text);border-color:var(--accent)}
@media(prefers-reduced-motion:reduce){.wj-boot-bar i{animation:none}}

/* === Iconos animados: tamano, grosor, color y respuesta tactil === */
.wj-lottie[data-lottie-size="12"]{width:12px;height:12px}.wj-lottie[data-lottie-size="13"]{width:13px;height:13px}.wj-lottie[data-lottie-size="14"]{width:14px;height:14px}.wj-lottie[data-lottie-size="15"]{width:15px;height:15px}.wj-lottie[data-lottie-size="16"]{width:16px;height:16px}.wj-lottie[data-lottie-size="17"]{width:17px;height:17px}.wj-lottie[data-lottie-size="18"]{width:18px;height:18px}.wj-lottie[data-lottie-size="19"]{width:19px;height:19px}.wj-lottie[data-lottie-size="20"]{width:20px;height:20px}.wj-lottie[data-lottie-size="21"]{width:21px;height:21px}.wj-lottie[data-lottie-size="22"]{width:22px;height:22px}.wj-lottie[data-lottie-size="24"]{width:24px;height:24px}.wj-lottie[data-lottie-size="26"]{width:26px;height:26px}.wj-lottie[data-lottie-size="28"]{width:28px;height:28px}.wj-lottie[data-lottie-size="30"]{width:30px;height:30px}.wj-lottie[data-lottie-size="32"]{width:32px;height:32px}.wj-lottie[data-lottie-size="36"]{width:36px;height:36px}.wj-lottie[data-lottie-size="40"]{width:40px;height:40px}.wj-lottie[data-lottie-size="44"]{width:44px;height:44px}.wj-lottie[data-lottie-size="48"]{width:48px;height:48px}.wj-lottie[data-lottie-size="56"]{width:56px;height:56px}.wj-lottie[data-lottie-size="64"]{width:64px;height:64px}.wj-lottie[data-lottie-size="72"]{width:72px;height:72px}
/* El icono se dibuja mas marcado que su etiqueta para que se reconozca de un vistazo. */
.wj-nav-btn .wj-lottie,.wj-secondary-nav .wj-lottie,.wj-side-foot .wj-lottie,.wj-topbar .wj-lottie{color:var(--text)}
.wj-nav-btn.active .wj-lottie,.wj-secondary-nav .active .wj-lottie,.wj-secondary-nav [aria-current="page"] .wj-lottie{color:currentColor}
.wj-nav-btn:hover .wj-lottie{color:var(--text)}
/* El SVG de respaldo mantiene sitio y grosor mientras carga la animacion. */
/* El icono de trazo es solo la red de seguridad: se mantiene invisible y
   ocupando sitio, y solo aparece si la animacion tarda o falla. Asi no se ve
   el icono antiguo parpadear al recargar. */
.wj-lottie>.wj-icon{width:100%;height:100%;opacity:0;animation:wj-icon-respaldo 0s linear 700ms forwards}
@keyframes wj-icon-respaldo{to{opacity:1}}
@media(prefers-reduced-motion:reduce){.wj-lottie>.wj-icon{animation-delay:0s}}
/* En la tienda y las páginas públicas no se cargan animaciones: el dibujo se ve al momento. */
.wj-public-body .wj-lottie>.wj-icon{opacity:1;animation:none}

/* Compatibilidad: reglas escritas para un svg hijo directo que ahora recibe el
   contenedor del icono animado. */
.wj-vehicle-list-row>.wj-lottie{display:none}
.wj-center-gate-option>.wj-lottie:first-child{color:var(--accent);flex:none}
.wj-center-gate-option>.wj-lottie:last-child{color:var(--muted);flex:none}
.wj-venue-trigger>.wj-lottie:last-child{flex:0 0 auto;opacity:.6}
.wj-nav-btn>.wj-lottie{width:19px;height:19px;flex:0 0 auto}
.wj-public-product>.wj-lottie{flex:0 0 auto;color:var(--muted)}
.wj-notif-item>.wj-lottie{color:var(--muted)}
.wj-calendar-period>.wj-lottie:last-child{transform:rotate(90deg);color:var(--muted)}
.wj-managed-order .wj-section-title>.wj-lottie{color:var(--muted);flex:none}
html[data-layout="mobile"] .wj-secondary-toggle>.wj-lottie{display:none!important}

/* === Respuesta al raton y al dedo === */
button,a,[role="button"],.wj-pressable,label{-webkit-tap-highlight-color:transparent}
button,a,[role="button"],.wj-pressable{transition:background-color .16s ease,color .16s ease,border-color .16s ease,box-shadow .16s ease,filter .12s ease,transform .12s ease}
/* Marca de pulsacion valida tambien en movil, donde :active no siempre llega. */
.is-pressed{filter:brightness(.93)}
.wj-btn.is-pressed,.wj-nav-btn.is-pressed,.wj-secondary-nav button.is-pressed,.wj-card-action.is-pressed,.wj-quick.is-pressed{transform:scale(.975)}
.wj-venue-swap.is-pressed{transform:rotate(90deg) scale(.9)}
.wj-btn:hover:not(:disabled){box-shadow:0 6px 18px rgba(11,18,32,.10)}
.wj-btn:disabled,.wj-btn[disabled]{filter:none;transform:none}
/* Foco visible por teclado sin ensuciar el clic con el raton. */
button:focus-visible,a:focus-visible,[role="button"]:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

/* === Scroll === */
/* Sin listeners ni cabeceras que aparecen y desaparecen: eso daba parpadeo en
   movil y hay pruebas que lo impiden. El tacto se cuida solo con CSS. */
.wj-table-wrap,.wj-scroll-x,.wj-secondary-nav,.wj-chip-row,.wj-tabs{-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;scroll-behavior:smooth}
.wj-chip-row,.wj-tabs{scroll-snap-type:x proximity}
.wj-chip-row>*,.wj-tabs>*{scroll-snap-align:start}

@media(prefers-reduced-motion:reduce){
 button,a,[role="button"],.wj-pressable{transition:none}
 .is-pressed{transform:none!important}
}

/* Salir: el color avisa de que es una accion de cierre. */
#side-logout:hover,#side-logout:hover .wj-icon{color:var(--danger)}
#side-logout.is-pressed{filter:none;color:var(--danger)}

/* Las reglas que esconden etiquetas de texto (span) no deben tapar el icono. */
.wj-top-actions .wj-btn .wj-lottie,html[data-layout="mobile"] .wj-top-actions .wj-btn .wj-lottie,html[data-layout="tablet"] .wj-top-actions .wj-btn .wj-lottie{display:inline-flex}

#tpv-launcher .wj-lottie,.wj-btn.primary .wj-lottie,.wj-btn.accent .wj-lottie,.wj-nav-btn.active .wj-lottie{color:inherit}
/* En botones de color el icono usa un unico tono, el del texto del boton:
   el acento verde sobre el naranja del TPV quedaba mal. */
#tpv-launcher .wj-lottie svg [stroke],.wj-btn.primary .wj-lottie svg [stroke],.wj-nav-btn.active .wj-lottie svg [stroke],.wj-btn.accent .wj-lottie svg [stroke]{stroke:currentColor}
#tpv-launcher .wj-lottie svg [fill="rgb(83,109,254)"],.wj-btn.primary .wj-lottie svg [fill="rgb(83,109,254)"],.wj-nav-btn.active .wj-lottie svg [fill="rgb(83,109,254)"],.wj-btn.accent .wj-lottie svg [fill="rgb(83,109,254)"]{fill:currentColor}

/* === Función no contratada: se ve en el menú, pero la pantalla invita a
   contactar con Uelta para activarla. === */
.wj-feature-lock{max-width:520px;margin:10vh auto;padding:36px 30px;text-align:center;border:1px solid var(--border);border-radius:var(--r2);background:var(--surface);box-shadow:var(--shadow)}
.wj-feature-lock .wj-lottie{display:flex;margin:0 auto 14px;color:var(--accent)}
.wj-feature-lock h2{margin:0 0 10px;font-size:22px;letter-spacing:-.02em}
.wj-feature-lock p{margin:0 0 8px;color:var(--muted);font-size:14px;line-height:1.6}
.wj-feature-lock-cta{font-weight:700;color:var(--text)}
.wj-feature-lock-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:20px}
.wj-feature-lock-actions .wj-btn{text-decoration:none}
/* En el menú, un candado discreto avisa de que hace falta contratarla. */
.wj-nav-btn.is-locked{opacity:.62}
.wj-nav-btn.is-locked:hover{opacity:1}
.wj-nav-btn.is-locked .wj-nav-label::after{content:"🔒";font-size:11px;margin-left:6px;opacity:.8}

/* Terminal de caja abierto por su propia dirección: sin barra lateral. */
.wj-till-entry{min-height:100vh;display:flex;flex-direction:column}
.wj-till-entry>#content{flex:1;display:flex;flex-direction:column}

/* === my.<dominio>: elegir entre el panel del centro y la caja === */
.wj-hub{min-height:100vh;display:flex;flex-direction:column;background:radial-gradient(900px 480px at 85% -10%,color-mix(in srgb,var(--accent) 18%,transparent),transparent 60%),var(--bg)}
.wj-hub-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:22px clamp(16px,4vw,48px)}
.wj-hub-logo{height:34px;width:auto}
.wj-hub-main{flex:1;width:min(880px,100%);margin:0 auto;padding:6vh clamp(16px,4vw,32px) 40px}
.wj-hub-main h1{margin:6px 0 6px;font-size:clamp(26px,4vw,38px);letter-spacing:-.03em}
.wj-hub-sub{margin:0 0 28px;color:var(--muted)}
.wj-hub-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px}
.wj-hub-card{position:relative;display:flex;align-items:flex-start;gap:16px;padding:22px;border:1px solid var(--border);border-radius:var(--r2);background:var(--surface);box-shadow:var(--shadow);color:inherit;text-decoration:none;transition:transform .16s ease,box-shadow .2s ease,border-color .16s ease}
a.wj-hub-card:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--accent) 55%,var(--border));box-shadow:0 18px 44px rgba(11,18,32,.12)}
.wj-hub-card .wj-lottie{color:var(--accent);flex:0 0 auto}
.wj-hub-card-copy{display:grid;gap:4px;min-width:0;flex:1}
.wj-hub-card-copy strong{font-size:18px;letter-spacing:-.01em}
.wj-hub-card-copy>span{color:var(--muted);font-size:14px;line-height:1.5}
.wj-hub-go{align-self:center;color:var(--muted)}
.wj-hub-card.is-off{opacity:.7}
.wj-hub-venues{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.wj-hub-foot{display:flex;align-items:center;justify-content:center;gap:8px;padding:22px;color:var(--muted);font-size:12px}
.wj-hub-foot img{height:18px;width:auto}

/* === Estilo azul: degradado en acciones principales y selección === */
.wj-btn.primary,.wj-btn.primary:hover{background:var(--accent-grad);border-color:transparent;color:var(--on-accent);box-shadow:0 8px 22px color-mix(in srgb,var(--accent) 28%,transparent)}
.wj-btn.primary:hover{filter:brightness(1.05)}
.wj-nav-btn.active{background:var(--accent-grad);color:var(--on-accent)}
.wj-nav-btn.active .wj-lottie{color:var(--on-accent)}
.wj-nav-btn:hover:not(.active){background:var(--primary-weak);color:var(--accent)}
.wj-secondary-nav .active,.wj-secondary-nav [aria-current="page"]{background:var(--primary-weak);color:var(--accent)}
.wj-badge.active,.wj-badge.ok{background:var(--success-weak);color:var(--ok)}
.wj-hub-card .wj-lottie,.wj-feature-lock .wj-lottie{color:var(--accent)}

/* === Bloques de color por función, como en el cartel === */
.wj-nav-btn .wj-lottie{box-sizing:content-box;padding:6px;border-radius:12px;transition:background-color .16s ease,color .16s ease}
.wj-nav-btn[data-route="home"]:not(.active) .wj-lottie,.wj-secondary-nav [data-route="home"]:not(.active) .wj-lottie{color:var(--tile-blue);background:color-mix(in srgb,var(--tile-blue) 13%,var(--surface))}
.wj-nav-btn[data-route="bookings"]:not(.active) .wj-lottie,.wj-secondary-nav [data-route="bookings"]:not(.active) .wj-lottie{color:var(--tile-purple);background:color-mix(in srgb,var(--tile-purple) 13%,var(--surface))}
.wj-nav-btn[data-route="pos"]:not(.active) .wj-lottie,.wj-secondary-nav [data-route="pos"]:not(.active) .wj-lottie{color:var(--tile-amber);background:color-mix(in srgb,var(--tile-amber) 13%,var(--surface))}
.wj-nav-btn[data-route="products"]:not(.active) .wj-lottie,.wj-secondary-nav [data-route="products"]:not(.active) .wj-lottie{color:var(--tile-blue);background:color-mix(in srgb,var(--tile-blue) 13%,var(--surface))}
.wj-nav-btn[data-route="customers"]:not(.active) .wj-lottie,.wj-secondary-nav [data-route="customers"]:not(.active) .wj-lottie{color:var(--tile-green);background:color-mix(in srgb,var(--tile-green) 13%,var(--surface))}
.wj-nav-btn[data-route="incidents"]:not(.active) .wj-lottie,.wj-secondary-nav [data-route="incidents"]:not(.active) .wj-lottie{color:var(--tile-red);background:color-mix(in srgb,var(--tile-red) 13%,var(--surface))}
.wj-nav-btn[data-route="maintenance"]:not(.active) .wj-lottie,.wj-secondary-nav [data-route="maintenance"]:not(.active) .wj-lottie{color:var(--tile-green);background:color-mix(in srgb,var(--tile-green) 13%,var(--surface))}
.wj-nav-btn[data-route="requests"]:not(.active) .wj-lottie,.wj-secondary-nav [data-route="requests"]:not(.active) .wj-lottie{color:var(--tile-blue);background:color-mix(in srgb,var(--tile-blue) 13%,var(--surface))}
.wj-nav-btn[data-route="cv"]:not(.active) .wj-lottie,.wj-secondary-nav [data-route="cv"]:not(.active) .wj-lottie{color:var(--tile-purple);background:color-mix(in srgb,var(--tile-purple) 13%,var(--surface))}
.wj-nav-btn[data-route="calendar"]:not(.active) .wj-lottie,.wj-secondary-nav [data-route="calendar"]:not(.active) .wj-lottie{color:var(--tile-blue);background:color-mix(in srgb,var(--tile-blue) 13%,var(--surface))}
.wj-nav-btn[data-route="gymkana"]:not(.active) .wj-lottie,.wj-secondary-nav [data-route="gymkana"]:not(.active) .wj-lottie{color:var(--tile-purple);background:color-mix(in srgb,var(--tile-purple) 13%,var(--surface))}
.wj-nav-btn[data-route="orders"]:not(.active) .wj-lottie,.wj-secondary-nav [data-route="orders"]:not(.active) .wj-lottie{color:var(--tile-amber);background:color-mix(in srgb,var(--tile-amber) 13%,var(--surface))}
.wj-nav-btn[data-route="stock"]:not(.active) .wj-lottie,.wj-secondary-nav [data-route="stock"]:not(.active) .wj-lottie{color:var(--tile-amber);background:color-mix(in srgb,var(--tile-amber) 13%,var(--surface))}
.wj-nav-btn[data-route="invoices"]:not(.active) .wj-lottie,.wj-secondary-nav [data-route="invoices"]:not(.active) .wj-lottie{color:var(--tile-green);background:color-mix(in srgb,var(--tile-green) 13%,var(--surface))}
.wj-nav-btn[data-route="documents"]:not(.active) .wj-lottie,.wj-secondary-nav [data-route="documents"]:not(.active) .wj-lottie{color:var(--tile-red);background:color-mix(in srgb,var(--tile-red) 13%,var(--surface))}
.wj-nav-btn[data-route="email"]:not(.active) .wj-lottie,.wj-secondary-nav [data-route="email"]:not(.active) .wj-lottie{color:var(--tile-blue);background:color-mix(in srgb,var(--tile-blue) 13%,var(--surface))}
.wj-nav-btn.active .wj-lottie{background:rgba(255,255,255,.18);color:var(--on-accent)}
.wj-mobile-dock [data-route] .wj-lottie{padding:0;background:none}

/* === Editor de horario semanal === */
.wj-hours-editor{display:grid;gap:10px}
.wj-hours-editor>.wj-help{margin:0 0 4px}
.wj-hday{border:1px solid var(--border);border-radius:var(--radius-panel,16px);background:var(--surface);padding:12px 14px;display:grid;gap:10px;transition:border-color .16s ease,box-shadow .16s ease,opacity .16s ease}
.wj-hday:focus-within{border-color:color-mix(in srgb,var(--accent) 45%,var(--border));box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 12%,transparent)}
.wj-hday.is-copied{animation:wj-hday-flash .9s ease}
@keyframes wj-hday-flash{0%{background:color-mix(in srgb,var(--accent) 16%,var(--surface))}100%{background:var(--surface)}}
.wj-hday-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.wj-hday-toggle{display:flex;align-items:center;gap:10px;cursor:pointer;min-width:130px}
.wj-hday-toggle strong{font-size:14px}
.wj-hday-closed{display:none;color:var(--muted);font-size:13px}
.wj-hday.is-closed .wj-hday-closed{display:inline}
.wj-hday.is-closed .wj-hday-slots,.wj-hday.is-closed [data-hday-copy]{display:none}
.wj-hday.is-closed{background:var(--surface2)}
.wj-hday-tools{margin-left:auto;display:flex;gap:6px}
.wj-hday-slots{display:grid;gap:8px}
.wj-hslot{display:flex;align-items:center;gap:8px}
.wj-hslot.is-new{animation:wj-hslot-in .22s ease}
@keyframes wj-hslot-in{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
.wj-hslot-sep{color:var(--muted);font-weight:700}
.wj-hslot-remove{border:0;background:transparent;color:var(--muted);width:32px;height:32px;border-radius:12px;display:grid;place-items:center;cursor:pointer}
.wj-hslot-remove:hover{background:var(--danger-weak);color:var(--danger)}
.wj-tfield{position:relative;display:inline-flex;align-items:center;flex:1;max-width:170px}
.wj-tfield-input{width:100%;padding-right:38px;font-variant-numeric:tabular-nums;font-weight:600;letter-spacing:.02em}
.wj-tfield-input.is-invalid{border-color:var(--danger);box-shadow:0 0 0 3px color-mix(in srgb,var(--danger) 14%,transparent)}
.wj-tfield-btn{position:absolute;right:4px;top:50%;transform:translateY(-50%);width:30px;height:30px;border:0;border-radius:8px;background:transparent;color:var(--muted);display:grid;place-items:center;cursor:pointer}
.wj-tfield-btn:hover{background:var(--primary-weak);color:var(--accent)}
.wj-time-pop{position:fixed;z-index:2000;max-height:240px;overflow:auto;padding:6px;background:var(--surface);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow-float);display:grid;gap:2px;overscroll-behavior:contain}
.wj-time-pop button{border:0;background:transparent;text-align:left;padding:8px 12px;border-radius:8px;font:inherit;font-variant-numeric:tabular-nums;color:var(--text);cursor:pointer}
.wj-time-pop button:hover{background:var(--primary-weak);color:var(--accent)}
.wj-time-pop button.is-current{background:var(--accent);color:var(--on-accent);font-weight:700}
.wj-hday-copy{border-top:1px dashed var(--border);padding-top:10px;display:grid;gap:10px}
.wj-hday-copy-title{font-size:13px;color:var(--muted);font-weight:600}
.wj-hday-copy-days{display:flex;flex-wrap:wrap;gap:6px}
.wj-daychip{position:relative;cursor:pointer}
.wj-daychip input{position:absolute;opacity:0;pointer-events:none}
.wj-daychip span{display:inline-block;padding:6px 12px;border-radius:999px;border:1px solid var(--border);background:var(--surface2);font-size:13px;font-weight:600;transition:background .14s ease,color .14s ease,border-color .14s ease}
.wj-daychip input:checked+span{background:var(--accent);border-color:transparent;color:var(--on-accent)}
.wj-daychip input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}
.wj-hday-copy-foot{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.wj-hday-copy-quick{display:flex;gap:4px;flex-wrap:wrap}
.wj-hday-copy-quick button{border:0;background:transparent;color:var(--accent);font:inherit;font-size:13px;font-weight:700;padding:4px 8px;border-radius:8px;cursor:pointer}
.wj-hday-copy-quick button:hover{background:var(--primary-weak)}
.wj-hday-copy-actions{margin-left:auto;display:flex;gap:6px}
.wj-hours-error{margin:0;min-height:18px;color:var(--danger);font-size:13px;font-weight:600}
.wj-hours-view{display:grid;gap:2px}
.wj-hours-view-row{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid var(--hairline,var(--border))}
.wj-hours-view-row:last-child{border-bottom:0}
.wj-hours-view-row strong{font-weight:600}
.wj-hours-view-row span{font-variant-numeric:tabular-nums;text-align:right}
.wj-hours-view-row.is-closed span{color:var(--muted)}
@media(max-width:520px){.wj-hday-tools{margin-left:0;width:100%}.wj-tfield{max-width:none}.wj-hday-copy-actions{margin-left:0}}

/* === TPV: color según el momento de la venta ===
   Vendiendo: azul. Cobrando: ámbar. Cobrada: verde. Así el cajero sabe de un
   vistazo en qué punto está, aunque tenga la vista en el cliente. */
.wj-tpv-ticket{transition:box-shadow .3s ease}
.wj-tpv-ticket.is-selling{box-shadow:inset 0 4px 0 var(--accent)}
.wj-tpv-ticket.is-selling .wj-tpv-totals .total b{color:var(--accent)}
.wj-tpv-ticket.is-selling .wj-tpv-pay-btn:not(:disabled){animation:wj-tpv-ready 2s ease-in-out infinite}
@keyframes wj-tpv-ready{0%,100%{box-shadow:0 8px 20px color-mix(in srgb,var(--ok) 28%,transparent)}50%{box-shadow:0 8px 30px color-mix(in srgb,var(--ok) 50%,transparent),0 0 0 4px color-mix(in srgb,var(--ok) 18%,transparent)}}
.wj-tpv-ticket.is-paying{box-shadow:inset 0 4px 0 var(--warn)}
.wj-tpv-ticket.is-paying .wj-tpv-ticket-foot{background:var(--warn-weak)}
.wj-tpv-ticket.is-paying .wj-tpv-totals .total b{color:var(--warn)}
.wj-tpv-ticket.is-done{box-shadow:inset 0 4px 0 var(--ok)}
.wj-tpv-ticket.is-done .wj-tpv-ticket-foot{background:color-mix(in srgb,var(--ok) 12%,var(--surface))}
.wj-tpv-ticket-foot{transition:background .3s ease}
.wj-tpv-line.is-new{animation:wj-tpv-line-in .7s ease}
@keyframes wj-tpv-line-in{from{background:color-mix(in srgb,var(--accent) 16%,transparent)}to{background:transparent}}
.wj-tpv-line-band{display:inline-flex;align-items:center;gap:5px;margin-left:6px;font-style:normal;font-weight:700;color:var(--text)}
.wj-tpv-line-band span{width:16px;height:10px;border-radius:3px;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--text) 18%,transparent)}
.wj-wb-done{display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:16px;background:var(--ok);color:var(--on-accent);margin-bottom:12px}
.wj-wb-done small{display:block;opacity:.92;font-weight:600}
.wj-wb-done b{font-size:26px;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.wj-wb-swatch{width:58px;height:34px;border-radius:12px;flex:none;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--text) 15%,transparent),0 4px 10px color-mix(in srgb,var(--text) 12%,transparent)}
.wj-wb-handout strong{font-size:18px}
.wj-tpv-departure.warm{border-color:var(--warn);background:var(--warn-weak);color:var(--text)}
.wj-tpv-departure.warm b{color:var(--warn)}
.wj-tpv-departure.hot{border-color:var(--danger);background:var(--danger-weak);color:var(--danger);animation:wj-tpv-hot 1s ease-in-out infinite}
.wj-tpv-departure.hot b{color:var(--danger)}
@keyframes wj-tpv-hot{50%{box-shadow:0 0 0 4px color-mix(in srgb,var(--danger) 22%,transparent)}}
@media (prefers-reduced-motion:reduce){.wj-tpv-ticket.is-selling .wj-tpv-pay-btn,.wj-tpv-departure.hot,.wj-tpv-line.is-new{animation:none}}

/* === Textos legales: pie del inicio de sesión y ventana de la página de reservas === */
.wj-login-legal{display:flex;justify-content:center;flex-wrap:wrap;gap:6px 16px;margin-top:18px;font-size:12.5px}
.wj-login-legal a{color:var(--muted);text-decoration:none}
.wj-login-legal a:hover{color:var(--accent);text-decoration:underline}
.wj-legal-doc{display:grid;gap:10px;font-size:14px;line-height:1.6}
.wj-legal-doc h3{margin:10px 0 0;font-size:15px}
.wj-legal-doc p,.wj-legal-doc ul{margin:0}
.wj-legal-doc ul{padding-left:20px;display:grid;gap:6px}
.wj-legal-data{display:grid;grid-template-columns:max-content 1fr;gap:4px 14px;margin:0;padding:12px 14px;border-radius:12px;background:var(--surface2)}
.wj-legal-data dt{font-weight:700;color:var(--muted)}
.wj-legal-data dd{margin:0}
.wj-legal-pending{background:var(--warn-weak);color:var(--text);padding:1px 6px;border-radius:6px;font-weight:700}
.wj-legal-warn{color:var(--warn)}
@media(max-width:520px){.wj-legal-data{grid-template-columns:1fr}}

/* === Todas las reservas: orden y páginas de 25 === */
.wj-bookings-sortbar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:4px 0 8px}
.wj-bookings-sortbar .wj-help{margin:0;font-weight:600}
.wj-bookings-pager{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px;padding:16px 4px 8px}
.wj-pager-nums{display:flex;align-items:center;gap:4px}
.wj-pager-num{min-width:36px;height:36px;padding:0 8px;border-radius:12px;border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;font-weight:700;font-variant-numeric:tabular-nums;cursor:pointer;transition:border-color .15s ease,background .15s ease}
.wj-pager-num:hover{border-color:var(--accent);color:var(--accent)}
.wj-pager-num.active{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.wj-pager-gap{color:var(--muted);padding:0 2px}
.wj-pager-info{width:100%;text-align:center;color:var(--muted);font-size:13px}
@media(max-width:520px){.wj-bookings-pager .wj-btn{flex:1}.wj-pager-nums{order:3;width:100%;justify-content:center}}

/* Calendario emergente de la tienda: más grande y con más aire. Días grandes
   con el precio legible, la ocupación como tinte suave y el día elegido con el
   color de la tienda. En el móvil sube desde abajo como una hoja. */
.wj-shop-cal-backdrop{background:rgba(8,17,38,.55);backdrop-filter:blur(3px)}
.wj-shop-cal-backdrop .wj-shop-cal{width:min(720px,100%);max-height:calc(100vh - 32px);overflow:auto;padding:26px 28px 22px;border-radius:24px;gap:16px;box-shadow:0 30px 80px rgba(8,17,38,.35)}
.wj-shop-cal-backdrop .wj-shop-cal-head{gap:8px}
.wj-shop-cal-backdrop .wj-shop-cal-title{order:-1;flex:1;justify-content:flex-start;font-size:22px;letter-spacing:-.01em;padding:4px 8px;margin-left:-8px}
.wj-shop-cal-backdrop .wj-shop-cal-head strong{order:-1;text-align:left;font-size:22px}
.wj-shop-cal-backdrop .wj-shop-cal-head .wj-shop-day-nav{width:40px;height:40px;border-radius:50%}
.wj-shop-cal-backdrop .wj-shop-cal-x{width:40px;height:40px;border-radius:50%;margin-left:6px}
.wj-shop-cal-backdrop .wj-shop-cal-sub{margin:-10px 0 2px;text-align:left;font-size:14px}
.wj-shop-cal-backdrop .wj-shop-cal-week{font-size:12px;letter-spacing:.06em;padding-bottom:2px}
.wj-shop-cal-backdrop .wj-shop-cal-grid{gap:8px}
.wj-shop-cal-backdrop .wj-shop-cal-day{min-height:78px;padding:10px 10px 9px;border-radius:14px;justify-items:start;align-content:space-between;gap:6px;border-color:transparent;background:var(--shop-bg);transition:transform .12s,box-shadow .12s,background .12s}
.wj-shop-cal-backdrop .wj-shop-cal-day.empty{background:transparent}
.wj-shop-cal-backdrop .wj-shop-cal-day.off{opacity:1;background:transparent;color:rgb(190,197,210)}
.wj-shop-cal-backdrop .wj-shop-cal-day.open{background:rgb(236,252,246)}
.wj-shop-cal-backdrop .wj-shop-cal-day.medium{background:rgb(255,249,230)}
.wj-shop-cal-backdrop .wj-shop-cal-day.low{background:rgb(255,241,230)}
.wj-shop-cal-backdrop .wj-shop-cal-day.full{background:rgb(254,238,238)}
.wj-shop-cal-backdrop .wj-shop-cal-day:not(.off):not(.empty):hover{transform:translateY(-2px);box-shadow:0 10px 22px rgba(8,17,38,.10);border-color:var(--shop-accent)}
.wj-shop-cal-backdrop .wj-shop-cal-day.today:not(.sel){box-shadow:inset 0 0 0 2px var(--shop-accent)}
.wj-shop-cal-backdrop .wj-shop-cal-day.today .wj-shop-cal-n{text-decoration:none}
.wj-shop-cal-backdrop .wj-shop-cal-day.sel{background:linear-gradient(135deg,var(--shop-accent-2),var(--shop-accent-ink));border-color:transparent;color:rgb(255,255,255);box-shadow:0 12px 26px rgba(10,158,132,.35)}
.wj-shop-cal-backdrop .wj-shop-cal-n{font-size:18px}
.wj-shop-cal-backdrop .wj-shop-cal-p{font-size:12.5px;font-weight:800;color:var(--shop-ink)}
.wj-shop-cal-backdrop .wj-shop-cal-p svg{width:10px;height:10px}
.wj-shop-cal-backdrop .wj-shop-cal-day.sel .wj-shop-cal-p{color:rgb(255,255,255)}
.wj-shop-cal-backdrop .wj-shop-cal-occ{width:100%;height:4px;background:rgba(15,23,42,.08)}
.wj-shop-cal-backdrop .wj-shop-cal-day.sel .wj-shop-cal-occ{background:rgba(255,255,255,.35)}
.wj-shop-cal-backdrop .wj-shop-cal-day.sel .wj-shop-cal-occ b{background:rgb(255,255,255)}
.wj-shop-cal-backdrop .wj-shop-cal-legend{gap:8px;font-size:12px;padding-top:14px}
.wj-shop-cal-backdrop .wj-shop-cal-legend span{padding:5px 10px;border-radius:999px;background:var(--shop-bg)}
.wj-shop-cal-backdrop .wj-shop-cal-months{min-height:0}
.wj-shop-cal-backdrop .wj-shop-cal-months button{padding:20px 8px;font-size:15px}
.wj-shop-cal-backdrop .wj-shop-cal-months button.sel{background:linear-gradient(135deg,var(--shop-accent-2),var(--shop-accent-ink));border-color:transparent}
@media(max-width:640px){
 .wj-shop-cal-backdrop{align-items:flex-end;padding:0}
 .wj-shop-cal-backdrop .wj-shop-cal{width:100%;max-height:92vh;border-radius:22px 22px 0 0;padding:18px 14px calc(18px + env(safe-area-inset-bottom));gap:12px}
 .wj-shop-cal-backdrop .wj-shop-cal-title,.wj-shop-cal-backdrop .wj-shop-cal-head strong{font-size:18px}
 .wj-shop-cal-backdrop .wj-shop-cal-grid{gap:5px}
 .wj-shop-cal-backdrop .wj-shop-cal-day{min-height:60px;padding:7px 6px 6px;border-radius:11px;gap:4px}
 .wj-shop-cal-backdrop .wj-shop-cal-n{font-size:15px}
 .wj-shop-cal-backdrop .wj-shop-cal-p{font-size:11px}
 .wj-shop-cal-backdrop .wj-shop-cal-p svg{display:none}
 .wj-shop-cal-backdrop .wj-shop-cal-legend{font-size:11px;gap:6px}
 .wj-shop-cal-backdrop .wj-shop-cal-legend span{padding:4px 8px}
}
.wj-shop-cal-backdrop .wj-btn.wj-shop-cal-x{border-radius:50%}
.wj-shop-cal-backdrop .wj-shop-cal-p{white-space:nowrap}
@media(max-width:640px){
 .wj-shop-cal-backdrop .wj-shop-cal-day{padding:7px 4px 6px;justify-items:center}
 .wj-shop-cal-backdrop .wj-shop-cal-p{font-size:10px;letter-spacing:-.02em}
}

/* Selector de hora con muchas sesiones: franjas de una hora y, debajo, sus minutos. */
.wj-shop-slot-note{margin:0 0 12px;font-size:13.5px;color:var(--shop-muted)}
/* Lo que el centro cuenta del producto: explicación, qué incluye y qué hay que saber. */
.wj-shop-about p{margin:0 0 12px;font-size:15px;line-height:1.6;color:var(--shop-muted)}
.wj-shop-about p:last-child{margin-bottom:0}
.wj-shop-list{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.wj-shop-list li{display:flex;align-items:flex-start;gap:10px;font-size:14.5px;line-height:1.5}
.wj-shop-list li svg{flex:none;margin-top:2px}
.wj-shop-info.incluye li svg{color:var(--shop-accent)}
.wj-shop-info.saber li svg{color:var(--shop-muted)}
.wj-shop-info.saber li{color:var(--shop-muted)}
/* El día al que pertenecen las horas: sin esto, cambiar de fecha con el mismo horario
   parecía no hacer nada. */
.wj-shop-slot-day{display:block;color:var(--shop-ink);font-size:15px;font-weight:800;text-transform:capitalize;margin-bottom:2px}
/* Mientras se piden las horas del día nuevo se atenúan las viejas en vez de borrarlas:
   la sección no se encoge y se ve que algo está pasando. */
.wj-shop-times{transition:opacity .16s ease}
.wj-shop-times.is-updating{opacity:.4;pointer-events:none}
.wj-shop-updating{display:flex;align-items:center;gap:8px;margin:0 0 10px;font-size:13.5px;color:var(--shop-muted)}
/* Y al llegar, un destello corto para que el ojo lo pille. */
.wj-shop-times.just-updated .wj-shop-slot-note{animation:wj-shop-slots-in 1.2s ease}
.wj-shop-times.just-updated .wj-shop-slots{animation:wj-shop-slots-up .32s ease}
@keyframes wj-shop-slots-in{0%{background:color-mix(in srgb,var(--shop-accent) 16%,transparent);border-radius:10px}100%{background:transparent;border-radius:10px}}
@keyframes wj-shop-slots-up{0%{opacity:.25;transform:translateY(6px)}100%{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.wj-shop-times.just-updated .wj-shop-slot-note,.wj-shop-times.just-updated .wj-shop-slots{animation:none}}
.wj-shop-slot-note strong{color:var(--shop-ink)}
.wj-shop-hours{display:flex;gap:8px;overflow-x:auto;padding:2px 2px 6px;margin-bottom:12px;scrollbar-width:thin;scroll-snap-type:x proximity}
.wj-shop-hour{flex:0 0 auto;scroll-snap-align:start;display:grid;justify-items:center;gap:2px;min-width:92px;padding:10px 14px;border-radius:12px;border:1px solid var(--shop-line);background:var(--shop-bg);font:inherit;color:var(--shop-ink);cursor:pointer;transition:background .12s,border-color .12s}
.wj-shop-hour strong{font-size:15px;font-weight:800}
.wj-shop-hour small{font-size:11.5px;color:var(--shop-muted)}
.wj-shop-hour:hover:not(:disabled){border-color:var(--shop-accent)}
.wj-shop-hour.on{background:var(--shop-navy);border-color:var(--shop-navy);color:rgb(255,255,255)}
.wj-shop-hour.on small{color:rgba(255,255,255,.75)}
.wj-shop-hour.has-pick:not(.on){border-color:var(--shop-accent);box-shadow:inset 0 0 0 1px var(--shop-accent)}
.wj-shop-hour:disabled{opacity:.45;cursor:default}
.wj-shop-slots.compact{grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:8px}
.wj-shop-slots.compact .wj-shop-slot{padding:11px 6px}
@media(max-width:640px){.wj-shop-hour{min-width:80px;padding:9px 10px}.wj-shop-slots.compact{grid-template-columns:repeat(4,1fr)}}
/* Todas las horas a la vista, una fila por hora: la hora es una etiqueta, no un botón. */
.wj-shop-hourrows{display:grid;gap:10px}
.wj-shop-hourrow{display:grid;grid-template-columns:64px minmax(0,1fr);gap:10px;align-items:start}
.wj-shop-hourrow-label{padding-top:12px;font-weight:800;font-size:14px;color:var(--shop-muted);font-variant-numeric:tabular-nums}
@media(max-width:640px){.wj-shop-hourrows{gap:8px}.wj-shop-hourrow{grid-template-columns:42px minmax(0,1fr);gap:8px}.wj-shop-hourrow-label{padding-top:10px;font-size:12.5px}.wj-shop-hourrow .wj-shop-slots.compact{gap:6px}.wj-shop-hourrow .wj-shop-slot{padding:9px 2px}.wj-shop-hourrow .wj-shop-slot strong{font-size:14.5px}}
/* Con muchas sesiones siguen las pestañas de hora, pero ya no parecen una hora «elegida». */
.wj-shop-hour.on{background:var(--shop-bg);color:var(--shop-ink);border-color:var(--shop-navy);box-shadow:inset 0 -3px 0 var(--shop-navy)}
.wj-shop-hour.on small{color:var(--shop-muted)}
.wj-shop-minute-label{margin:0 0 8px;font-weight:700;font-size:13px;color:var(--shop-ink)}
/* Falta la hora: aviso y las horas se iluminan un momento. */
.wj-shop-slot-hint{display:flex;align-items:center;gap:6px;margin:0 0 10px;padding:9px 12px;border-radius:10px;background:rgb(255,247,230);color:rgb(146,64,14);font-weight:700;font-size:14px}
.wj-shop-nudge .wj-shop-slot:not(:disabled){animation:wj-shop-nudge 1s ease 2}
@keyframes wj-shop-nudge{0%,100%{box-shadow:0 0 0 0 transparent}40%{box-shadow:0 0 0 4px color-mix(in srgb,var(--shop-accent) 35%,transparent);border-color:var(--shop-accent)}}
@media(prefers-reduced-motion:reduce){.wj-shop-nudge .wj-shop-slot{animation:none}}
.wj-shop-addbtn.needs-slot{background:var(--shop-navy);color:rgb(255,255,255)}
.wj-shop-cal-legend .pl.low{background:var(--shop-accent-ink)}
.wj-shop-cal-backdrop .wj-shop-cal-day.p-low .wj-shop-cal-p{color:var(--shop-accent-ink)}
.wj-shop-cal-backdrop .wj-shop-cal-day.p-high .wj-shop-cal-p{color:rgb(217,119,6)}
.wj-shop-cal-backdrop .wj-shop-cal-day.sel .wj-shop-cal-p{color:rgb(255,255,255)}
.wj-shop-cal-backdrop .wj-shop-cal-grid.loading{opacity:.35;pointer-events:none}

/* Barra de fecha elegida (modo "Por fecha"). */
.wj-shop-datebar{display:flex;align-items:center;gap:14px;padding:16px 20px;border:1px solid var(--shop-accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--shop-accent) 15%,transparent)}
.wj-shop-datebar-copy{flex:1;display:grid;gap:1px;min-width:0}
.wj-shop-datebar-copy strong{font-size:19px;font-weight:800;text-transform:capitalize}
.wj-shop-datebar-copy small{font-size:12.5px;color:var(--shop-muted)}
.wj-shop-datebar-change{flex:0 0 auto;display:inline-flex;align-items:center;gap:6px;border-radius:999px}
@media(max-width:640px){.wj-shop-datebar{flex-wrap:wrap;padding:14px}.wj-shop-datebar-change{width:100%;justify-content:center}}
.wj-shop-datebar + .wj-shop-section .wj-shop-dayhead{display:none}

/* Botón "Volver" a la izquierda de los pasos. */
.wj-shop-stepbar{display:flex;align-items:center;gap:12px;max-width:1180px;margin:0 auto;padding:0 clamp(14px,4vw,32px)}
.wj-shop-stepbar .wj-shop-steps{flex:1;margin:0;padding-left:0;padding-right:0;max-width:none}
.wj-shop-stepback{flex:0 0 auto;display:inline-flex;align-items:center;gap:6px;padding:9px 16px 9px 12px;border-radius:999px;border:1px solid var(--shop-line);background:var(--shop-card);color:var(--shop-ink);font:inherit;font-size:14px;font-weight:700;cursor:pointer;transition:border-color .12s,background .12s}
.wj-shop-stepback svg{transform:rotate(180deg)}
.wj-shop-stepback:hover{border-color:var(--shop-accent);background:color-mix(in srgb,var(--shop-accent) 10%,transparent)}
@media(max-width:640px){.wj-shop-stepbar{gap:6px}.wj-shop-stepback{padding:8px}.wj-shop-stepback span{display:none}}
.wj-shop-datebar{scroll-margin-top:90px}

/* Barra de filtros: el buscador cede sitio y se recoge en una lupa si hace falta. */
.wj-toolbar.wj-toolbar-fit{flex-wrap:nowrap}
.wj-toolbar.wj-toolbar-fit.wj-toolbar-wrap,.wj-toolbar.wj-toolbar-fit.search-open{flex-wrap:wrap}
.wj-toolbar-fit>.wj-search{flex:1 1 auto;min-width:0;max-width:480px;transition:flex-basis .15s}
.wj-toolbar-fit>.wj-search.is-collapsed{flex:0 0 40px;width:40px;max-width:40px}
.wj-toolbar-fit>.wj-search.is-collapsed input{width:40px;min-width:0;padding:0;color:transparent;caret-color:transparent;cursor:pointer}
.wj-toolbar-fit>.wj-search.is-collapsed input::placeholder{color:transparent}
.wj-toolbar-fit>.wj-search.is-collapsed:before{left:50%;transform:translateX(-50%);pointer-events:none}
.wj-toolbar-fit>.wj-search.is-collapsed.has-value:after{content:"";position:absolute;top:6px;right:6px;width:8px;height:8px;border-radius:50%;background:var(--accent);pointer-events:none}
.wj-toolbar-fit.search-open>.wj-search{order:-1;flex:1 0 100%;max-width:none}
/* Cabecera de la tienda: iconos de carrito y cuenta en blanco sobre el fondo oscuro. */
.wj-shop-cartbtn{width:44px;height:44px;background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.22);transition:background .12s,border-color .12s}
.wj-shop-cartbtn:hover{background:color-mix(in srgb,var(--shop-accent) 22%,transparent);border-color:var(--shop-accent)}
.wj-shop-cartbtn>svg,.wj-shop-cartbtn>img,.wj-shop-cartbtn>span>svg,.wj-shop-cartbtn>span>img{filter:brightness(0) invert(1)}
/* Botón de cerrar de las ventanas de la tienda: círculo fijo, el título no lo aplasta. */
.wj-shop-cal .wj-shop-cal-x,.wj-shop-cal-backdrop .wj-btn.wj-shop-cal-x{flex:0 0 40px;width:40px;height:40px;min-width:40px;padding:0;display:grid;place-items:center;border-radius:50%}
.wj-shop-auth .wj-shop-cal-head strong{flex:1;min-width:0}

/* TPV: elegir dispositivo. */
.wj-tpv-devpick{gap:10px}
.wj-tpv-devlist{display:grid;gap:10px;width:min(520px,100%);margin-top:8px}
.wj-tpv-dev{display:flex;align-items:center;gap:14px;width:100%;padding:16px 18px;border-radius:16px;border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;text-align:left;cursor:pointer;box-shadow:0 6px 18px rgba(15,23,42,.06);transition:transform .12s,border-color .12s,box-shadow .12s}
.wj-tpv-dev:hover:not(:disabled){transform:translateY(-2px);border-color:var(--accent);box-shadow:0 12px 26px rgba(15,23,42,.10)}
.wj-tpv-dev:disabled{cursor:default;opacity:.6}
.wj-tpv-dev.busy{opacity:1;border-color:var(--accent)}
.wj-tpv-dev-ico{flex:0 0 44px;width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:var(--accent-soft,rgba(22,119,255,.10));color:var(--accent)}
.wj-tpv-dev-copy{flex:1;display:grid;gap:2px;min-width:0}
.wj-tpv-dev-copy strong{font-size:16px;font-weight:800}
.wj-tpv-dev-copy small{font-size:13px;color:var(--muted)}
.wj-tpv-dev-go{flex:0 0 auto;color:var(--muted);display:inline-flex;align-items:center}
.wj-tpv-dev-go small{font-size:13px;font-weight:700;color:var(--accent)}

/* Firma: cuenta del cliente y menores a su cargo. */
.wj-sign-account{margin:0 0 14px}
.wj-sign-account-off,.wj-sign-account-on{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 14px;border-radius:14px;border:1px dashed var(--border-strong,rgba(0,0,0,.18));background:var(--surface2)}
.wj-sign-account-off span,.wj-sign-account-on span{flex:1;min-width:160px}
.wj-sign-account-on{border-style:solid;border-color:var(--accent)}
.wj-sign-account-on small{color:var(--muted);margin-left:4px}
.wj-sign-login{display:grid;gap:10px;padding:14px;border-radius:14px;border:1px solid var(--border);background:var(--surface2)}
.wj-sign-login-actions{display:flex;justify-content:flex-end;gap:8px}
.wj-sign-minors{margin:18px 0 6px;padding:16px;border-radius:16px;border:1px solid var(--border);background:var(--surface2);display:grid;gap:10px}
.wj-sign-minors h3{margin:0}
.wj-sign-minor-list{display:grid;gap:10px}
.wj-sign-minor{padding:12px 14px;border-radius:14px;border:1px solid var(--border);background:var(--surface);display:grid;gap:8px}
.wj-sign-minor-head{display:flex;align-items:center;justify-content:space-between}
.wj-sign-minor-add{justify-self:start;display:inline-flex;align-items:center;gap:6px}
.wj-sign-minor-suggest{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:13px;color:var(--muted)}
.wj-sign-minor-suggest:empty{display:none}
.wj-sign-kid{display:inline-flex;align-items:center;gap:5px;padding:6px 12px;border-radius:999px;border:1px solid var(--accent);background:transparent;color:var(--text);font:inherit;font-size:13px;font-weight:700;cursor:pointer}
.wj-sign-kid small{color:var(--muted);font-weight:600}
.wj-sign-minors-done{margin:14px 0 6px;font-size:15px}
/* Al firmar, el cliente se quedaba en una pantalla sin salida: se le pregunta a dónde ir. */
.wj-sign-next{margin:22px 0 0;padding-top:18px;border-top:1px solid var(--border);display:grid;gap:12px;justify-items:center}
.wj-sign-next h3{margin:0;font-size:16px}
.wj-sign-next-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}
.wj-sign-next-actions .wj-btn{min-height:46px;padding:0 18px}
.wj-sign-count{margin:0;color:var(--muted)}
.wj-sign-count b{font-variant-numeric:tabular-nums}
/* TPV: los avisos salen abajo, en el centro de la zona de productos, sin tapar el ticket. */
body:has(.wj-tpv) .wj-toast-root{top:auto;right:auto;bottom:28px;left:calc(50% - 230px);transform:translateX(-50%);justify-items:center}
@media(max-width:900px){body:has(.wj-tpv) .wj-toast-root{left:50%}}

/* Editor de documentos: datos automáticos agrupados con nombre legible. */
.wj-doc-vars{display:grid;gap:10px;padding:12px;border-radius:16px;border:1px solid var(--border);background:var(--surface2)}
.wj-doc-var-group{display:grid;gap:6px}
.wj-doc-var-group>small{font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.wj-doc-var{font-family:inherit!important;font-size:13px;font-weight:700}

/* Tienda: logo más visible, textos de la cabecera legibles sobre el fondo oscuro. */
.wj-shop-head .wj-public-logo{height:56px;max-width:240px}
.wj-shop-kicker,.wj-shop-hero h1 em{color:var(--shop-accent-light)}
/* Ficha del producto: categoría, descripción, datos en píldoras, precio grande y garantías. */
.wj-shop-product-head{gap:28px;align-items:stretch}
.wj-shop-product-img{width:min(320px,40%);aspect-ratio:1/1;border-radius:18px}
.wj-shop-product-copy{align-content:start;gap:10px;flex:1}
.wj-shop-product-kicker{font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--shop-accent)}
.wj-shop-product-copy h2{font-size:30px;line-height:1.15;letter-spacing:-.02em}
.wj-shop-product-desc{margin:0;font-size:15.5px;line-height:1.55;color:var(--shop-muted)}
.wj-shop-product .wj-shop-meta{display:flex;flex-wrap:wrap;gap:8px}
.wj-shop-product .wj-shop-meta span{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border-radius:999px;background:var(--shop-bg);color:var(--shop-ink);font-size:13px;font-weight:600}
.wj-shop-product-price{display:flex;align-items:baseline;flex-wrap:wrap;gap:8px;margin-top:6px;padding-top:14px;border-top:1px solid var(--shop-line)}
.wj-shop-product-price small{font-size:13px;color:var(--shop-muted);font-weight:600}
.wj-shop-product-price strong{font-size:30px;font-weight:900;letter-spacing:-.02em;color:var(--shop-accent-ink)}
.wj-shop-product-perks{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px 18px;font-size:13px;color:var(--shop-muted)}
.wj-shop-product-perks li{display:inline-flex;align-items:center;gap:6px}
.wj-shop-product-perks svg{color:var(--shop-accent)}
@media(max-width:720px){.wj-shop-head .wj-public-logo{height:42px;max-width:170px}.wj-shop-product-head{flex-direction:column}.wj-shop-product-img{width:100%;aspect-ratio:16/10}.wj-shop-product-copy h2{font-size:24px}.wj-shop-product-price strong{font-size:26px}}
/* Tarjetas de producto como en las tiendas grandes: imagen arriba, texto y precio debajo. */
.wj-shop-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,230px),1fr));gap:16px}
.wj-shop-card{grid-template-columns:1fr;grid-template-rows:auto 1fr;align-items:stretch;gap:0;padding:0;border-radius:18px}
.wj-shop-card-img{width:100%;height:auto;aspect-ratio:16/10;border-radius:0}
.wj-shop-card-ph{background:linear-gradient(135deg,color-mix(in srgb,var(--shop-accent) 16%,#fff),color-mix(in srgb,var(--shop-accent) 5%,#fff));color:var(--shop-accent)}
.wj-shop-card-ph>.wj-lottie,.wj-shop-card-ph>svg{transform:scale(2.2)}
.wj-shop-card-body{padding:14px 16px 16px;gap:6px;align-content:start}
.wj-shop-card-body strong{font-size:16px}
.wj-shop-card-desc{font-size:13px;-webkit-line-clamp:2}
.wj-shop-card-foot{margin-top:auto;padding-top:6px}
.wj-shop-card-price{font-size:17px}
.wj-shop-card-go{display:none}
.wj-shop-product .wj-shop-meta span svg{flex:0 0 auto;color:var(--shop-accent);stroke:currentColor}
@media(max-width:520px){.wj-shop-grid{grid-template-columns:1fr 1fr;gap:10px}.wj-shop-card-body{padding:10px 12px 12px}.wj-shop-card-body strong{font-size:14px}.wj-shop-card-desc{display:none}.wj-shop-card-price{font-size:15px}.wj-shop-card-foot{flex-direction:column;align-items:flex-start;gap:2px}}

/* Cabecera de la tienda a todo el ancho: logo a la izquierda, carrito y cuenta pegados a la derecha. */
.wj-shop-head-inner{max-width:none;padding:12px clamp(16px,3vw,40px)}
.wj-shop-backweb{display:inline-flex;align-items:center;gap:6px;margin-right:10px;padding:7px 14px 7px 10px;border-radius:999px;border:1px solid rgba(255,255,255,.2);color:rgba(255,255,255,.88);font-size:14px;font-weight:600;text-decoration:none;white-space:nowrap}
.wj-shop-backweb svg{transform:rotate(180deg)}
.wj-shop-backweb:hover{border-color:var(--shop-accent-light);color:rgb(255,255,255)}
.wj-shop-menubtn{display:none}
.wj-shop-mobile-menu{display:none}
@media(max-width:899px){
 .wj-shop-menubtn{display:grid}
 .wj-shop-head-inner{gap:10px}
 .wj-shop-head .wj-public-brand{flex:1;min-width:0}
 .wj-shop-mobile-menu{display:grid;gap:4px;padding:8px clamp(16px,3vw,40px) 16px;border-top:1px solid rgba(255,255,255,.1)}
 .wj-shop-mobile-menu .wj-shop-navlink{display:block;width:100%;text-align:left;padding:13px 12px;font-size:16px}
 .wj-shop-mobile-menu .wj-shop-backweb{justify-self:start;margin:4px 0 8px}
}

/* Pie de la tienda: solo la política de privacidad del centro y, a la derecha, la tarjeta de Uelta. */
.wj-shop-foot-links{align-items:center;font-size:13px}
.wj-shop-foot-links a{text-decoration:underline;text-underline-offset:3px}
.wj-shop-powered-card{margin-left:auto;display:inline-flex;align-items:center;gap:10px;padding:10px 16px;border-radius:12px;background:rgb(255,255,255);box-shadow:0 8px 22px rgba(0,0,0,.18);text-decoration:none!important;transition:transform .12s}
.wj-shop-powered-card:hover{transform:translateY(-2px)}
.wj-shop-powered-card small{font-size:12px;color:rgb(71,85,105);font-weight:600;white-space:nowrap}
.wj-shop-powered-card img{height:22px;width:auto;display:block}
@media(max-width:520px){.wj-shop-powered-card{margin-left:0}}

/* Logo grande en las páginas públicas; al bajar, cabecera más estrecha y logo algo menor. */
.wj-public-head{transition:padding .2s ease}
.wj-public-head .wj-public-logo{height:56px;max-width:240px;transition:height .2s ease}
.wj-shop-head-inner{transition:padding .2s ease}
.wj-shop-head .wj-public-logo{transition:height .2s ease}
html.wj-head-compact .wj-public-head{padding-top:8px;padding-bottom:8px}
html.wj-head-compact .wj-public-head .wj-public-logo{height:38px}
html.wj-head-compact .wj-shop-head-inner{padding-top:6px;padding-bottom:6px}
html.wj-head-compact .wj-shop-head .wj-public-logo{height:40px}
@media(max-width:720px){.wj-public-head .wj-public-logo{height:44px;max-width:180px}html.wj-head-compact .wj-public-head .wj-public-logo,html.wj-head-compact .wj-shop-head .wj-public-logo{height:32px}}

/* Los saltos del menú dejan la sección por debajo de la cabecera fija. */
.wj-shop [id]{scroll-margin-top:96px}

/* Interruptor de estado en listas (p. ej. productos activos). */
.wj-switch-pill{display:inline-flex;align-items:center;gap:8px;padding:4px 12px 4px 4px;border-radius:999px;border:1px solid var(--border);background:var(--surface);color:var(--muted);font:inherit;font-size:13px;font-weight:700;cursor:pointer;white-space:nowrap}
.wj-switch-pill:disabled{opacity:.7;cursor:default}
.wj-switch-track{position:relative;width:34px;height:20px;border-radius:999px;background:var(--surface3);transition:background .15s}
.wj-switch-knob{position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:var(--surface);box-shadow:0 1px 3px rgba(0,0,0,.25);transition:transform .15s}
.wj-switch-pill.on{color:var(--text);border-color:var(--accent)}
.wj-switch-pill.on .wj-switch-track{background:var(--accent)}
.wj-switch-pill.on .wj-switch-knob{transform:translateX(14px)}

/* Productos visibles: asa para arrastrar y fila en movimiento. */
.wj-drag-handle{display:grid;place-items:center;width:32px;height:40px;margin-right:2px;border-radius:12px;color:var(--muted);cursor:grab;touch-action:none;user-select:none;flex:0 0 auto}
.wj-drag-handle:hover{background:var(--surface2);color:var(--text)}
.wj-reservation-list.sorting,.sorting .wj-drag-handle{cursor:grabbing}
.wj-reservation-row.dragging{position:relative;z-index:2;background:var(--surface);border-radius:16px;box-shadow:0 14px 34px rgba(15,23,42,.16);outline:2px solid var(--accent)}
/* Fila con asa: asa · número · producto · quitar (también en el móvil). */
.wj-reservation-row{grid-template-columns:32px 28px minmax(0,1fr) auto;gap:10px}
.wj-reservation-row>div:nth-child(3){min-width:0}
@media(max-width:520px){.wj-reservation-row{grid-template-columns:32px 28px minmax(0,1fr) auto}.wj-reservation-actions{grid-column:auto}}

/* Web de reservas: aviso de dónde salen los datos legales. */
.wj-legal-source{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:12px;border:1px solid var(--border);background:var(--surface2)}
.wj-legal-source>div{flex:1;min-width:0}
.wj-legal-source p{margin:2px 0 0}

/* Categorías: nombre a lo ancho y botones en la misma línea. */
.wj-cat-row{display:flex;align-items:center;gap:10px;flex-wrap:nowrap}
.wj-cat-row .wj-cat-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wj-cat-row .wj-btn{flex:0 0 auto;white-space:nowrap}

/* Productos visibles agrupados como en la tienda. */
.wj-res-group-head{display:flex;align-items:center;gap:8px;margin:14px 0 4px;padding:0 4px;font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.wj-res-group-head:first-child{margin-top:4px}
.wj-res-group-head small{padding:1px 8px;border-radius:999px;background:var(--surface2);font-size:11px;letter-spacing:0}

/* TPV · menú "Más": lista con descripción, más ancha y con aire. */
.wj-tpv-more-pop{width:300px;padding:10px}
.wj-tpv-more-list{display:grid;gap:6px}
.wj-tpv-menu-sec{display:grid;gap:2px;padding-bottom:6px;border-bottom:1px solid color-mix(in srgb,var(--surface) 14%,transparent)}
.wj-tpv-menu-sec>span{padding:6px 10px 4px;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:color-mix(in srgb,var(--surface) 55%,transparent)}
.wj-tpv-menu-item{display:flex;align-items:center;gap:12px;width:100%;padding:10px;border:0;border-radius:12px;background:transparent;color:var(--surface);font:inherit;text-align:left;cursor:pointer}
.wj-tpv-menu-item:hover{background:color-mix(in srgb,var(--surface) 10%,transparent)}
.wj-tpv-menu-item.active{background:var(--accent);color:var(--on-accent)}
.wj-tpv-menu-ico{flex:0 0 36px;width:36px;height:36px;border-radius:12px;display:grid;place-items:center;background:color-mix(in srgb,var(--surface) 12%,transparent)}
.wj-tpv-menu-copy{display:grid;gap:1px;min-width:0}
.wj-tpv-menu-copy strong{font-size:14px;font-weight:700}
.wj-tpv-menu-copy small{font-size:12px;color:color-mix(in srgb,var(--surface) 60%,transparent)}
.wj-tpv-menu-item.active small{color:inherit;opacity:.85}
.wj-tpv-menu-item.danger{margin-top:2px;background:color-mix(in srgb,var(--danger) 16%,transparent)}
.wj-tpv-menu-item.danger:hover{background:color-mix(in srgb,var(--danger) 28%,transparent)}
.wj-tpv-menu-item.danger .wj-tpv-menu-ico{background:color-mix(in srgb,var(--danger) 30%,transparent)}

/* Tarjeta que ocupa toda la fila de la rejilla (antes con style="", bloqueado por la CSP). */
.wj-span-all{grid-column:1/-1}

/* ---------- Tienda: tipografía ---------- */
@font-face{font-family:"Inter Shop";src:url("/vendor/fonts/inter-latin-wght-normal.woff2") format("woff2");font-weight:100 900;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Inter Shop";src:url("/vendor/fonts/inter-latin-ext-wght-normal.woff2") format("woff2");font-weight:100 900;font-style:normal;font-display:swap;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
.wj-shop{font-family:"Inter Shop",system-ui,-apple-system,"Segoe UI",Roboto,"PingFang SC","Microsoft YaHei",sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"cv11","ss03";letter-spacing:-.006em}
.wj-shop button,.wj-shop input,.wj-shop select,.wj-shop textarea{font-family:inherit}
.wj-shop h1,.wj-shop h2,.wj-shop h3{letter-spacing:-.022em}
.wj-shop-hero h1{font-weight:800}
.wj-shop-section>h2,.wj-shop-start h2{font-size:22px;font-weight:700}
.wj-shop-section>h2 small{font-weight:600;color:var(--shop-muted)}
.wj-shop-panel-head h2{font-size:18px;font-weight:700}
.wj-shop-product-copy h2{font-size:28px;font-weight:800;line-height:1.15}
.wj-shop-product-desc{font-size:15px}
.wj-shop-product .wj-shop-meta span{font-weight:600}
.wj-shop-product-price strong{font-weight:800}
.wj-shop-card-body strong{font-size:15.5px;font-weight:700;line-height:1.3}
.wj-shop-card-desc{font-size:13px;line-height:1.45;color:var(--shop-muted)}
.wj-shop-card-price{font-size:16px;font-weight:800;letter-spacing:-.01em}
.wj-shop-card-foot small{font-size:12px;color:var(--shop-muted);font-weight:500}
.wj-shop-start-card strong{font-size:17px;font-weight:700}
.wj-shop-start-card small{font-size:13.5px}
.wj-shop-steps li{font-weight:600}
.wj-shop-badge strong{font-size:14px;font-weight:700}
.wj-shop-badge small{font-size:12px}
.wj-shop-slot strong{font-weight:700}
.wj-shop-day strong{font-weight:800}

/* ---------- Tienda: contacto (en lugar de las tarjetas de cumpleaños y grupos) ---------- */
.wj-shop-contact{display:grid;gap:8px;padding:22px;border-radius:var(--shop-radius);background:linear-gradient(145deg,var(--shop-navy),color-mix(in srgb,var(--shop-accent) 35%,var(--shop-navy)));color:rgb(255,255,255)}
.wj-shop-contact-ico{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:rgba(255,255,255,.14)}
.wj-shop-contact-ico svg,.wj-shop-contact-ico img{filter:brightness(0) invert(1)}
.wj-shop-contact h3{margin:4px 0 0;font-size:19px;font-weight:700}
.wj-shop-contact p{margin:0;font-size:13.5px;line-height:1.5;color:rgba(255,255,255,.78)}
.wj-shop-contact-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}
.wj-shop-contact-btn{flex:1 1 auto;display:inline-flex;align-items:center;justify-content:center;padding:10px 14px;border-radius:12px;background:rgb(255,255,255);color:var(--shop-navy);font-size:14px;font-weight:700;text-decoration:none;transition:transform .12s}
.wj-shop-contact-btn:hover{transform:translateY(-1px)}
.wj-shop-contact-btn.wa{background:rgb(37,211,102);color:rgb(255,255,255)}
.wj-shop-contact-line{font-size:12px;color:rgba(255,255,255,.7);word-break:break-word}

/* ---------- Tienda: complementos al añadir al carrito ---------- */
.wj-shop-upsell{width:min(560px,100%);gap:14px}
.wj-shop-upsell-head{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:14px;background:color-mix(in srgb,var(--shop-accent) 10%,var(--shop-card))}
.wj-shop-upsell-head strong{display:block;font-size:14.5px}
.wj-shop-upsell-head small{display:block;font-size:12.5px;color:var(--shop-muted)}
.wj-shop-upsell-ok{flex:0 0 34px;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--shop-accent);color:var(--shop-on-accent)}
.wj-shop-upsell h3{margin:4px 0 0;font-size:22px;font-weight:800}
.wj-shop-upsell-sub{margin:-6px 0 0;font-size:14px;color:var(--shop-muted);line-height:1.5}
.wj-shop-upsell-list{display:grid;gap:10px}
.wj-shop-upsell-item{display:flex;align-items:center;gap:14px;padding:12px;border-radius:14px;border:1px solid var(--shop-line);transition:border-color .12s,background .12s}
.wj-shop-upsell-item.on{border-color:var(--shop-accent);background:color-mix(in srgb,var(--shop-accent) 6%,var(--shop-card))}
.wj-shop-upsell-img{flex:0 0 64px;width:64px;height:64px;border-radius:12px;overflow:hidden;display:grid;place-items:center;background:var(--shop-bg);color:var(--shop-accent)}
.wj-shop-upsell-img img{width:100%;height:100%;object-fit:cover}
.wj-shop-upsell-copy{flex:1;display:grid;gap:2px;min-width:0}
.wj-shop-upsell-copy strong{font-size:15px}
.wj-shop-upsell-copy small{font-size:12.5px;color:var(--shop-muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.wj-shop-upsell-copy b{font-size:15px;color:var(--shop-accent-ink)}
.wj-shop-upsell-actions{display:flex;gap:10px;margin-top:4px}
.wj-shop-upsell-actions .wj-btn{flex:1;min-height:48px;border-radius:12px;font-weight:700;font-size:15px}
.wj-shop-upsell-add{background:var(--shop-accent);border-color:var(--shop-accent);color:var(--shop-on-accent)}
.wj-shop-upsell-add:disabled{opacity:.5}
@media(max-width:520px){.wj-shop-upsell-actions{flex-direction:column-reverse}.wj-shop-upsell-img{flex-basis:52px;width:52px;height:52px}}
/* Imagen de fondo de la cabecera: llega hasta el borde derecho de la pantalla (antes se
   cortaba en el ancho del contenido y dejaba una franja oscura) y se funde con el texto. */
.wj-shop-hero-art{left:28%;right:calc((100% - 100vw) / 2);-webkit-mask-image:linear-gradient(90deg,transparent 0,rgb(0,0,0) 38%);mask-image:linear-gradient(90deg,transparent 0,rgb(0,0,0) 38%)}
.wj-shop-hero:not(.tall) .wj-shop-hero-art{opacity:.7}
.wj-shop-hero-copy,.wj-shop-sticker{position:relative;z-index:2}
@media(max-width:899px){.wj-shop-hero-art{left:0;right:calc((100% - 100vw) / 2);opacity:.45}}

/* Reserva · plazas clicables (registrar o cambiar persona) y formularios. */
.wj-bk-person.pick{cursor:pointer;transition:border-color .15s,background .15s}
.wj-bk-person.pick:hover,.wj-bk-person.pick:focus-visible{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 5%,var(--surface));outline:none}
.wj-bk-person.empty.pick:hover{color:var(--text)}
.wj-bk-person.empty.pick small{color:var(--accent);font-weight:600}
.wj-bk-new-person{display:grid;gap:10px;padding:14px;border:1px dashed var(--border);border-radius:16px;background:var(--surface2)}
.wj-bk-new-person h4{margin:0;display:flex;align-items:center;gap:6px;font-size:14px}
.wj-bk-forms-count{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 12px;border-radius:999px;border:1px solid var(--border);background:var(--surface);font:inherit;font-weight:800;font-size:14px;cursor:pointer;color:var(--text)}
.wj-bk-forms-count.warn{background:color-mix(in srgb,var(--warning,#f59e0b) 14%,var(--surface));border-color:color-mix(in srgb,var(--warning,#f59e0b) 45%,var(--border));color:color-mix(in srgb,var(--warning,#f59e0b) 70%,var(--text))}
.wj-bk-forms-count.ok{background:var(--success-weak);border-color:color-mix(in srgb,var(--ok) 45%,var(--border));color:var(--ok)}
.wj-bk-forms{display:grid;gap:6px}
.wj-bk-form-row{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--border);border-radius:12px;background:var(--surface);width:100%;text-align:left;font:inherit;color:var(--text);cursor:pointer}
.wj-bk-form-row:hover{border-color:var(--accent)}
.wj-bk-form-row .wj-bk-check{background:color-mix(in srgb,var(--danger) 14%,var(--surface));color:var(--danger)}
.wj-bk-form-row.ok .wj-bk-check{background:var(--success-weak);color:var(--ok)}
.wj-bk-form-link{display:flex;gap:6px;align-items:center;margin-top:8px}
.wj-bk-form-link .wj-input{flex:1;min-width:0;font-size:12px;color:var(--muted)}
.wj-bk-form-detail{display:grid;gap:8px;padding:12px 14px;border:1px solid var(--border);border-radius:16px;background:var(--surface)}
.wj-bk-form-detail.focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 16%,transparent)}
.wj-bk-form-detail header{display:flex;gap:10px;align-items:center}
.wj-bk-form-detail header div{display:grid;gap:1px}
.wj-bk-form-detail header small{color:var(--muted);font-size:12px}
.wj-bk-form-detail .wj-bk-check{background:color-mix(in srgb,var(--danger) 14%,var(--surface));color:var(--danger)}
.wj-bk-form-detail.ok .wj-bk-check{background:var(--success-weak);color:var(--ok)}
.wj-bk-answers{display:grid;gap:0;margin:0;border-top:1px solid var(--border)}
.wj-bk-answers div{display:grid;grid-template-columns:minmax(120px,40%) 1fr;gap:10px;padding:7px 0;border-bottom:1px solid var(--border)}
.wj-bk-answers dt{color:var(--muted);font-size:13px}.wj-bk-answers dd{margin:0;font-weight:600;white-space:pre-wrap;word-break:break-word}
.wj-bk-questions{margin:0;padding-left:18px;color:var(--muted);font-size:13px}
/* Editor de formularios de reserva. */
.wj-bf-q{display:grid;gap:6px;padding:10px;border:1px solid var(--border);border-radius:12px;background:var(--surface2)}
.wj-bf-q-main{display:grid;grid-template-columns:1fr 150px auto auto;gap:8px;align-items:center}
.wj-bf-q-main .wj-check{white-space:nowrap}
.wj-bf-add{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
@media (max-width:640px){.wj-bf-q-main{grid-template-columns:1fr auto}.wj-bf-q-main .wj-input{grid-column:1/-1}}
/* Página pública de formularios de una reserva. */
.wj-bf-page{display:grid;gap:14px}
.wj-bf-page h1{margin:0}
.wj-bf-progress{display:grid;gap:8px;padding:14px 16px;border-radius:16px;background:var(--surface2)}
.wj-bf-progress div{display:flex;align-items:baseline;gap:8px}.wj-bf-progress strong{font-size:22px}
.wj-bf-progress span{color:var(--muted)}
.wj-bf-progress i{display:block;height:8px;border-radius:999px;background:var(--surface3);overflow:hidden}
.wj-bf-progress b{display:block;height:100%;width:0;border-radius:inherit;background:var(--accent);transition:width .3s}
.wj-bf-items{display:grid;gap:8px}
.wj-bf-item{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--border);border-radius:16px;background:var(--surface)}
.wj-bf-item.ok{border-color:color-mix(in srgb,var(--ok) 40%,var(--border))}
.wj-bf-item-ico{flex:0 0 38px;height:38px;border-radius:12px;display:grid;place-items:center;background:var(--surface2);color:var(--muted)}
.wj-bf-item.ok .wj-bf-item-ico{background:var(--success-weak);color:var(--ok)}
.wj-bf-item-copy{flex:1;min-width:0;display:grid;gap:2px}.wj-bf-item-copy small{color:var(--muted);font-size:13px}
.wj-bf-check{align-items:center}
/* Tienda: señal y formularios pendientes. */
.wj-shop-due{display:grid;gap:2px;margin:6px 0 10px;padding:10px 12px;border-radius:12px;background:color-mix(in srgb,var(--shop-accent,var(--accent)) 8%,transparent)}
.wj-shop-due div{display:flex;justify-content:space-between;align-items:baseline;gap:10px}
.wj-shop-due b{font-size:17px;color:var(--shop-accent-ink,var(--accent))}
.wj-shop-due small{color:var(--muted);font-size:12.5px}
.wj-shop-forms-cta{display:flex;align-items:center;gap:12px;margin:-4px 0 12px;padding:12px 14px;border-radius:14px;border:1px solid color-mix(in srgb,var(--shop-accent,var(--accent)) 40%,var(--border));background:color-mix(in srgb,var(--shop-accent,var(--accent)) 7%,var(--surface));color:var(--text);text-decoration:none}
.wj-shop-forms-cta .wj-shop-forms-copy{flex:1;min-width:0;display:grid;gap:2px;text-align:left}
/* El icono también es un <span>: no puede estirarse y aplastar el texto. */
.wj-shop-forms-cta>svg,.wj-shop-forms-cta>.wj-lottie{flex:none}.wj-shop-forms-cta small{color:var(--muted)}
.wj-shop-forms-cta b{font-size:16px}
.wj-shop-forms-cta.ok{border-color:color-mix(in srgb,var(--ok) 40%,var(--border));background:var(--success-weak)}
.wj-shop-forms-chip{display:inline-flex;align-items:center;gap:6px;margin-top:6px;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:700;text-decoration:none;background:color-mix(in srgb,var(--warning,#f59e0b) 16%,transparent);color:color-mix(in srgb,var(--warning,#f59e0b) 75%,var(--text))}
.wj-shop-forms-chip.ok{background:var(--success-weak);color:var(--ok)}
.wj-bf-page .wj-public-note{display:flex;gap:8px;align-items:center}

/* Documento firmado: quién lo ha consultado (queda registrado por contener DNI). */
.wj-doc-accesses{margin-top:14px;padding-top:12px;border-top:1px solid var(--border)}
.wj-doc-accesses h4{display:flex;align-items:center;gap:6px;margin:0 0 8px;font-size:13px;color:var(--muted)}
.wj-doc-accesses ul{list-style:none;margin:0;padding:0;display:grid;gap:4px;max-height:180px;overflow:auto}
.wj-doc-accesses li{display:flex;align-items:baseline;gap:8px;font-size:13px}
.wj-doc-accesses li span{color:var(--muted);flex:1}
.wj-doc-accesses li em{color:var(--muted);font-style:normal;font-size:12px}

/* ------------------------------------------------------------------
   Cuadro del día en Inicio: lo de hoy de un vistazo (ventas, horas punta,
   quién falta por llegar y qué acaba de pasar). */
.wj-board{display:grid;gap:16px;margin-bottom:24px}
.wj-board-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.wj-board-head h2{margin:0;font-size:26px;letter-spacing:-.02em}
.wj-board-head p{margin:4px 0 0;color:var(--muted);font-size:14px}
.wj-board-live{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border-radius:var(--r-pill);background:var(--success-weak);color:var(--ok);font-size:12px;font-weight:700;white-space:nowrap}
.wj-board-live::before{content:"";width:8px;height:8px;border-radius:50%;background:currentColor;animation:wj-board-pulse 2s ease-in-out infinite}
@keyframes wj-board-pulse{0%,100%{opacity:1}50%{opacity:.35}}
@media (prefers-reduced-motion:reduce){.wj-board-live::before{animation:none}}
/* Dos columnas: el día a la izquierda, lo que pide hacer algo a la derecha (unos 400px). Sin columna derecha,
   la izquierda ocupa todo. */
.wj-board-grid{display:grid;grid-template-columns:minmax(0,1fr) 400px;gap:24px;align-items:start}
.wj-board-grid.is-one{grid-template-columns:minmax(0,1fr)}
.wj-board-main,.wj-board-side{display:grid;gap:24px;min-width:0;align-content:start}
.wj-board-panel{padding:24px;border:1px solid var(--hairline,var(--border));border-radius:var(--r-xl);background:var(--surface);min-width:0}
.wj-board-panel-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:16px;min-height:24px}
.wj-board-panel-head h3{margin:0;font-size:18px;letter-spacing:-.01em}
.wj-board-panel-head>span{color:var(--muted);font-size:13px;font-variant-numeric:tabular-nums}
/* Hoy: cuatro cifras separadas por aire, sin tarjetas de colores. */
.wj-board-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px 24px;padding-bottom:24px;border-bottom:1px solid var(--hairline,var(--border))}
.wj-board-kpis:only-child{padding-bottom:0;border-bottom:0}
.wj-board-kpis.is-bookings{grid-template-columns:minmax(0,1fr)}
.wj-board-kpi{display:grid;gap:4px;align-content:start;min-width:0;background:none;color:var(--text)}
.wj-board-kpi span{font-size:13px;font-weight:500;color:var(--muted)}
.wj-board-kpi strong{font-size:22px;font-weight:700;letter-spacing:-.01em;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wj-board-kpi.is-main strong{font-size:28px;font-weight:800;letter-spacing:-.02em}
.wj-board-kpi small{font-size:12px;color:var(--muted)}
.wj-board-hourly{padding-top:24px}
.wj-board-chart-plot{position:relative}
.wj-board-chart{display:block;width:100%;height:150px}
.wj-board-chart-wrap.is-empty .wj-board-chart{height:64px}
.wj-board-chart-empty{position:absolute;inset:0 0 8px;display:grid;place-items:center;margin:0;color:var(--muted);font-size:13px;text-align:center}
.wj-board-bar{fill:var(--surface-sunken,var(--surface2))}
.wj-board-bar.has{fill:var(--primary-weak)}
.wj-board-bar.now{fill:var(--accent)}
.wj-board-chart-hours{display:flex;margin-top:8px}
.wj-board-chart-hours span{flex:1 1 0;min-width:0;text-align:center;font-size:12px;font-variant-numeric:tabular-nums;color:var(--muted)}
.wj-board-chart-hours span.now{color:var(--accent);font-weight:700}
@media(max-width:560px){.wj-board-chart-hours span:nth-child(even){visibility:hidden}}
/* Formas de pago: una fila de bloques con fondo hundido (en el móvil, una lista). */
.wj-board-methods{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;margin-top:16px}
.wj-board-method{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0;padding:12px 16px;border-radius:var(--r-md);background:var(--surface-sunken,var(--surface2))}
.wj-board-method span{font-size:13px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wj-board-method b{font-size:15px;font-variant-numeric:tabular-nums;white-space:nowrap}
.wj-board-trend .wj-board-panel-head{flex-wrap:wrap}
/* Pestañas: ventas de hoy, movimiento y actividad. */
.wj-board-tabs .wj-board-panel-head{flex-wrap:wrap}
.wj-board-tabs .wj-seg{max-width:100%;overflow-x:auto;scrollbar-width:none}
.wj-board-tabs .wj-seg button{white-space:nowrap}
.wj-board-tab-link[hidden],.wj-board-tab-body[hidden]{display:none}
.wj-board-tab-body .wj-activity-list{display:grid;gap:4px}
.wj-board-lines{display:grid}
.wj-board-line{display:grid;grid-template-columns:48px auto minmax(0,1fr) auto;gap:8px 16px;align-items:center;padding:12px 0;border-bottom:1px solid var(--hairline,var(--border));font-size:14px}
.wj-board-line:last-child{border-bottom:0}
.wj-board-line b{font-variant-numeric:tabular-nums}
.wj-board-ref{font-weight:600;font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums}
.wj-board-time{color:var(--muted);font-size:13px;font-variant-numeric:tabular-nums}
.wj-board-detail{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wj-board-feed{list-style:none;margin:0;padding:0;display:grid}
.wj-board-feed li{display:grid;grid-template-columns:24px minmax(0,1fr) auto auto;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid var(--hairline,var(--border));font-size:14px}
.wj-board-feed li:last-child{border-bottom:0}
.wj-board-feed li b{font-variant-numeric:tabular-nums}
.wj-board-feed-ico{width:24px;height:24px;border-radius:var(--r-sm);display:grid;place-items:center;background:var(--surface-sunken,var(--surface2));color:var(--muted)}
.wj-board-feed-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wj-board-feed em{color:var(--muted);font-style:normal;font-size:12px;min-width:40px;text-align:right;font-variant-numeric:tabular-nums}
/* Quedan por llegar: el siguiente destacado y el resto en filas. */
.wj-board-next{display:grid;gap:4px;padding:16px;border-radius:var(--r-lg);background:var(--primary-weak)}
.wj-board-next-when{font-size:12px;font-weight:700;color:var(--accent);font-variant-numeric:tabular-nums}
.wj-board-next strong{font-size:16px}
.wj-board-next small{font-size:13px;color:var(--muted)}
.wj-board-next .wj-board-next-btn{width:100%;min-height:44px;margin-top:12px;justify-content:center;border-radius:var(--r-pill);font-size:14px}
.wj-board-pending{display:grid;margin-top:8px}
.wj-board-pending-row{display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid var(--hairline,var(--border))}
.wj-board-pending-row .wj-board-detail{display:grid;gap:2px;white-space:normal}
.wj-board-pending-row strong{font-size:14px}
.wj-board-pending-row small{color:var(--muted);font-size:12px}
.wj-board-pending-row .wj-btn{min-height:36px;border-radius:var(--r-pill)}
.wj-board-arrivals .wj-help{margin:0}
.wj-board-arrivals-all{display:inline-flex;align-items:center;min-height:44px;margin-top:8px}
/* Mi jornada y Recibir pedidos dentro de la columna derecha: sin una segunda tarjeta dentro. */
.wj-board-jornada .wj-panel-head .wj-kicker{display:none}
.wj-board-jornada>.wj-home-fichaje+.wj-panel-week{margin-top:16px}
.wj-board-jornada .wj-home-fichaje>.wj-fj-clock.is-compact,.wj-board-jornada>.wj-panel-week{padding:0;border:0;border-radius:0;background:none;box-shadow:none}
/* El reloj de fichaje tal cual, solo encajado en 400px: esfera más pequeña y sin repetir el saludo de arriba. */
.wj-board-jornada .wj-fj-clock{gap:16px}
.wj-board-jornada .wj-fj-top{gap:16px}
.wj-board-jornada .wj-fj-clock.is-compact .wj-fj-dial{width:120px;height:120px}
.wj-board-jornada .wj-fj-clock.is-compact .wj-fj-timer{font-size:22px}
.wj-board-jornada .wj-fj-side>h3{display:none}
.wj-board-jornada .wj-fj-btn{min-width:0}
.wj-board-jornada>.wj-panel-week:hover{box-shadow:none}
.wj-board-jornada .wj-week-strip{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.wj-board-jornada .wj-week-day{padding:8px 4px;min-height:0;border-radius:var(--r-md)}
.wj-board-jornada .wj-week-shift{padding:2px}
.wj-board-jornada .wj-week-shift small{display:none}
.wj-board-receive>.wj-panel{margin:0;padding:24px;border:1px solid var(--hairline,var(--border));border-radius:var(--r-xl);background:var(--surface);box-shadow:none}
.wj-board-receive .wj-panel-head .wj-kicker{display:none}
.wj-board-receive .wj-home-rec-row .wj-btn{border-radius:var(--r-pill)}
.wj-home-greeting.is-secondary{margin-top:8px}
@media (max-width:1100px){
 .wj-board-grid{grid-template-columns:minmax(0,1fr)}
 /* Una columna en el orden de uso: mi jornada, quién llega, el día, pedidos, tendencia y pestañas. */
 .wj-board-main,.wj-board-side{display:contents}
 .wj-board-jornada{order:1}.wj-board-arrivals{order:2}.wj-board-today{order:3}.wj-board-receive{order:4}.wj-board-trend{order:5}.wj-board-tabs{order:6}
}
@media (max-width:720px){
 .wj-board{gap:16px}
 .wj-board-grid{gap:16px}
 .wj-board-head h2{font-size:22px}
 .wj-board-panel{padding:16px}
 .wj-board-receive>.wj-panel{padding:16px}
 .wj-board-panel-head h3{font-size:16px}
 .wj-board-kpis{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px 12px;padding-bottom:16px}
 .wj-board-kpi.is-main{grid-column:1/-1}
 .wj-board-kpis.is-bookings .wj-board-kpi{grid-column:auto}
 .wj-board-kpi strong{font-size:18px}
 .wj-board-hourly{padding-top:16px}
 .wj-board-chart{height:110px}
 .wj-board-methods{grid-template-columns:minmax(0,1fr);gap:0;margin-top:12px}
 .wj-board-method{padding:8px 0;border-radius:0;background:none;min-height:0}
 .wj-board-line{grid-template-columns:44px minmax(0,1fr) auto;row-gap:2px}
 .wj-board-line .wj-board-ref{display:none}
 .wj-board-feed li{grid-template-columns:24px minmax(0,1fr) auto}
 .wj-board-feed em{display:none}
 .wj-board-pending-row{grid-template-columns:44px minmax(0,1fr) auto;gap:8px}
 .wj-board-pending-row .wj-btn{min-height:44px;padding:0 12px}
 .wj-board-tabs .wj-seg button{min-height:40px}
 /* Mi jornada en una línea (como el diseño): el tiempo y el estado a la izquierda, los botones a la derecha.
    El reloj completo, la línea del día y la semana siguen en RRHH → Fichaje y en Turnos. */
 .wj-board-jornada .wj-panel-head{margin-bottom:8px}
 .wj-board-jornada .wj-week-strip,.wj-board-jornada>.wj-panel-week .wj-panel-head,.wj-board-jornada .wj-fj-line,.wj-board-jornada .wj-fj-meta,.wj-board-jornada .wj-fj-side>p{display:none}
 .wj-board-jornada>.wj-home-fichaje+.wj-panel-week{margin-top:8px}
 .wj-board-jornada .wj-fj-clock{gap:8px}
 .wj-board-jornada .wj-fj-top{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:12px;text-align:left}
 .wj-board-jornada .wj-fj-clock.is-compact .wj-fj-dial{width:auto;height:auto;flex:1 1 auto;min-width:0}
 .wj-board-jornada .wj-fj-dial svg,.wj-board-jornada .wj-fj-dial-in small{display:none}
 .wj-board-jornada .wj-fj-dial-in{position:static;display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:8px;text-align:left}
 .wj-board-jornada .wj-fj-clock.is-compact .wj-fj-timer{font-size:20px}
 .wj-board-jornada .wj-fj-state{margin-top:0}
 .wj-board-jornada .wj-fj-side{flex:0 0 auto;gap:8px;justify-items:end}
 .wj-board-jornada .wj-fj-actions{flex-wrap:nowrap;justify-content:flex-end;width:auto;gap:8px;margin-top:0}
 .wj-board-jornada .wj-fj-btn{height:44px;padding:0 16px;font-size:14px;gap:8px}
}

/* Barra de progreso de los formularios públicos (en SVG: la CSP no permite estilos en línea). */
.wj-bf-bar{display:block;width:100%;height:8px}
.wj-bf-bar-bg{fill:var(--surface3)}
.wj-bf-bar-fill{fill:var(--accent)}

/* Reservas de hoy: la lista del mostrador, con la llegada de cada cliente. */
.wj-today-sums{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:14px}
.wj-today-sums article{display:grid;gap:2px;padding:12px 14px;border:1px solid var(--border);border-radius:16px;background:var(--surface)}
.wj-today-sums span{font-size:12px;color:var(--muted)}
.wj-today-sums strong{font-size:22px;font-weight:800}
.wj-today-list{display:grid;gap:8px}
.wj-today-row{display:grid;grid-template-columns:62px 1fr auto;gap:12px;align-items:center;padding:12px 14px;border:1px solid var(--border);border-radius:16px;background:var(--surface)}
.wj-today-row.party{border-color:color-mix(in srgb,var(--accent) 40%,var(--border))}
.wj-today-row.in{background:var(--success-weak);border-color:color-mix(in srgb,var(--ok) 35%,var(--border))}
.wj-today-time{font-size:18px;font-weight:800;display:flex;flex-direction:column;line-height:1.15}
.wj-today-time small{font-size:12px;font-weight:600;color:var(--muted)}
.wj-today-copy{display:grid;gap:2px;min-width:0}
.wj-today-copy small{color:var(--muted);font-size:13px}
.wj-today-copy small.wj-text-warn{display:flex;align-items:center;gap:5px}
.wj-today-in{display:inline-flex;align-items:center;gap:6px;color:var(--ok);font-weight:700;font-size:13px}
@media (max-width:640px){
 .wj-today-row{grid-template-columns:52px 1fr;row-gap:8px}
 .wj-today-row>:last-child{grid-column:1/-1;justify-self:start}
}

/* Correos automáticos · modo sencillo: el cliente edita frases y marca qué datos salen. */
.wj-mail-modes{display:flex;gap:8px;margin-bottom:12px}
.wj-mail-simple{display:grid;gap:14px}
.wj-mail-simple-block{display:grid;gap:4px}
.wj-mail-simple-label{font-size:13px;font-weight:700;color:var(--muted)}
.wj-mail-simple-fixed{margin:0;display:flex;align-items:center;gap:10px;padding:9px 12px;border:1px dashed var(--border);border-radius:12px;background:var(--surface2);font-size:14px}
.wj-mail-simple-fixed em{color:var(--muted);font-style:normal}
.wj-mail-rows{display:grid;gap:6px}
.wj-mail-row{display:grid;grid-template-columns:auto minmax(120px,1fr) minmax(0,1.2fr);gap:10px;align-items:center}
.wj-mail-row code{font-size:12px;color:var(--muted);background:var(--surface2);padding:6px 9px;border-radius:8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wj-mail-row .wj-check{margin:0}
.wj-mail-add{margin-top:8px}
@media (max-width:640px){.wj-mail-row{grid-template-columns:auto 1fr}.wj-mail-row code{grid-column:2/-1}}

/* Calendario: escribir la fecha a mano (día/mes/año), además de elegirla. */
.wj-date-typed{display:flex;align-items:center;gap:8px;padding:8px 10px 0}
.wj-date-typed .wj-input{flex:1;min-width:0;height:34px;text-align:center;letter-spacing:.04em}
.wj-date-typed .wj-input.bad{border-color:var(--danger);color:var(--danger)}
.wj-date-typed small{color:var(--muted);font-size:12px;white-space:nowrap}

/* Fecha de nacimiento: se escribe (día/mes/año) y el calendario queda al lado. */
.wj-date.wj-birth{display:flex;align-items:center;gap:8px}
.wj-birth-text{flex:1;min-width:0;letter-spacing:.06em}
.wj-birth-text.bad{border-color:var(--danger);color:var(--danger)}
.wj-birth-cal{flex:0 0 auto}

/* ---------------- Marketing: club de puntos (panel) ---------------- */
.wj-mk-bar{display:flex;align-items:center;gap:14px;padding:14px 16px;margin:0 0 16px;border:1px solid var(--border);border-radius:16px;background:var(--surface)}
.wj-mk-bar.on{border-color:color-mix(in srgb,var(--ok) 40%,var(--border));background:color-mix(in srgb,var(--ok) 6%,var(--surface))}
.wj-mk-bar-ico{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:color-mix(in srgb,var(--accent) 12%,var(--surface));color:var(--accent);flex:none}
.wj-mk-bar.on .wj-mk-bar-ico{background:color-mix(in srgb,var(--ok) 16%,var(--surface));color:var(--ok)}
.wj-mk-bar-copy{display:grid;gap:2px;min-width:0;flex:1}
.wj-mk-bar-copy strong{font-size:16px}
.wj-mk-bar-copy small{color:var(--muted)}
.wj-mk-bar-toggle{display:flex;align-items:center;gap:10px;font-weight:700;font-size:13px;cursor:pointer}
.wj-mk-card{border:1px solid var(--border);border-radius:16px;background:var(--surface);padding:16px 18px;display:grid;gap:14px;min-width:0}
.wj-mk-card>header{display:flex;align-items:flex-start;gap:12px}
.wj-mk-card>header>div{flex:1;min-width:0}
.wj-mk-card h3{margin:0;font-size:16px}
.wj-mk-card>header p{margin:4px 0 0;color:var(--muted);font-size:13px;line-height:1.5}
.wj-mk-ico{display:grid;place-items:center;width:36px;height:36px;border-radius:12px;background:var(--surface2);color:var(--accent);flex:none}
.wj-mk-form{display:grid;gap:14px}
.wj-mk-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
[data-mk-ref].is-off{opacity:.45;pointer-events:none}
.wj-mk-inline{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.wj-mk-num{display:inline-flex;align-items:center;gap:8px}
.wj-mk-num input{width:110px}
.wj-mk-num i{font-style:normal;color:var(--muted);font-size:13px;white-space:nowrap}
.wj-mk-pair{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.wj-mk-pair .wj-select{width:auto}
.wj-mk-guard{display:grid;gap:12px;padding:14px;border-radius:16px;background:var(--surface2)}
.wj-mk-guard>strong{display:flex;align-items:center;gap:6px;font-size:14px}
.wj-mk-always{margin:0;padding-left:18px;display:grid;gap:4px;color:var(--muted);font-size:13px}
.wj-mk-preview{margin:0;padding:10px 12px;border-radius:12px;background:color-mix(in srgb,var(--accent) 7%,var(--surface));color:var(--text);font-size:13px}
.wj-mk-rules{display:grid;gap:8px}
.wj-mk-rule{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.wj-mk-rule .wj-select{flex:1 1 220px;min-width:0}
.wj-mk-setup{margin-bottom:16px}
.wj-mk-steps{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.wj-mk-steps li{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--border);border-radius:12px}
.wj-mk-steps li>span:nth-child(2){flex:1}
.wj-mk-steps li.done{background:color-mix(in srgb,var(--ok) 7%,var(--surface));border-color:color-mix(in srgb,var(--ok) 30%,var(--border))}
.wj-mk-step-n{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--surface2);font-weight:800;font-size:13px;flex:none}
.wj-mk-steps li.done .wj-mk-step-n{background:var(--ok);color:#fff}
.wj-mk-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin-bottom:16px}
.wj-mk-tile{display:grid;gap:3px;padding:14px;border:1px solid var(--border);border-radius:16px;background:var(--surface)}
.wj-mk-tile>span:nth-child(2){color:var(--muted);font-size:13px;font-weight:700}
.wj-mk-tile strong{font-size:24px;font-variant-numeric:tabular-nums}
.wj-mk-tile small{color:var(--muted);font-size:12px}
.wj-mk-tile-ico{color:var(--accent)}
.wj-mk-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px}
.wj-mk-ledger{display:grid}
.wj-mk-ledger-row{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid var(--border)}
.wj-mk-ledger-row:last-child{border-bottom:0}
.wj-mk-ledger-row>div{display:grid;gap:2px;min-width:0}
.wj-mk-ledger-row>div small{color:var(--muted);font-size:12px;overflow-wrap:anywhere}
.wj-mk-ledger-row>span{display:grid;justify-items:end;gap:2px;flex:none}
.wj-mk-ledger-row>span small{color:var(--muted);font-size:12px}
.wj-mk-ledger-row.pending{opacity:.65}
.wj-mk-pts{font-variant-numeric:tabular-nums}
.wj-mk-pts.pos{color:var(--ok)}
.wj-mk-pts.neg{color:var(--danger)}
.wj-mk-code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;padding:2px 7px;border-radius:7px;background:var(--surface2);letter-spacing:.04em}
.wj-mk-rewards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px}
.wj-mk-reward{position:relative;border:1px solid var(--border);border-radius:16px;background:var(--surface)}
.wj-mk-reward.off{opacity:.6}
.wj-mk-reward-main{display:flex;align-items:center;gap:12px;width:100%;padding:12px 44px 12px 12px;border:0;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer;border-radius:16px}
.wj-mk-reward-main:hover{background:var(--surface2)}
.wj-mk-reward-img{display:grid;place-items:center;width:52px;height:52px;border-radius:12px;background:var(--surface2);overflow:hidden;flex:none;color:var(--accent)}
.wj-mk-reward-img img{width:100%;height:100%;object-fit:cover}
.wj-mk-reward-copy{display:grid;gap:3px;min-width:0;flex:1}
.wj-mk-reward-copy small{color:var(--muted);font-size:12px}
.wj-mk-tags{display:flex;flex-wrap:wrap;gap:4px}
.wj-mk-reward-pts{display:grid;justify-items:end;font-size:20px;font-variant-numeric:tabular-nums;flex:none}
.wj-mk-reward-pts small{font-size:11px;color:var(--muted);font-weight:600}
.wj-mk-reward-del{position:absolute;top:8px;right:8px}
.wj-mk-note{margin-top:12px}
.wj-mk-table td small{display:block;color:var(--muted);font-size:12px}
.wj-mk-table .num{text-align:right;font-variant-numeric:tabular-nums}
.wj-mk-table tbody tr{cursor:pointer}
.wj-mk-balance{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:12px}
.wj-mk-balance>div{display:grid;gap:2px;padding:10px 12px;border-radius:12px;background:var(--surface2)}
.wj-mk-balance span{color:var(--muted);font-size:12px}
.wj-mk-balance strong{font-size:20px;font-variant-numeric:tabular-nums}
.wj-mk-facts{margin:0 0 6px}
.wj-mk-sub{margin:16px 0 4px;font-size:14px}
.wj-mk-cust{margin-top:14px}
.wj-mk-version{min-width:220px}
.wj-mk-terms-card{max-width:820px}
.wj-mk-terms-card h2{margin:0;font-size:20px}
.wj-mk-terms-version{color:var(--muted);font-size:13px}
@media(max-width:720px){.wj-mk-grid{grid-template-columns:1fr}.wj-mk-bar{flex-wrap:wrap}}

/* ---------------- Marketing: club de puntos (tienda) ---------------- */
.wj-club{gap:12px}
.wj-club-ico{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:color-mix(in srgb,var(--shop-accent) 12%,#fff);color:var(--shop-accent);flex:none}
.wj-club-ico.sm{width:32px;height:32px;border-radius:12px}
.wj-club-ico.lg{width:52px;height:52px;border-radius:16px}
.wj-club-ico.xl{width:68px;height:68px;border-radius:20px;margin:0 auto}
.wj-club-kicker{font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--shop-accent-ink)}
.wj-club-hero{display:flex;gap:14px;align-items:flex-start}
.wj-club-hero h2{margin:2px 0 4px;font-size:20px}
.wj-club-hero p{margin:0;color:var(--shop-muted);line-height:1.5}
.wj-club-h{margin:6px 0 0;font-size:15px}
.wj-club-note{display:flex;gap:8px;align-items:flex-start;margin:0;padding:10px 12px;border-radius:12px;background:color-mix(in srgb,var(--shop-accent) 8%,#fff);font-size:14px;line-height:1.45}
.wj-club-note svg{flex:none;margin-top:2px;color:var(--shop-accent)}
.wj-club-earn{display:grid;gap:6px}
.wj-club-earn-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--shop-line);border-radius:12px}
.wj-club-earn-item>div{display:grid;gap:1px;flex:1;min-width:0}
.wj-club-earn-item small{color:var(--shop-muted);font-size:13px}
.wj-club-earn-item>b{color:var(--shop-accent-ink);font-variant-numeric:tabular-nums;white-space:nowrap}
.wj-club-rewards{display:grid;gap:8px}
.wj-club-reward{display:flex;align-items:center;gap:12px;padding:10px;border:1px solid var(--shop-line);border-radius:16px;background:#fff}
.wj-club-reward.ok{border-color:color-mix(in srgb,var(--shop-accent) 45%,var(--shop-line));box-shadow:0 4px 14px color-mix(in srgb,var(--shop-accent) 12%,transparent)}
.wj-club-reward-img{display:grid;place-items:center;width:52px;height:52px;border-radius:12px;background:color-mix(in srgb,var(--shop-accent) 8%,#fff);overflow:hidden;flex:none;color:var(--shop-accent)}
.wj-club-reward-img img{width:100%;height:100%;object-fit:cover}
.wj-club-reward-copy{display:grid;gap:2px;flex:1;min-width:0}
.wj-club-reward-copy small{color:var(--shop-muted);font-size:13px}
.wj-club-reward-side{display:grid;justify-items:end;gap:6px;flex:none}
.wj-club-reward-side b{font-size:18px;font-variant-numeric:tabular-nums;display:flex;align-items:baseline;gap:4px}
.wj-club-reward-side b small{font-size:12px;color:var(--shop-muted);font-weight:600}
.is-locked .wj-club-reward,.is-locked .wj-club-earn-item{background:rgb(250,251,253)}
.wj-club-code{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border:1.5px dashed color-mix(in srgb,var(--shop-accent) 45%,var(--shop-line));border-radius:16px;background:color-mix(in srgb,var(--shop-accent) 5%,#fff)}
.wj-club-code>div{display:grid;gap:1px;min-width:0}
.wj-club-code span{font-size:12px;color:var(--shop-muted)}
.wj-club-code strong{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:20px;letter-spacing:.08em;overflow-wrap:anywhere}
.wj-club-code.is-locked strong{color:var(--shop-muted)}
.wj-club-invite{display:grid;gap:10px}
.wj-club-invite p{margin:0;color:var(--shop-muted);font-size:14px}
.wj-club-invite p b{color:var(--shop-ink)}
.wj-club-share{display:flex;flex-wrap:wrap;gap:8px}
.wj-club-stats{color:var(--shop-muted);font-size:13px}
.wj-club-codeform{display:grid;gap:6px}
.wj-club-codeform label{font-size:14px;font-weight:700}
.wj-club-codeform>div{display:flex;gap:8px}
.wj-club-codeform input{flex:1;min-width:0;text-transform:uppercase;letter-spacing:.06em}
.wj-club-balance{display:grid;gap:12px;padding:16px;border-radius:16px;background:linear-gradient(135deg,var(--shop-navy),var(--shop-navy-2));color:#fff}
.wj-club-balance-top{display:grid;gap:2px}
.wj-club-balance .wj-club-kicker{color:rgba(255,255,255,.72)}
.wj-club-balance strong{font-size:34px;line-height:1.1;font-variant-numeric:tabular-nums}
.wj-club-balance strong small{font-size:15px;font-weight:600;color:rgba(255,255,255,.75)}
.wj-club-pending{color:rgba(255,255,255,.75);font-size:13px}
.wj-club-next{display:grid;gap:6px;font-size:13px;color:rgba(255,255,255,.88)}
.wj-club-bar{display:block;height:8px;border-radius:999px;background:rgba(255,255,255,.18);overflow:hidden}
.wj-club-bar i{display:block;height:100%;width:0;border-radius:inherit;background:var(--shop-accent-light);transition:width .5s ease}
.wj-club-vouchers{display:grid;gap:8px}
.wj-club-voucher{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border:1px solid var(--shop-line);border-radius:12px}
.wj-club-voucher>div{display:grid;gap:1px;min-width:0}
.wj-club-voucher small{color:var(--shop-muted);font-size:13px}
.wj-club-voucher code{font-size:14px;font-weight:700;letter-spacing:.05em;padding:4px 8px;border-radius:8px;background:color-mix(in srgb,var(--shop-accent) 9%,#fff);white-space:nowrap}
.wj-club-voucher:not(.active){opacity:.6}
.wj-club-history{border:1px solid var(--shop-line);border-radius:12px;padding:10px 12px}
.wj-club-history summary{cursor:pointer;font-weight:700;font-size:14px}
.wj-club-move{display:flex;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px solid var(--shop-line)}
.wj-club-move:last-child{border-bottom:0}
.wj-club-move>div{display:grid;gap:1px;min-width:0}
.wj-club-move small{color:var(--shop-muted);font-size:12px}
.wj-club-move b{color:rgb(22,128,61);font-variant-numeric:tabular-nums;white-space:nowrap}
.wj-club-move b.neg{color:rgb(185,28,28)}
.wj-club-move.pending{opacity:.6}
.wj-club-legal{margin:0;color:var(--shop-muted);font-size:13px}
.wj-club-legal a{color:inherit}
.wj-club-banner{display:flex;align-items:center;gap:12px;padding:12px 14px;margin-bottom:14px;border-radius:16px;background:linear-gradient(135deg,color-mix(in srgb,var(--shop-accent) 14%,#fff),#fff);border:1px solid color-mix(in srgb,var(--shop-accent) 30%,var(--shop-line))}
.wj-club-banner>div{display:grid;gap:2px;flex:1;min-width:0}
.wj-club-banner small{color:var(--shop-muted)}
.wj-club-banner-ico{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:var(--shop-accent);color:var(--shop-on-accent);flex:none}
.wj-club-banner-x{display:grid;place-items:center;width:28px;height:28px;border:0;border-radius:8px;background:transparent;color:var(--shop-muted);cursor:pointer;flex:none}
.wj-club-aside{display:flex;align-items:center;gap:10px;width:100%;padding:12px 14px;border:1px solid var(--shop-line);border-radius:var(--shop-radius);background:#fff;color:var(--shop-ink);font:inherit;text-align:left;cursor:pointer}
.wj-club-aside>span:nth-child(2){display:grid;gap:2px;flex:1;min-width:0}
.wj-club-aside small{color:var(--shop-muted);font-size:13px}
.wj-club-aside:hover{border-color:color-mix(in srgb,var(--shop-accent) 40%,var(--shop-line))}
.wj-club-signup{display:grid;gap:6px}
.wj-club-signup-invite{display:flex;gap:6px;align-items:center;margin:0;font-size:13.5px}
.wj-club-modal{max-width:460px;display:grid;gap:12px}
.wj-club-modal-lead{margin:0;color:var(--shop-muted);line-height:1.5}
.wj-club-modal-list{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.wj-club-modal-list li{display:flex;align-items:center;gap:10px;font-size:14px}
.wj-club-modal-list b{min-width:54px;padding:3px 8px;border-radius:8px;background:color-mix(in srgb,var(--shop-accent) 10%,#fff);color:var(--shop-accent-ink);text-align:center;font-variant-numeric:tabular-nums}
.wj-club-modal form{display:grid;gap:10px}
.wj-club-modal-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.wj-club-celebrate{text-align:center;justify-items:center}
.wj-club-celebrate h2{margin:4px 0 0;font-size:22px}
.wj-club-celebrate p{margin:0;color:var(--shop-muted);line-height:1.5}
.wj-club-ticket{display:grid;gap:4px;width:100%;padding:14px;border:2px dashed var(--shop-accent);border-radius:16px;background:color-mix(in srgb,var(--shop-accent) 6%,#fff)}
.wj-club-ticket span{font-size:12px;color:var(--shop-muted)}
.wj-club-ticket strong{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:24px;letter-spacing:.08em}
.wj-club-ticket small{color:var(--shop-muted)}
@media(max-width:520px){.wj-club-reward{flex-wrap:wrap}.wj-club-reward-side{width:100%;grid-auto-flow:column;justify-content:space-between;align-items:center}.wj-club-code{flex-wrap:wrap}.wj-club-banner{flex-wrap:wrap}.wj-club-balance strong{font-size:30px}}

/* Mi cuenta en el móvil: un email largo empujaba «Cerrar sesión» fuera de la tarjeta. */
.wj-shop-acct small{overflow-wrap:anywhere}
.wj-shop-acct .wj-btn{flex:none}
.wj-shop .wj-public-note{flex-wrap:wrap}
@media(max-width:520px){.wj-shop-acct{flex-wrap:wrap}.wj-shop-acct .wj-btn{margin-left:auto}}

/* ---- Club de puntos: caducidad, historial, invitación y TPV ---- */
.wj-mk-validity>span{display:flex;align-items:center;gap:5px}
.wj-mk-rule .is-days input{width:90px}
.wj-mk-legal{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;margin:-6px 0 16px;border-radius:16px;border:1px solid color-mix(in srgb,var(--warn) 45%,var(--border));background:var(--warn-weak)}
.wj-mk-legal>div{display:grid;gap:3px;flex:1;min-width:0}
.wj-mk-legal small{color:var(--muted);font-size:13px}
.wj-mk-legal>svg{flex:none;margin-top:2px;color:var(--warn)}
.wj-mk-expiring{display:flex;gap:8px;align-items:flex-start;padding:10px 12px;margin:0 0 10px;border-radius:12px;background:var(--warn-weak);font-size:13px}
.wj-mk-expiring>div{display:grid;gap:2px}
.wj-mk-expiring small{color:var(--muted)}
.wj-mk-hist{display:grid;gap:4px}
.wj-mk-hist .wj-mk-sub{display:flex;align-items:center;gap:6px}
.wj-mk-hist .wj-mk-sub small{color:var(--muted);font-weight:600}
.wj-mk-hist .wj-badge{margin-left:4px;vertical-align:1px}
.wj-mk-invite{display:flex;gap:14px;align-items:flex-start;padding:12px;border:1px dashed var(--border-strong,var(--border));border-radius:14px}
.wj-mk-invite-qr{flex:none;background:#fff;border-radius:10px;padding:6px;line-height:0}
.wj-mk-invite-qr svg{width:128px;height:128px}
.wj-mk-invite-copy{display:grid;gap:6px;min-width:0}
.wj-mk-invite-copy small{color:var(--muted);font-size:12.5px}
.wj-mk-invite-copy .wj-btn{justify-self:start}
.wj-mk-balance{grid-template-columns:repeat(4,minmax(0,1fr))}
.wj-tpv-club{display:flex;align-items:center;gap:6px;margin:6px 0;padding:7px 10px;border-radius:12px;background:color-mix(in srgb,var(--accent) 9%,var(--surface));font-size:13px}
.wj-tpv-club svg{color:var(--accent);flex:none}
.wj-club-expiring{display:flex;gap:8px;align-items:flex-start;padding:8px 10px;border-radius:12px;background:rgba(255,196,0,.16);color:#fff;font-size:13px}
.wj-club-expiring>div{display:grid;gap:2px}
.wj-club-expiring svg{flex:none;margin-top:1px}
.wj-club-history{display:grid;gap:10px;border:0;padding:0}
.wj-club-hist-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.wj-club-hist-head small{color:var(--shop-muted);font-size:13px}
.wj-club-tabs{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;border-radius:12px;background:rgb(241,244,249)}
.wj-club-tabs button{border:0;border-radius:8px;padding:8px 10px;background:transparent;color:var(--shop-muted);font:inherit;font-size:14px;font-weight:700;cursor:pointer}
.wj-club-tabs button small{font-weight:600;opacity:.8}
.wj-club-tabs button.on{background:#fff;color:var(--shop-ink);box-shadow:0 1px 4px rgba(15,23,42,.1)}
.wj-club-moves{display:grid}
.wj-club-move>div small+small{margin-top:1px}
.wj-club-tag{display:inline-block;margin-left:4px;padding:1px 7px;border-radius:999px;font-size:11px;font-weight:700;background:rgb(241,244,249);color:var(--shop-muted);vertical-align:1px}
.wj-club-tag.expiring{background:rgb(255,243,205);color:rgb(146,94,0)}
.wj-club-tag.expired{background:rgb(254,226,226);color:rgb(153,27,27)}
.wj-club-tag.pending{background:color-mix(in srgb,var(--shop-accent) 10%,#fff);color:var(--shop-accent-ink)}
@media(max-width:720px){.wj-mk-balance{grid-template-columns:1fr 1fr}.wj-mk-invite{flex-direction:column}}

/* ---- Cupones de descuento ---- */
.wj-shop-coupon{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;border:1px solid color-mix(in srgb,rgb(22,163,74) 40%,var(--shop-line));background:rgb(240,253,244)}
.wj-shop-coupon .wj-shop-promo-ico{color:rgb(22,128,61)}
.wj-shop-coupon-copy{display:grid;gap:1px;flex:1;min-width:0}
.wj-shop-coupon-copy strong{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.05em}
.wj-shop-coupon-copy small{color:rgb(22,101,52);font-size:12.5px}
.wj-shop-coupon-err{display:block;margin-top:-4px;color:rgb(185,28,28);font-size:12.5px}
.wj-shop-cart-disc dd{color:rgb(22,128,61);font-weight:700}
.wj-shop-checkout-sums{margin:0;padding:10px 12px;border-radius:12px;background:rgb(248,250,252)}
.wj-club-voucher-side{display:flex;align-items:center;gap:8px;flex:none}
.wj-mk-seg{display:inline-flex;gap:2px;padding:3px;border-radius:12px;background:var(--surface2)}
.wj-mk-seg button{border:0;border-radius:8px;padding:6px 12px;background:transparent;color:var(--muted);font:inherit;font-size:13px;font-weight:700;cursor:pointer}
.wj-mk-seg button.on{background:var(--surface);color:var(--text);box-shadow:0 1px 3px rgba(15,23,42,.1)}
.wj-mk-table td code+small{display:block}
.wj-tpv-discount-btn.is-on{background:color-mix(in srgb,var(--ok) 14%,var(--surface));color:var(--ok);border-color:color-mix(in srgb,var(--ok) 40%,var(--border))}

/* ---- Niveles y campañas ---- */
.wj-mk-tier input[data-tier-name]{flex:1 1 160px;min-width:0}
.wj-mk-tier [data-tier-mult]{width:80px}
.wj-mk-segment{display:grid;gap:10px;border:1px solid var(--border);border-radius:16px;padding:12px 14px}
.wj-mk-segment legend{padding:0 6px;font-weight:700}
.wj-mk-audience{display:grid;gap:3px;margin:0;padding:10px 12px;border-radius:12px;background:color-mix(in srgb,var(--accent) 7%,var(--surface));font-size:14px}
.wj-mk-audience small{color:var(--muted)}
.wj-mk-progress{display:grid;gap:6px}
.wj-mk-progress .wj-mk-bar{display:block;height:8px;border-radius:999px;background:var(--surface2);overflow:hidden}
.wj-mk-progress .wj-mk-bar i{display:block;height:100%;width:0;background:var(--accent);transition:width .3s ease}
.wj-mk-mail{white-space:pre-wrap;font:inherit;font-size:13px;margin:0;padding:12px;border-radius:12px;background:var(--surface2)}
.wj-club-tier{display:grid;gap:3px}
.wj-club-tier-badge{justify-self:start;display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:999px;background:rgba(255,255,255,.14);font-size:13px;font-weight:800}
.wj-club-tier small{color:rgba(255,255,255,.78);font-size:13px}
.wj-club-tiers{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px}
.wj-club-tierbox{display:grid;gap:2px;padding:10px 12px;border:1px solid var(--shop-line);border-radius:12px}
.wj-club-tierbox small{color:var(--shop-muted);font-size:12px}
.wj-club-tierbox b{font-size:13px;color:var(--shop-accent-ink)}
.wj-club-tierbox.on{border-color:var(--shop-accent);background:color-mix(in srgb,var(--shop-accent) 7%,#fff)}

/* ---- Marketing: iconos con su color ---- */
.wj-nav-btn[data-route="marketing"]:not(.active) .wj-lottie,.wj-secondary-nav [data-route="marketing"]:not(.active) .wj-lottie{color:var(--tile-pink);background:color-mix(in srgb,var(--tile-pink) 13%,var(--surface))}
.tone-blue{--tone:var(--tile-blue)}.tone-green{--tone:var(--tile-green)}.tone-amber{--tone:var(--tile-amber)}.tone-purple{--tone:var(--tile-purple)}.tone-pink{--tone:var(--tile-pink)}.tone-red{--tone:var(--tile-red)}
.wj-mk-ico[class*="tone-"],.wj-mk-tile-ico[class*="tone-"]{color:var(--tone);background:color-mix(in srgb,var(--tone) 13%,var(--surface))}
.wj-mk-ico{width:40px;height:40px;border-radius:12px}
.wj-mk-tile-ico{display:grid;place-items:center;width:34px;height:34px;border-radius:12px;margin-bottom:4px}
.wj-mk-bar-ico{color:#fff;background:linear-gradient(135deg,var(--tile-pink),var(--tile-purple));box-shadow:0 6px 16px color-mix(in srgb,var(--tile-pink) 30%,transparent)}
.wj-mk-bar.on .wj-mk-bar-ico{color:#fff;background:linear-gradient(135deg,var(--tile-green),#14b8a6)}
.wj-mk-reward-img{color:var(--tile-pink);background:color-mix(in srgb,var(--tile-pink) 11%,var(--surface))}
.wj-mk-reward-img.is-coupon{color:var(--tile-green);background:color-mix(in srgb,var(--tile-green) 12%,var(--surface))}
.wj-secondary-nav button .wj-icon{flex:none}
.wj-club-ico[class*="tone-"]{color:var(--tone);background:color-mix(in srgb,var(--tone) 13%,#fff)}
.wj-club-hero .wj-club-ico.lg,.wj-club-celebrate .wj-club-ico.xl{color:#fff;background:linear-gradient(135deg,#EC4899,#7C5CFF);box-shadow:0 10px 24px rgba(236,72,153,.28)}
.wj-club-aside .wj-club-ico{color:#fff;background:linear-gradient(135deg,#EC4899,#7C5CFF)}
.wj-club-reward-img.is-coupon{color:rgb(22,128,61);background:rgb(236,253,243)}

/* Casillas: toda la frase marca la casilla; solo las últimas palabras, subrayadas, abren el documento. */
.wj-public-check{width:100%;padding:5px 0;line-height:1.45;user-select:none}
.wj-public-check>span{flex:1;min-width:0}
.wj-public-check input{flex:none;width:16px;height:16px;margin-top:1px;cursor:pointer}
.wj-public-check a{color:var(--accent);font-weight:600;text-decoration:underline;text-underline-offset:2px;white-space:nowrap}
.wj-shop .wj-public-check a{color:var(--shop-accent-ink)}
.wj-club-signup-invite{padding:8px 10px;border-radius:10px;background:color-mix(in srgb,var(--shop-accent) 8%,#fff)}

/* ---- Área del cliente: panel propio ---- */
.wj-dash{display:grid;gap:16px;max-width:980px;width:100%;margin:0 auto}
.wj-shop-avatar{overflow:hidden}
.wj-shop-avatar img{width:100%;height:100%;object-fit:cover;display:block}
.wj-shop-avatar.xl{width:64px;height:64px;font-size:22px;flex:none}
.wj-dash-head{display:flex;align-items:center;gap:16px;padding:18px 20px;border-radius:var(--shop-radius);background:linear-gradient(135deg,var(--shop-navy),var(--shop-navy-2));color:#fff}
.wj-dash-head .wj-shop-avatar{background:rgba(255,255,255,.12);color:#fff;box-shadow:0 0 0 3px rgba(255,255,255,.18)}
.wj-dash-who{display:grid;gap:2px;flex:1;min-width:0}
.wj-dash-who small{font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.65)}
.wj-dash-who h1{margin:0;font-size:22px;line-height:1.2;overflow-wrap:anywhere}
.wj-dash-who span{color:rgba(255,255,255,.75);font-size:14px;overflow-wrap:anywhere}
.wj-dash-head .wj-btn{flex:none;background:rgba(255,255,255,.12);color:#fff;border-color:rgba(255,255,255,.28);box-shadow:none}
.wj-dash-head .wj-btn:hover{background:rgba(255,255,255,.22)}
.wj-dash-tabs{display:flex;gap:4px;padding:4px;border-radius:16px;background:#fff;border:1px solid var(--shop-line);overflow-x:auto;scrollbar-width:none}
.wj-dash-tabs button{flex:1 0 auto;display:inline-flex;align-items:center;justify-content:center;gap:7px;border:0;border-radius:12px;padding:10px 14px;background:transparent;color:var(--shop-muted);font:inherit;font-size:14px;font-weight:700;cursor:pointer;white-space:nowrap}
.wj-dash-tabs button.on{background:color-mix(in srgb,var(--shop-accent) 11%,#fff);color:var(--shop-accent-ink)}
.wj-dash-tabs button i{font-style:normal;min-width:19px;height:19px;padding:0 5px;border-radius:999px;background:rgb(220,38,38);color:#fff;font-size:11px;display:grid;place-items:center}
.wj-dash-note{margin:0}
.wj-dash-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px}
.wj-dash-tile{display:grid;gap:3px;justify-items:start;text-align:left;padding:14px 16px;border:1px solid var(--shop-line);border-radius:16px;background:#fff;font:inherit;color:var(--shop-ink);cursor:pointer;transition:border-color .15s,box-shadow .15s}
.wj-dash-tile:hover{border-color:color-mix(in srgb,var(--shop-accent) 40%,var(--shop-line));box-shadow:0 6px 18px rgba(15,23,42,.06)}
.wj-dash-tile-label{color:var(--shop-muted);font-size:13px;font-weight:700;margin-top:6px}
.wj-dash-tile strong{font-size:26px;line-height:1.1;font-variant-numeric:tabular-nums}
.wj-dash-tile small{color:var(--shop-muted);font-size:13px}
.wj-dash-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px;align-items:start}
.wj-dash-empty{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.wj-dash-empty>div{flex:1;min-width:180px}
.wj-dash-empty h2{margin:0 0 2px;font-size:18px}
.wj-dash-empty p{margin:0}
.wj-dash-club{gap:12px}
.wj-dash-club>.wj-btn{justify-self:start}
.wj-dash-alert{display:flex;align-items:center;gap:12px;border-color:rgb(254,202,202);background:rgb(254,242,242)}
.wj-dash-alert>div{display:grid;gap:2px;flex:1;min-width:0}
.wj-dash-alert small{color:var(--shop-muted)}
.wj-dash-head-btn{margin-left:auto}
.wj-dash-card{gap:14px}
.wj-dash-avatar{display:flex;align-items:center;gap:14px}
.wj-dash-avatar .wj-shop-avatar{background:var(--shop-navy);color:#fff}
.wj-dash-avatar-actions{display:grid;gap:4px;justify-items:start}
.wj-dash-avatar-actions label{cursor:pointer}
.wj-dash-avatar-actions small{color:var(--shop-muted);font-size:12px}
.wj-dash-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.wj-dash-form .wj-public-field small{color:var(--shop-muted);font-size:12px}
.wj-dash-span{grid-column:1/-1}
.wj-dash-person-form{grid-template-columns:2fr 1fr 1fr;align-items:end;padding:12px;border-radius:16px;background:rgb(248,250,252)}
.wj-dash-form-actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:8px}
.wj-dash-people{display:grid;gap:8px}
.wj-dash-person{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--shop-line);border-radius:12px}
.wj-dash-person>div{display:grid;gap:1px;flex:1;min-width:0}
.wj-dash-person small{color:var(--shop-muted);font-size:13px}
.wj-dash-doc{display:grid;gap:8px;padding:12px 14px;border:1px solid rgb(254,202,202);border-radius:16px;background:rgb(254,248,248)}
.wj-dash-doc.ok{border-color:var(--shop-line);background:#fff}
.wj-dash-doc-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.wj-dash-doc-people{display:flex;flex-wrap:wrap;gap:6px}
.wj-dash-sign{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border-radius:999px;font-size:12.5px;font-weight:700;background:rgb(254,226,226);color:rgb(153,27,27)}
.wj-dash-sign.ok{background:rgb(220,252,231);color:rgb(22,101,52)}
.wj-dash-signed{display:grid;gap:6px}
.wj-dash-signed-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px solid var(--shop-line)}
.wj-dash-signed-row>div{display:grid;gap:1px;min-width:0}
.wj-dash-signed-row small{color:var(--shop-muted);font-size:12px}
.wj-dash-signed-row.revoked{opacity:.55}
@media(max-width:640px){.wj-dash-head{flex-wrap:wrap}.wj-dash-head .wj-btn{margin-left:auto}.wj-dash-form,.wj-dash-person-form{grid-template-columns:1fr}.wj-dash-tabs button{flex:1 0 auto;padding:9px 11px}}

/* ---- Premios: QR, niveles ---- */
.wj-club-qr{justify-self:center;padding:10px;border-radius:16px;background:#fff;line-height:0}
.wj-club-qr svg{width:200px;height:200px;max-width:60vw;max-height:60vw}
.wj-club-ticket{justify-items:center;text-align:center}
.wj-club-tier-tag{display:inline-flex;align-items:center;gap:4px;justify-self:start;margin-top:3px;padding:2px 8px;border-radius:999px;background:rgb(254,243,199);color:rgb(146,94,0);font-size:12px;font-weight:700}
.wj-club-reward.is-tier{opacity:.8}

/* ---- TPV: premios y descuento ---- */
.wj-tpv-club{flex-wrap:wrap}
.wj-tpv-club>span{flex:1;min-width:0}
.wj-tpv-club-btn{display:inline-flex;align-items:center;gap:6px;margin-left:auto;padding:6px 10px;border:0;border-radius:8px;background:linear-gradient(135deg,#EC4899,#7C5CFF);color:#fff;font:inherit;font-size:13px;font-weight:800;cursor:pointer}
.wj-tpv-club-btn b{min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:#fff;color:rgb(190,24,93);font-size:11px;display:grid;place-items:center}
.wj-tpv-disc{gap:12px}
.wj-tpv-disc-now{display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:12px;background:color-mix(in srgb,var(--ok) 12%,var(--surface));font-size:14px}
.wj-tpv-disc-now span{flex:1}
.wj-tpv-disc-block{display:grid;gap:8px;padding:14px;border:1px solid var(--border);border-radius:16px}
.wj-tpv-disc-block>strong{display:flex;align-items:center;gap:6px;font-size:15px}
.wj-tpv-disc-block>small{color:var(--muted);font-size:13px}
.wj-tpv-disc-row{display:flex;gap:8px;align-items:center}
.wj-tpv-disc-row>.wj-input,.wj-tpv-disc-row .wj-mk-num{flex:1}
.wj-tpv-disc-row .wj-mk-num input{width:100%}
.wj-tpv-disc-chips{display:flex;flex-wrap:wrap;gap:6px}
.wj-tpv-rewards{gap:10px}
.wj-tpv-reward{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--border);border-radius:12px;margin-top:6px}
.wj-tpv-reward>div{display:grid;gap:2px;flex:1;min-width:0}
.wj-tpv-reward small{color:var(--muted);font-size:12px}
.wj-tpv-reward-ico{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;flex:none;color:#fff;background:linear-gradient(135deg,#EC4899,#7C5CFF)}
.wj-tpv-reward-ico.is-coupon{background:linear-gradient(135deg,#22C55E,#14b8a6)}

/* TPV: la ilustración del datáfono en el botón de la barra y en la tarjeta de la caja. */
.wj-tpv-art{display:block;object-fit:contain;pointer-events:none}
.wj-tpv-launcher{background:var(--surface);border-color:var(--border);padding:4px}
.wj-tpv-launcher:hover{background:color-mix(in srgb,var(--cta) 10%,var(--surface));border-color:var(--cta)}
.wj-tpv-launcher .wj-tpv-art{width:28px;height:28px}
.wj-tpv-launch-art{background:linear-gradient(135deg,color-mix(in srgb,var(--cta) 16%,var(--surface)),color-mix(in srgb,var(--cta) 6%,var(--surface)));border:1px solid color-mix(in srgb,var(--cta) 25%,var(--border))}
.wj-tpv-launch-art .wj-tpv-art{width:60px;height:60px}

/* Canje rápido en el TPV. */
.wj-tpv-ticket-head{display:flex;align-items:center;flex-wrap:nowrap}
.wj-tpv-quick-btn{background:linear-gradient(135deg,#EC4899,#7C5CFF);border-color:transparent;color:#fff}
.wj-tpv-quick-btn:hover,.wj-tpv-quick-btn:focus-visible{background:linear-gradient(135deg,#EC4899,#7C5CFF);border-color:transparent;filter:brightness(1.07);color:#fff}
.wj-tpv-quick input{font-size:18px;letter-spacing:.06em;text-transform:uppercase}
.wj-tpv-quick-msg{margin:0;padding:10px 12px;border-radius:12px;font-weight:700;font-size:14px}
.wj-tpv-quick-msg.ok{background:color-mix(in srgb,var(--ok) 14%,var(--surface));color:var(--ok)}
.wj-tpv-quick-msg.ko{background:color-mix(in srgb,var(--danger) 12%,var(--surface));color:var(--danger)}

/* ---- Área del cliente: pestañas pegadas bajo la cabecera ---- */
.wj-dash-sentinel{display:block;height:0;pointer-events:none}
.wj-dash-tabs{position:sticky;top:var(--shop-head-h,64px);z-index:15;margin-top:-16px;transition:box-shadow .15s}
.wj-dash-tabs.is-stuck{box-shadow:0 8px 20px rgba(15,23,42,.10)}
.wj-dash-panel{display:grid;gap:16px;align-content:start;min-height:calc(100vh - var(--shop-head-h,64px) - 72px)}

/* ---- Ventas por hora: dato al acercar el ratón ---- */
.wj-board-chart-plot{cursor:crosshair;touch-action:pan-y}
.wj-board-bar{transition:fill .08s}
.wj-board-bar.is-hover{fill:color-mix(in srgb,var(--accent) 75%,var(--surface3))}
.wj-board-bar.now.is-hover{fill:var(--accent)}
.wj-board-chart-hours span.is-hover{color:var(--text);font-weight:700}
.wj-board-tip{position:absolute;left:0;top:0;z-index:2;pointer-events:none;white-space:nowrap;padding:5px 9px;border-radius:8px;background:var(--text);color:var(--surface);font-size:13px;font-weight:700;font-variant-numeric:tabular-nums;box-shadow:0 6px 16px rgba(15,23,42,.18)}
.wj-board-tip[hidden]{display:none}

/* ---- TPV: botones del ticket en icono; al pasar el ratón se abre su nombre ---- */
.wj-tpv-hb{flex:none;display:inline-flex;align-items:center;justify-content:center;gap:0;height:44px;min-width:44px;padding:0 12px;overflow:hidden;white-space:nowrap;transition:padding .18s ease,gap .18s ease}
.wj-tpv-hb svg{flex:none}
.wj-tpv-hb-label{display:inline-block;max-width:0;opacity:0;overflow:hidden;text-overflow:ellipsis;transition:max-width .22s ease,opacity .16s ease}
.wj-tpv-hb:hover,.wj-tpv-hb:focus-visible{gap:8px;padding:0 15px}
.wj-tpv-hb:hover .wj-tpv-hb-label,.wj-tpv-hb:focus-visible .wj-tpv-hb-label{max-width:190px;opacity:1}
.wj-tpv-hb.has-name{flex:1 1 auto;min-width:0;justify-content:flex-start;gap:8px}
.wj-tpv-hb.has-name .wj-tpv-hb-label{max-width:none;opacity:1;min-width:0}
#tpv-holder{margin-left:auto}

/* ---- TPV: qué entregar al canjear, y de quién es el código ---- */
.wj-tpv-give{display:grid;gap:12px;padding:16px;border-radius:16px;border:2px solid color-mix(in srgb,var(--ok) 55%,var(--border));background:color-mix(in srgb,var(--ok) 8%,var(--surface))}
.wj-tpv-give-main{display:flex;align-items:center;gap:14px}
.wj-tpv-give-qty{flex:none;display:grid;place-items:center;min-width:64px;height:64px;padding:0 10px;border-radius:16px;background:var(--ok);color:#fff;font-size:28px;font-weight:800;font-variant-numeric:tabular-nums}
.wj-tpv-give-main>div{display:grid;gap:2px;min-width:0}
.wj-tpv-give-main small{font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.wj-tpv-give-main strong{font-size:22px;line-height:1.2;overflow-wrap:anywhere}
.wj-tpv-give-main em{display:inline-flex;align-items:center;gap:5px;font-style:normal;font-size:13px;color:var(--muted)}
.wj-tpv-give-owner{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;background:var(--surface);border:1px solid var(--border)}
.wj-tpv-give-avatar{flex:none;display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:linear-gradient(135deg,#EC4899,#7C5CFF);color:#fff;font-weight:800;font-size:14px}
.wj-tpv-give-owner>div{display:grid;gap:1px;flex:1;min-width:0}
.wj-tpv-give-owner small{font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}
.wj-tpv-give-owner strong{font-size:15px;overflow-wrap:anywhere}
.wj-tpv-give-owner span{font-size:13px;color:var(--muted);overflow-wrap:anywhere}
.wj-tpv-give-owner code{flex:none;font-size:12px;color:var(--muted)}
.wj-tpv-give-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;font-size:13px;font-weight:700}
.wj-tpv-give-foot>div{display:flex;gap:6px;flex-wrap:wrap}
.wj-tpv-reward-give{display:inline-flex;align-items:center;gap:4px;justify-self:start;padding:2px 8px;border-radius:999px;background:color-mix(in srgb,var(--ok) 14%,var(--surface));color:var(--text);font-size:12px;font-weight:700}
.wj-row.is-reverted .wj-row-title{text-decoration:line-through;color:var(--muted)}

/* ---- Pruebas gratuitas: aviso arriba, oferta en la pantalla bloqueada y condiciones ---- */
.wj-trial-slot[hidden]{display:none}
.wj-trial-banner{display:flex;align-items:center;gap:12px;padding:9px 14px 9px 22px;background:linear-gradient(90deg,color-mix(in srgb,rgb(124,92,255) 14%,var(--surface)),color-mix(in srgb,var(--accent) 12%,var(--surface)));border-bottom:1px solid color-mix(in srgb,rgb(124,92,255) 25%,var(--border));color:var(--text);font-size:13px}
.wj-trial-banner.has-warn{background:linear-gradient(90deg,color-mix(in srgb,var(--warn) 16%,var(--surface)),color-mix(in srgb,var(--warn) 8%,var(--surface)));border-bottom-color:color-mix(in srgb,var(--warn) 35%,var(--border))}
.wj-trial-rows{display:grid;gap:6px;flex:1;min-width:0}
.wj-trial-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.wj-trial-badge{display:inline-flex;align-items:center;gap:5px;flex:none;padding:3px 9px;border-radius:999px;background:linear-gradient(135deg,rgb(236,72,153),rgb(124,92,255));color:#fff;font-size:12px;font-weight:800;letter-spacing:.02em}
.wj-trial-row.is-warn .wj-trial-badge{background:var(--warn);color:#fff}
.wj-trial-text{flex:1;min-width:200px;line-height:1.45}
.wj-trial-clock{font-variant-numeric:tabular-nums;letter-spacing:.01em}
.wj-trial-asked{display:inline-flex;align-items:center;gap:5px;font-size:13px;font-weight:700;color:var(--ok)}
.wj-trial-close{flex:none;display:grid;place-items:center;width:30px;height:30px;border:0;border-radius:8px;background:transparent;color:var(--muted);cursor:pointer}
.wj-trial-close:hover{background:color-mix(in srgb,var(--text) 8%,transparent);color:var(--text)}
.wj-trial-offers{display:grid;gap:10px;margin:18px 0 4px;text-align:left}
.wj-trial-offer{display:flex;align-items:center;gap:12px;padding:14px;border-radius:16px;border:1px solid color-mix(in srgb,rgb(124,92,255) 30%,var(--border));background:color-mix(in srgb,rgb(124,92,255) 7%,var(--surface))}
.wj-trial-offer.is-warn{border-color:color-mix(in srgb,var(--warn) 40%,var(--border));background:color-mix(in srgb,var(--warn) 9%,var(--surface))}
.wj-trial-offer.is-muted{border-color:var(--border);background:var(--surface2)}
.wj-trial-offer>div{display:grid;gap:2px;flex:1;min-width:0}
.wj-trial-offer strong{font-size:15px;color:var(--text)}
.wj-trial-offer small{font-size:13px;color:var(--muted);line-height:1.45}
.wj-trial-offer .wj-btn{flex:none}
.wj-trial-offer-ico{flex:none;display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:linear-gradient(135deg,rgb(236,72,153),rgb(124,92,255));color:#fff}
.wj-trial-offer.is-warn .wj-trial-offer-ico{background:var(--warn)}
.wj-trial-offer.is-muted .wj-trial-offer-ico{background:var(--surface3);color:var(--muted)}
.wj-trial-terms{display:grid;gap:14px}
.wj-trial-terms-lead{margin:0;font-size:14px;line-height:1.55}
.wj-trial-steps{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.wj-trial-steps li{display:flex;gap:12px;padding:11px 12px;border:1px solid var(--border);border-radius:12px;background:var(--surface)}
.wj-trial-steps li>span{flex:none;display:grid;place-items:center;width:32px;height:32px;border-radius:12px;background:color-mix(in srgb,rgb(124,92,255) 12%,var(--surface));color:rgb(124,92,255)}
.wj-trial-steps li.is-warn{border-color:color-mix(in srgb,var(--danger,var(--warn)) 35%,var(--border));background:color-mix(in srgb,var(--danger,var(--warn)) 6%,var(--surface))}
.wj-trial-steps li.is-warn>span{background:color-mix(in srgb,var(--danger,var(--warn)) 14%,var(--surface));color:var(--danger,var(--warn))}
.wj-trial-steps li>div{display:grid;gap:2px;min-width:0}
.wj-trial-steps strong{font-size:14px}
.wj-trial-steps small{font-size:13px;color:var(--muted);line-height:1.5}
.wj-trial-accept{display:flex;align-items:flex-start;gap:10px;padding:12px;border-radius:12px;background:var(--surface2);cursor:pointer;font-size:14px;font-weight:600}
.wj-trial-accept input{width:18px;height:18px;margin:1px 0 0;flex:none;accent-color:var(--accent)}
.wj-trial-error{margin:0;color:var(--danger,#dc2626);font-size:13px}
.wj-trial-error[hidden]{display:none}
.wj-trial-terms-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.wj-nav-btn.is-trial{position:relative}
.wj-nav-btn.is-trial::after{content:"";position:absolute;top:6px;right:6px;width:8px;height:8px;border-radius:50%;background:linear-gradient(135deg,rgb(236,72,153),rgb(124,92,255));box-shadow:0 0 0 2px var(--surface)}
@media(max-width:640px){.wj-trial-banner{padding:8px 8px 8px 14px;align-items:flex-start}.wj-trial-offer{flex-wrap:wrap}.wj-trial-offer .wj-btn{width:100%}}
.wj-main.has-trial-banner{grid-template-rows:auto var(--top) minmax(0,1fr)!important}
.wj-main.has-trial-banner.wj-has-impersonation{grid-template-rows:auto auto var(--top) minmax(0,1fr)!important}
html[data-layout="mobile"] .wj-main.has-trial-banner{grid-template-rows:auto calc(var(--top) + var(--safe-top)) minmax(0,1fr)!important}
html[data-layout="mobile"] .wj-main.has-trial-banner.wj-has-impersonation{grid-template-rows:auto auto calc(var(--top) + var(--safe-top)) minmax(0,1fr)!important}
@media(max-width:640px){.wj-trial-text{font-size:13px;min-width:0;flex-basis:100%}.wj-trial-row{gap:6px 8px}}

/* ---- Empleo: gestión de ofertas ---- */
.wj-jobs-link{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:16px 18px;margin-bottom:16px;border-radius:16px;border:1px solid color-mix(in srgb,var(--accent) 30%,var(--border));background:color-mix(in srgb,var(--accent) 6%,var(--surface))}
.wj-jobs-link-ico{flex:none;display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:var(--accent);color:rgb(255,255,255)}
.wj-jobs-link>div{display:grid;gap:2px;flex:1;min-width:220px}
.wj-jobs-link small{font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.wj-jobs-link a{font-size:16px;font-weight:800;color:var(--accent);text-decoration:none;overflow-wrap:anywhere}
.wj-jobs-link p{margin:2px 0 0;font-size:13px;color:var(--muted)}
.wj-jobs-link-actions{display:flex;gap:6px;flex-wrap:wrap}
.wj-jobs-link-actions .wj-btn{text-decoration:none}
.wj-jobs-qr{display:grid;justify-items:center;gap:8px;text-align:center}
.wj-jobs-qr-code{padding:12px;border-radius:16px;background:rgb(255,255,255);line-height:0}
.wj-jobs-qr p{margin:0;font-weight:700;overflow-wrap:anywhere}
.wj-jobs-qr small{color:var(--muted)}
.wj-jobs-admin-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:4px 0 10px}
.wj-jobs-admin-bar h3{margin:0;font-size:14px;color:var(--muted);font-weight:700}
.wj-jobs-admin-list{display:grid;gap:10px}
.wj-jobs-admin-card{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:14px 16px;border:1px solid var(--border);border-radius:16px;background:var(--surface)}
.wj-jobs-admin-card.is-live{border-color:color-mix(in srgb,var(--ok) 35%,var(--border))}
.wj-jobs-admin-main{display:grid;gap:4px;flex:1;min-width:240px}
.wj-jobs-admin-title{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.wj-jobs-admin-title strong{font-size:16px}
.wj-jobs-admin-main small{color:var(--muted);font-size:13px}
.wj-jobs-admin-count{justify-self:start;display:inline-flex;align-items:center;gap:5px;margin-top:2px;padding:3px 9px;border:0;border-radius:999px;background:var(--surface2);color:var(--text);font:inherit;font-size:13px;cursor:pointer}
.wj-jobs-admin-count:hover{background:color-mix(in srgb,var(--accent) 12%,var(--surface))}
.wj-jobs-admin-actions{display:flex;gap:6px;flex-wrap:wrap}
.wj-jobs-admin-empty{display:grid;justify-items:center;gap:8px;padding:40px 20px;text-align:center;border:1px dashed var(--border);border-radius:20px;background:var(--surface)}
.wj-jobs-admin-empty>span{display:grid;place-items:center;width:56px;height:56px;border-radius:16px;background:color-mix(in srgb,var(--accent) 12%,var(--surface));color:var(--accent)}
.wj-jobs-admin-empty h3{margin:4px 0 0}
.wj-jobs-admin-empty p{margin:0;max-width:420px;color:var(--muted)}
.wj-jobs-portal-form{display:grid;gap:12px;padding:18px}
.wj-jobs-portal-form .wj-textarea{min-height:96px}
.wj-jobs-portal-actions{display:flex;justify-content:flex-end}
.wj-jobs-centers{display:grid;gap:8px;padding:16px 18px;margin-bottom:16px}
.wj-jobs-centers h3{margin:0}
.wj-jobs-center-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:8px 0;border-top:1px solid var(--border)}
.wj-jobs-center-row a{flex:1;min-width:200px;color:var(--accent);font-weight:700;overflow-wrap:anywhere}

/* ---- Empleo: página pública ---- */
.wj-jobs-body{background:var(--bg)}
.wj-jobs{min-height:100vh;display:flex;flex-direction:column;background:var(--bg);color:var(--text)}
.wj-jobs main{flex:1}
.wj-jobs-wrap{width:100%;max-width:1080px;margin:0 auto;padding-left:clamp(16px,4vw,32px);padding-right:clamp(16px,4vw,32px)}
.wj-jobs-head{position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--surface) 88%,transparent);backdrop-filter:saturate(1.4) blur(12px);border-bottom:1px solid var(--border)}
.wj-jobs-head-inner{display:flex;align-items:center;gap:12px;min-height:64px}
.wj-jobs-brand{display:flex;align-items:center;min-width:0;flex:1;text-decoration:none;color:var(--text)}
.wj-jobs-logo{height:40px;width:auto;max-width:180px;object-fit:contain}
.wj-jobs-logo-text{font-size:20px;font-weight:900;letter-spacing:-.02em}
.wj-jobs-head-tag{display:inline-flex;align-items:center;gap:6px;padding:6px 11px;border-radius:999px;background:color-mix(in srgb,var(--accent) 12%,var(--surface));color:var(--accent);font-size:13px;font-weight:800}
.wj-jobs-head-back{display:inline-flex;align-items:center;gap:4px;color:var(--muted);font-size:14px;font-weight:700;text-decoration:none}
.wj-jobs-head-back:hover{color:var(--text)}
.wj-jobs-head-back svg{transform:rotate(180deg)}
.wj-jobs-hero{position:relative;overflow:hidden;padding:clamp(48px,9vw,96px) 0 clamp(44px,8vw,80px);background:radial-gradient(900px 420px at 85% -10%,rgba(97,223,255,.35),transparent 60%),radial-gradient(700px 380px at -5% 110%,rgba(124,92,255,.38),transparent 60%),linear-gradient(135deg,rgb(11,18,40),rgb(21,32,74));color:rgb(255,255,255)}
.wj-jobs-kicker{display:inline-block;font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:rgb(105,221,255)}
.wj-jobs-hero h1{margin:12px 0 14px;max-width:760px;font-size:clamp(32px,5.4vw,56px);line-height:1.04;letter-spacing:-.035em}
.wj-jobs-hero p{margin:0;max-width:640px;font-size:clamp(15px,1.8vw,18px);line-height:1.6;color:rgba(255,255,255,.78)}
.wj-jobs-hero-row{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-top:28px}
.wj-jobs-hero-cta{display:inline-flex;align-items:center;padding:14px 22px;border-radius:16px;background:rgb(255,255,255);color:rgb(11,18,40);font-weight:900;text-decoration:none;box-shadow:0 12px 30px rgba(0,0,0,.25)}
.wj-jobs-hero-cta:hover{transform:translateY(-1px)}
.wj-jobs-hero-stat{color:rgba(255,255,255,.75);font-size:14px}
.wj-jobs-hero-stat b{color:rgb(255,255,255);font-size:18px}
.wj-jobs-perks{padding-top:40px}
.wj-jobs h2{margin:0 0 16px;font-size:clamp(21px,2.6vw,27px);letter-spacing:-.02em}
.wj-jobs-perks-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
.wj-jobs-perk{display:flex;gap:12px;align-items:flex-start;padding:16px;border:1px solid var(--border);border-radius:16px;background:var(--surface)}
.wj-jobs-perk>span{flex:none;display:grid;place-items:center;width:30px;height:30px;border-radius:8px;background:color-mix(in srgb,var(--ok) 15%,var(--surface));color:var(--ok)}
.wj-jobs-perk p{margin:4px 0 0;font-weight:700;line-height:1.45}
.wj-jobs-list{padding-top:44px;scroll-margin-top:72px}
.wj-jobs-list-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:16px}
.wj-jobs-list-head h2{margin:0}
.wj-jobs-filters{display:flex;gap:6px;flex-wrap:wrap}
.wj-jobs-chip{padding:7px 13px;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--text);font:inherit;font-size:13px;font-weight:700;cursor:pointer}
.wj-jobs-chip.on{background:var(--text);border-color:var(--text);color:var(--bg)}
.wj-jobs-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}
.wj-jobs-card{display:flex;flex-direction:column;gap:10px;padding:20px;border:1px solid var(--border);border-radius:20px;background:var(--surface);color:var(--text);text-decoration:none;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}
.wj-jobs-card:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--accent) 45%,var(--border));box-shadow:0 14px 34px rgba(15,23,42,.10)}
.wj-jobs-card h3{margin:0;font-size:20px;line-height:1.25;letter-spacing:-.015em}
.wj-jobs-card p{margin:0;color:var(--muted);line-height:1.55;font-size:14px}
.wj-jobs-pill{align-self:flex-start;justify-self:start;display:inline-flex;padding:4px 10px;border-radius:999px;background:color-mix(in srgb,var(--accent) 12%,var(--surface));color:var(--accent);font-size:12px;font-weight:800}
.wj-jobs-meta{display:flex;flex-wrap:wrap;gap:6px 14px;color:var(--muted);font-size:13px}
.wj-jobs-meta span{display:inline-flex;align-items:center;gap:5px}
.wj-jobs-card-cta{margin-top:auto;display:inline-flex;align-items:center;gap:4px;padding-top:6px;color:var(--accent);font-weight:800;font-size:14px}
.wj-jobs-card-cta svg{transform:none}
.wj-jobs-empty{display:grid;justify-items:center;gap:8px;padding:44px 20px;text-align:center;border:1px dashed var(--border);border-radius:20px;background:var(--surface)}
.wj-jobs-empty>span{display:grid;place-items:center;width:56px;height:56px;border-radius:16px;background:color-mix(in srgb,var(--accent) 12%,var(--surface));color:var(--accent)}
.wj-jobs-empty h3{margin:4px 0 0}
.wj-jobs-empty p{margin:0;max-width:440px;color:var(--muted)}
.wj-jobs-gone{margin-top:40px}
.wj-jobs-spont{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin:24px 0 8px;padding:22px 24px;border-radius:20px;background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 14%,var(--surface)),color-mix(in srgb,rgb(124,92,255) 12%,var(--surface)));border:1px solid color-mix(in srgb,var(--accent) 25%,var(--border))}
.wj-jobs-spont h3{margin:0 0 4px;font-size:20px}
.wj-jobs-spont p{margin:0;color:var(--muted)}
.wj-jobs-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 22px;border:0;border-radius:16px;background:var(--accent);color:rgb(255,255,255);font:inherit;font-weight:900;font-size:15px;text-decoration:none;cursor:pointer;box-shadow:0 10px 24px color-mix(in srgb,var(--accent) 30%,transparent)}
.wj-jobs-btn:hover{filter:brightness(1.06)}
.wj-jobs-btn:disabled{opacity:.6;cursor:default}
.wj-jobs-btn.ghost{background:var(--surface);color:var(--text);border:1px solid var(--border);box-shadow:none}
.wj-jobs-back{display:inline-flex;align-items:center;gap:4px;margin:24px 0 14px;color:var(--muted);font-weight:700;text-decoration:none;font-size:14px}
.wj-jobs-back svg{transform:rotate(180deg)}
.wj-jobs-detail{padding-bottom:40px}
.wj-jobs-detail-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:28px;align-items:start}
.wj-jobs-detail-main{display:grid;gap:14px}
.wj-jobs-detail-main h1{margin:0;font-size:clamp(28px,4vw,42px);line-height:1.08;letter-spacing:-.03em}
.wj-jobs-lead{margin:4px 0 0;font-size:18px;line-height:1.6}
.wj-jobs-detail-main section{padding-top:14px;border-top:1px solid var(--border)}
.wj-jobs-detail-main section h2{font-size:20px;margin-bottom:10px}
.wj-jobs-detail-main section p{margin:0 0 10px;line-height:1.7;color:var(--text)}
.wj-jobs-checks{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.wj-jobs-checks li{display:flex;gap:10px;align-items:flex-start;line-height:1.55}
.wj-jobs-checks li svg{flex:none;margin-top:3px;color:var(--ok)}
.wj-jobs-checks.is-perks li svg{color:rgb(124,92,255)}
.wj-jobs-side{position:sticky;top:84px}
.wj-jobs-side-card{display:grid;gap:10px;padding:22px;border:1px solid var(--border);border-radius:20px;background:var(--surface);box-shadow:0 18px 40px rgba(15,23,42,.08)}
.wj-jobs-side-card h3{margin:0;font-size:20px}
.wj-jobs-side-card p{margin:0 0 4px;color:var(--muted);line-height:1.5}
.wj-jobs-mobilebar{display:none}
.wj-jobs-apply{padding-bottom:48px}
.wj-jobs-form-card{max-width:760px;padding:clamp(20px,4vw,34px);border:1px solid var(--border);border-radius:24px;background:var(--surface);box-shadow:0 18px 44px rgba(15,23,42,.08)}
.wj-jobs-form-card .wj-jobs-kicker{color:var(--accent)}
.wj-jobs-form-card h1{margin:6px 0 4px;font-size:clamp(24px,3.4vw,32px);letter-spacing:-.025em}
.wj-jobs-form-sub{margin:0 0 20px;color:var(--muted)}
.wj-jobs-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.wj-jobs-span{grid-column:1/-1}
.wj-jobs-field{display:grid;gap:6px;font-size:13px;font-weight:700}
.wj-jobs-field small{font-weight:500;color:var(--muted)}
.wj-jobs-field .wj-input,.wj-jobs-field .wj-select{min-height:46px}
.wj-jobs-field .wj-textarea{min-height:110px}
.wj-jobs-drop{display:flex;align-items:center;gap:14px;padding:18px;border:2px dashed color-mix(in srgb,var(--accent) 45%,var(--border));border-radius:16px;background:color-mix(in srgb,var(--accent) 5%,var(--surface));cursor:pointer}
.wj-jobs-drop:hover{background:color-mix(in srgb,var(--accent) 9%,var(--surface))}
.wj-jobs-drop.has-file{border-style:solid;border-color:color-mix(in srgb,var(--ok) 55%,var(--border));background:color-mix(in srgb,var(--ok) 8%,var(--surface))}
.wj-jobs-drop-ico{flex:none;display:grid;place-items:center;width:46px;height:46px;border-radius:12px;background:var(--accent);color:rgb(255,255,255)}
.wj-jobs-drop.has-file .wj-jobs-drop-ico{background:var(--ok)}
.wj-jobs-drop-text{display:grid;gap:2px;min-width:0}
.wj-jobs-drop-text strong{overflow-wrap:anywhere}
.wj-jobs-drop-text small{color:var(--muted)}
.wj-jobs-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.wj-jobs-error{margin:0;padding:10px 12px;border-radius:12px;background:color-mix(in srgb,var(--danger,rgb(220,38,38)) 10%,var(--surface));color:var(--danger,rgb(220,38,38));font-weight:700;font-size:14px}
.wj-jobs-done{display:grid;justify-items:center;gap:12px;padding:64px 16px;text-align:center}
.wj-jobs-done-mark{display:grid;place-items:center;width:76px;height:76px;border-radius:50%;background:color-mix(in srgb,var(--ok) 15%,var(--surface));color:var(--ok)}
.wj-jobs-done h1{margin:6px 0 0;font-size:clamp(28px,4vw,38px);letter-spacing:-.03em}
.wj-jobs-done p{margin:0 0 10px;max-width:520px;color:var(--muted);line-height:1.6}
.wj-jobs-foot{margin-top:56px;padding:22px 0 calc(22px + env(safe-area-inset-bottom));border-top:1px solid var(--border);color:var(--muted);font-size:13px}
.wj-jobs-foot .wj-jobs-wrap{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.wj-jobs-foot a{color:inherit;font-weight:700}
.wj-jobs-foot-link{border:0;background:none;padding:0;color:inherit;font:inherit;text-decoration:underline;cursor:pointer}
.wj-jobs-privacy p{margin:0 0 10px;line-height:1.6}
@media(max-width:860px){.wj-jobs-detail-grid{grid-template-columns:1fr}.wj-jobs-side{display:none}.wj-jobs-detail{padding-bottom:96px}.wj-jobs-mobilebar{position:fixed;left:0;right:0;bottom:0;z-index:25;display:flex;gap:8px;padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:color-mix(in srgb,var(--surface) 94%,transparent);backdrop-filter:blur(12px);border-top:1px solid var(--border)}.wj-jobs-mobilebar .wj-jobs-btn:first-child{flex:1}}
@media(max-width:600px){.wj-jobs-form{grid-template-columns:1fr}.wj-jobs-head-tag{display:none}.wj-jobs-grid{grid-template-columns:1fr}.wj-jobs-spont .wj-jobs-btn{width:100%}.wj-jobs-logo{height:34px}}
@media(max-width:640px){.wj-jobs-link-actions{width:100%;display:grid;grid-template-columns:1fr 1fr 1.4fr}.wj-jobs-link-actions .wj-btn{width:auto;justify-content:center}}

/* Prueba de Uelta terminada con la sesion abierta */
.wj-platform-expired{min-height:100vh;display:grid;place-items:center;padding:24px;background:var(--bg)}
.wj-platform-expired section{display:grid;justify-items:center;gap:12px;max-width:460px;padding:36px 28px;text-align:center;border:1px solid var(--border);border-radius:24px;background:var(--surface);box-shadow:var(--shadow)}
.wj-platform-expired h1{margin:4px 0 0;font-size:24px;letter-spacing:-.02em}
.wj-platform-expired p{margin:0;color:var(--muted);line-height:1.6}
.wj-platform-expired section>div{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin-top:8px}
.wj-platform-expired .wj-btn{text-decoration:none}
.wj-trial-row.is-platform .wj-trial-badge{background:linear-gradient(135deg,rgb(22,119,255),rgb(124,92,255))}
.wj-trial-row .wj-btn{text-decoration:none}

/* ---- Formularios web ---- */
.wj-webforms{display:grid;gap:10px}
.wj-webform{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:14px 16px;border:1px solid var(--border);border-radius:16px;background:var(--surface)}
.wj-webform.is-live{border-color:color-mix(in srgb,var(--ok) 35%,var(--border))}
.wj-webform-main{display:grid;gap:3px;flex:1;min-width:240px}
.wj-webform-title{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.wj-webform-title strong{font-size:15px}
.wj-webform-main small{color:var(--muted);font-size:12.5px}
.wj-webform-main a{color:var(--accent);font-weight:700;font-size:13px;overflow-wrap:anywhere}
.wj-webform-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.wj-webform-toggle{margin:0 0 0 6px}
.wj-inbox-snippet{color:var(--muted);font-style:italic}
.wj-inbox-text{margin:0;white-space:pre-wrap;line-height:1.6}
.wj-forms-hero{padding:clamp(40px,7vw,72px) 0 clamp(36px,6vw,60px)}
.wj-forms-list{display:grid;gap:12px;padding-top:32px;max-width:760px}
.wj-forms-card{display:flex;align-items:center;gap:16px;padding:18px 20px;border:1px solid var(--border);border-radius:20px;background:var(--surface);color:var(--text);text-decoration:none;transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease}
.wj-forms-card:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--accent) 45%,var(--border));box-shadow:0 14px 34px rgba(15,23,42,.10)}
.wj-forms-card>span:nth-child(2){display:grid;gap:3px;flex:1;min-width:0}
.wj-forms-card strong{font-size:18px}
.wj-forms-card small{color:var(--muted);line-height:1.5;font-size:14px}
.wj-forms-card>svg{flex:none;color:var(--muted)}
.wj-forms-card-ico{flex:none;display:grid;place-items:center;width:48px;height:48px;border-radius:16px;background:color-mix(in srgb,var(--accent) 12%,var(--surface));color:var(--accent)}
.wj-forms-ref{margin:0;font-size:14px}

/* ---- TPV: un solo cuadro para cualquier código ---- */
.wj-tpv-code{display:flex;align-items:center;gap:6px;flex:1;min-width:0;padding:4px 4px 4px 12px;border:1.5px solid color-mix(in srgb,var(--accent) 45%,var(--border));border-radius:16px;background:var(--surface)}
.wj-tpv-code:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent)}
.wj-tpv-code>span{flex:none;display:grid;place-items:center;color:var(--accent)}
.wj-tpv-code .wj-input{flex:1;min-width:0;border:0;background:transparent;box-shadow:none;padding:8px 4px;font-size:14px}
.wj-tpv-code .wj-input:focus{outline:none;box-shadow:none}
.wj-tpv-code .wj-btn{flex:none}
.wj-tpv-code-pick{width:100%;border:1px solid var(--border);background:var(--surface);text-align:left;font:inherit;color:var(--text);cursor:pointer}
.wj-tpv-code-pick:hover{border-color:var(--accent)}
.wj-tpv-code-card{gap:12px}
.wj-tpv-code-big{display:grid;justify-items:center;gap:4px;padding:18px;border-radius:16px;background:var(--surface2);text-align:center}
.wj-tpv-code-big small{color:var(--muted);font-size:13px;letter-spacing:.04em}
.wj-tpv-code-big strong{font-size:28px;letter-spacing:-.02em}
.wj-tpv-code-big span{color:var(--muted);font-size:13px}
/* Bono: una casilla por pase */
.wj-pass-sheet{display:grid;gap:12px}
.wj-pass-head{display:flex;align-items:center;gap:12px}
.wj-pass-head>div{display:grid;gap:2px;flex:1;min-width:0}
.wj-pass-head strong{font-size:16px}
.wj-pass-head small{color:var(--muted);font-size:13px}
.wj-pass-count{flex:none;text-align:right;color:var(--muted);font-size:13px}
.wj-pass-count b{display:block;font-size:26px;line-height:1;color:var(--text)}
.wj-pass-state{margin:0;padding:9px 12px;border-radius:12px;background:var(--surface2);font-weight:700;font-size:13px}
.wj-pass-state.is-warn{background:color-mix(in srgb,var(--warn) 14%,var(--surface));color:var(--text)}
.wj-pass-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:8px}
.wj-pass-tile{display:grid;gap:2px;justify-items:start;padding:12px;border:1.5px solid color-mix(in srgb,var(--ok) 45%,var(--border));border-radius:16px;background:color-mix(in srgb,var(--ok) 7%,var(--surface));color:var(--text);font:inherit;text-align:left;cursor:pointer;transition:transform .12s ease,border-color .12s ease}
.wj-pass-tile:hover:not(:disabled){transform:translateY(-1px);border-color:var(--ok)}
.wj-pass-tile:disabled{cursor:default;opacity:.6}
.wj-pass-tile.is-picked{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--surface));box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 20%,transparent)}
.wj-pass-tile.is-used{border:1.5px dashed var(--border);background:var(--surface2);color:var(--muted);cursor:default}
.wj-pass-tile-n{font-size:11px;font-weight:800;letter-spacing:.06em;color:var(--muted)}
.wj-pass-tile strong{font-size:14px}
.wj-pass-tile small{font-size:12px;color:var(--muted);line-height:1.35}
.wj-pass-confirm{position:sticky;bottom:0;display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:12px;border-radius:16px;background:var(--surface);border:1px solid var(--accent);box-shadow:0 -6px 20px rgba(15,23,42,.08)}
.wj-pass-confirm span{flex:1;min-width:160px;font-weight:700}
.wj-pass-undo{justify-self:start;border:0;background:none;padding:0;color:var(--muted);font:inherit;font-size:13px;text-decoration:underline;cursor:pointer}

/* ---- Tienda: bonos (sin fecha, código y QR) ---- */
.wj-shop-passinfo .wj-shop-list li{line-height:1.5}
.wj-shop-passdone{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin:6px 0 14px;padding:16px;border:1px solid var(--shop-line);border-radius:18px;background:rgb(255,255,255);text-align:left}
.wj-shop-passdone .wj-club-qr{flex:none}
.wj-shop-passdone .wj-club-qr svg{width:150px;height:150px}
.wj-shop-passdone>div:last-child{display:grid;gap:3px;flex:1;min-width:180px}
.wj-shop-passdone span{font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--shop-muted)}
.wj-shop-passdone strong{font-size:24px;letter-spacing:.04em}
.wj-shop-passdone small{color:var(--shop-muted);font-size:13px;line-height:1.45}
.wj-shop-mypasses{display:grid;gap:10px}
.wj-shop-mypass{display:grid;gap:10px;padding:14px;border:1px solid var(--shop-line);border-radius:16px;background:rgb(255,255,255)}
.wj-shop-mypass.spent,.wj-shop-mypass.expired,.wj-shop-mypass.void{opacity:.65}
.wj-shop-mypass-top{display:flex;align-items:flex-start;gap:10px}
.wj-shop-mypass-top>div{display:grid;gap:2px;flex:1;min-width:0}
.wj-shop-mypass-top small{color:var(--shop-muted);font-size:12.5px}
.wj-shop-mypass-count{flex:none;text-align:right;color:var(--shop-muted);font-size:12.5px}
.wj-shop-mypass-count b{display:block;font-size:22px;line-height:1;color:var(--shop-ink)}
.wj-shop-mypass-dots{display:flex;flex-wrap:wrap;gap:5px}
.wj-shop-mypass-dots i{width:14px;height:14px;border-radius:50%;background:var(--shop-accent)}
.wj-shop-mypass-dots i.used{background:var(--shop-line)}
.wj-shop-mypass-last,.wj-shop-mypass-state{color:var(--shop-muted);font-size:12.5px}
.wj-shop-mypass .wj-btn{justify-self:start}

/* ---- Tienda: Horario y cómo llegar ---- */
.wj-shop-info-back{justify-self:start;display:inline-flex;align-items:center;gap:6px;margin-bottom:12px;padding:8px 12px;border:1px solid var(--shop-line);border-radius:999px;background:var(--shop-card);color:var(--shop-ink);font-weight:700;font-size:14px;cursor:pointer}
.wj-shop-info-back:hover{border-color:var(--shop-accent);color:var(--shop-accent-ink)}
.wj-shop-info-head{margin:4px 0 16px}
.wj-shop-info-head h1{margin:0;font-size:clamp(24px,4vw,32px);letter-spacing:-.02em}
.wj-shop-info-head p{margin:4px 0 0;color:var(--shop-muted)}
.wj-shop-content>.wj-shop-panel+.wj-shop-panel{margin-top:16px}
.wj-shop-hoursbox .wj-shop-panel-head{flex-wrap:wrap}
.wj-shop-openbadge{margin-left:auto;display:inline-flex;align-items:center;gap:7px;padding:6px 12px;border-radius:999px;background:rgb(254,242,242);color:rgb(185,28,28);font-weight:800;font-size:13.5px}
.wj-shop-openbadge i{width:8px;height:8px;border-radius:50%;background:currentColor}
.wj-shop-openbadge small{font-weight:600;opacity:.85}
.wj-shop-openbadge small::before{content:"·";margin-right:6px}
.wj-shop-openbadge.open{background:rgb(236,253,243);color:rgb(4,120,87)}
.wj-shop-openbadge.open i{animation:wj-shop-pulse 1.8s ease-in-out infinite}
@keyframes wj-shop-pulse{0%,100%{box-shadow:0 0 0 0 color-mix(in srgb,currentColor 45%,transparent)}50%{box-shadow:0 0 0 6px transparent}}
.wj-shop-hours-note{margin:0;display:flex;gap:8px;align-items:center;padding:10px 12px;border-radius:12px;background:rgb(255,247,230);color:rgb(146,64,14);font-weight:600;font-size:14px}
.wj-shop-week{display:grid;border:1px solid var(--shop-line);border-radius:14px;overflow:hidden}
.wj-shop-week-row{display:flex;justify-content:space-between;gap:12px;padding:11px 14px;font-size:15px}
.wj-shop-week-row+.wj-shop-week-row{border-top:1px solid var(--shop-line)}
.wj-shop-week-row strong{display:flex;align-items:center;gap:8px}
.wj-shop-week-row em{font-style:normal;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;padding:2px 7px;border-radius:999px;background:var(--shop-accent);color:var(--shop-on-accent)}
.wj-shop-week-row span{color:var(--shop-ink);font-variant-numeric:tabular-nums;text-align:right}
.wj-shop-week-row.closed span{color:var(--shop-muted)}
.wj-shop-week-row.today{background:color-mix(in srgb,var(--shop-accent) 8%,var(--shop-card))}
.wj-shop-specials{display:grid;gap:8px}
.wj-shop-specials h3{margin:4px 0 0;font-size:15px}
.wj-shop-special{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:10px 12px;border-radius:12px;background:var(--shop-bg);font-size:14px}
.wj-shop-special span{display:inline-flex;align-items:center;gap:6px;color:var(--shop-muted)}
.wj-shop-special span b{color:var(--shop-ink)}
.wj-shop-special.closed strong{color:rgb(185,28,28)}
.wj-shop-where-addr{margin:0;display:flex;gap:8px;align-items:flex-start;font-size:16px;font-weight:600}
.wj-shop-where-addr svg{flex:none;margin-top:3px;color:var(--shop-accent)}
.wj-shop-where-actions,.wj-shop-rating-actions{display:flex;flex-wrap:wrap;gap:8px}
.wj-shop-where-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:11px 16px;border-radius:12px;border:1px solid var(--shop-line);background:var(--shop-card);color:var(--shop-ink);font-weight:700;font-size:14.5px;text-decoration:none;transition:transform .12s,border-color .12s}
.wj-shop-where-btn:hover{transform:translateY(-1px);border-color:var(--shop-accent)}
.wj-shop-where-btn.primary{background:var(--shop-accent);border-color:var(--shop-accent);color:var(--shop-on-accent)}
.wj-shop-where-hint{margin:0;color:var(--shop-muted);font-size:13px}
.wj-shop-stars{position:relative;display:inline-block;line-height:1;font-size:14px;letter-spacing:1px;vertical-align:-1px}
.wj-shop-stars.lg{font-size:22px}
.wj-shop-stars-base{color:rgb(218,224,233)}
.wj-shop-stars-fill{position:absolute;inset:0 auto 0 0;overflow:hidden;white-space:nowrap;color:rgb(251,188,4);width:0}
.wj-shop-rating{display:flex;flex-wrap:wrap;align-items:center;gap:14px 18px}
.wj-shop-rating>strong{font-size:48px;line-height:1;letter-spacing:-.03em}
.wj-shop-rating>div:not(.wj-shop-rating-actions){display:grid;gap:4px}
.wj-shop-rating small{color:var(--shop-muted);font-size:13.5px}
.wj-shop-rating-actions{margin-left:auto}
.wj-shop-reviewlist{display:grid;gap:10px}
.wj-shop-review{padding:14px;border-radius:14px;background:var(--shop-bg);display:grid;gap:8px}
.wj-shop-review header{display:flex;gap:10px;align-items:center}
.wj-shop-review header div{display:grid;gap:2px}
.wj-shop-review header a,.wj-shop-review header b{color:var(--shop-ink);font-weight:800;text-decoration:none}
.wj-shop-review header small{color:var(--shop-muted);font-size:12.5px}
.wj-shop-review-av{flex:none;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:color-mix(in srgb,var(--shop-accent) 16%,var(--shop-card));color:var(--shop-accent-ink);font-weight:800}
.wj-shop-review p{margin:0;font-size:14.5px;line-height:1.55;display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden}
.wj-shop-reviews-src{margin:0;color:var(--shop-muted);font-size:12px;text-align:right}
@media(max-width:600px){.wj-shop-openbadge{margin-left:0}.wj-shop-where-btn{flex:1 1 100%}.wj-shop-rating-actions{margin-left:0;width:100%}.wj-shop-rating-actions .wj-shop-where-btn{flex:1 1 0}}
/* Centros: enlazar la ficha de Google */
.wj-gplace-current{display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:12px;background:color-mix(in srgb,var(--ok,rgb(16,185,129)) 10%,var(--surface));font-size:14px}
.wj-gplace-current span{flex:1;min-width:0;overflow-wrap:anywhere}
.wj-gplace-search{display:flex;gap:8px}
.wj-gplace-search .wj-input{flex:1;min-width:0}
.wj-gplace-results{display:grid;gap:8px}
.wj-gplace-row{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--border);border-radius:12px}
.wj-gplace-row.on{border-color:var(--accent)}
.wj-gplace-row div{flex:1;min-width:0;display:grid;gap:2px}
.wj-gplace-row small{color:var(--muted)}
.wj-gplace-rating{color:var(--text)!important;font-weight:700}
.wj-gplace-manual summary{cursor:pointer;font-weight:700;color:var(--muted)}
.wj-gplace-manual[open] summary{margin-bottom:8px}
@media(max-width:600px){.wj-gplace-search{flex-direction:column}}

/* ---- Tienda: pase de visitas (estilo pase de temporada) ---- */
.wj-vpass{display:grid;gap:14px;margin:6px 0 4px;padding:18px;border-radius:20px;color:rgb(255,255,255);background:radial-gradient(120% 140% at 100% 0%,color-mix(in srgb,var(--shop-accent) 55%,transparent),transparent 60%),linear-gradient(150deg,var(--shop-navy),var(--shop-navy-2));box-shadow:0 18px 40px rgba(8,17,38,.25);overflow:hidden}
.wj-vpass-head{display:flex;gap:14px;align-items:flex-start;justify-content:space-between}
.wj-vpass-kicker{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:rgb(253,224,71)}
.wj-vpass-head h3{margin:6px 0 4px;font-size:20px;line-height:1.25}
.wj-vpass-head p{margin:0;font-size:14px;color:rgba(255,255,255,.75)}
.wj-vpass-count{flex:none;display:grid;justify-items:center;padding:8px 14px;border-radius:16px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18)}
.wj-vpass-count b{font-size:30px;line-height:1;letter-spacing:-.03em}
.wj-vpass-count small{font-size:12px;color:rgba(255,255,255,.7)}
.wj-vpass-bar{height:10px;border-radius:999px;background:rgba(255,255,255,.14);overflow:hidden}
.wj-vpass-bar i{display:block;height:100%;width:0;border-radius:inherit;background:linear-gradient(90deg,rgb(253,224,71),rgb(251,146,60));box-shadow:0 0 12px rgba(253,224,71,.6);transition:width .6s ease}
.wj-vpass-stamps{display:flex;flex-wrap:wrap;gap:6px}
.wj-vpass-stamps span{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;border:1.5px dashed rgba(255,255,255,.3);color:rgba(255,255,255,.55)}
.wj-vpass-stamps span.on{border:0;background:rgb(253,224,71);color:var(--shop-navy)}
.wj-vpass-stamps span.is-goal{border-style:solid;border-color:rgb(251,146,60);color:rgb(251,146,60)}
.wj-vpass-stamps span.is-goal.on{background:rgb(251,146,60);color:rgb(255,255,255)}
.wj-vpass-tiers{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(132px,1fr);gap:10px;overflow-x:auto;padding:4px 2px 8px;scroll-snap-type:x mandatory}
.wj-vpass-tier{scroll-snap-align:start;display:grid;justify-items:center;align-content:start;gap:7px;text-align:center;padding:12px 10px;border-radius:16px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);min-height:168px}
.wj-vpass-lvl{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:rgba(255,255,255,.7)}
.wj-vpass-art{width:52px;height:52px;border-radius:16px;display:grid;place-items:center;background:rgba(255,255,255,.08);color:rgba(255,255,255,.5)}
.wj-vpass-tier strong{font-size:14px;line-height:1.3}
.wj-vpass-tier small{font-size:12px;color:rgba(255,255,255,.6)}
.wj-vpass-tier.is-locked{opacity:.75}
.wj-vpass-tier.is-locked strong{color:rgba(255,255,255,.8)}
.wj-vpass-tier.is-unlocked{background:linear-gradient(160deg,rgba(253,224,71,.22),rgba(251,146,60,.12));border-color:rgb(253,224,71);box-shadow:0 0 0 1px rgba(253,224,71,.35),0 8px 22px rgba(251,146,60,.25);animation:wj-vpass-glow 2.2s ease-in-out infinite}
.wj-vpass-tier.is-unlocked .wj-vpass-art{background:linear-gradient(145deg,rgb(253,224,71),rgb(251,146,60));color:var(--shop-navy)}
.wj-vpass-tier.is-unlocked .wj-vpass-lvl{color:rgb(253,224,71)}
.wj-vpass-tier.is-claimed .wj-vpass-art{background:rgba(52,211,153,.18);color:rgb(110,231,183)}
.wj-vpass-tier.is-claimed .wj-vpass-lvl{color:rgb(110,231,183)}
.wj-vpass-tier .wj-btn{margin-top:auto}
.wj-vpass-tier .wj-btn:not(.primary){background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.2);color:rgb(255,255,255)}
@keyframes wj-vpass-glow{0%,100%{box-shadow:0 0 0 1px rgba(253,224,71,.35),0 8px 22px rgba(251,146,60,.2)}50%{box-shadow:0 0 0 1px rgba(253,224,71,.7),0 8px 28px rgba(251,146,60,.45)}}
@media(prefers-reduced-motion:reduce){.wj-vpass-tier.is-unlocked{animation:none}}
.wj-vpass-old{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px;border-radius:12px;background:rgba(255,255,255,.08);font-size:14px}
.wj-vpass-foot{margin:0;font-size:12px;color:rgba(255,255,255,.6)}
.wj-vpass.is-preview .wj-vpass-tier{opacity:.9}
@media(max-width:520px){.wj-vpass{padding:14px;border-radius:16px}.wj-vpass-head h3{font-size:18px}.wj-vpass-tiers{grid-auto-columns:minmax(120px,42%)}}

/* ---- Panel: pase de visitas ---- */
.wj-vadmin{display:grid;gap:14px}
.wj-vadmin-form{display:grid;gap:10px;max-width:560px}
.wj-vadmin-kpis{display:flex;flex-wrap:wrap;gap:10px}
.wj-vadmin-kpis span{display:grid;gap:2px;padding:10px 14px;border-radius:12px;background:var(--surface-2,var(--bg));font-size:13px;color:var(--muted)}
.wj-vadmin-kpis b{font-size:20px;color:var(--text)}
.wj-vadmin-track{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px;margin:12px 0}
.wj-vadmin-tier{position:relative;display:flex;border:1px solid var(--border);border-radius:16px;background:var(--surface)}
.wj-vadmin-tier>.wj-btn{position:absolute;top:8px;right:8px}
.wj-vadmin-main{flex:1;display:grid;justify-items:start;gap:6px;padding:14px;border:0;background:none;text-align:left;color:inherit;cursor:pointer;border-radius:inherit}
.wj-vadmin-main:hover{background:color-mix(in srgb,var(--accent) 5%,transparent)}
.wj-vadmin-lvl{display:flex;align-items:baseline;gap:4px;font-size:26px;font-weight:900;letter-spacing:-.02em;color:var(--accent)}
.wj-vadmin-lvl small{font-size:12px;font-weight:700;color:var(--muted)}
.wj-vadmin-ico{width:36px;height:36px;border-radius:12px;display:grid;place-items:center;background:color-mix(in srgb,var(--accent) 12%,var(--surface));color:var(--accent)}
.wj-vadmin-main small{color:var(--muted)}

/* ---- Plan y facturación (tabla de precios) ---- */
.wj-plans{display:grid;gap:18px}
.wj-plan-current{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:16px;background:color-mix(in srgb,rgb(16,185,129) 10%,var(--surface));border:1px solid color-mix(in srgb,rgb(16,185,129) 30%,transparent);font-size:14px}
.wj-plan-current.warn{background:color-mix(in srgb,rgb(245,158,11) 12%,var(--surface));border-color:color-mix(in srgb,rgb(245,158,11) 35%,transparent)}
.wj-plan-current svg{flex:none;margin-top:2px}
.wj-plan-toggle{justify-self:center;display:inline-flex;padding:4px;border-radius:999px;background:var(--surface);border:1px solid var(--border);box-shadow:0 4px 14px rgba(15,23,42,.05)}
.wj-plan-toggle button{border:0;background:none;padding:9px 20px;border-radius:999px;font:inherit;font-weight:700;color:var(--muted);cursor:pointer;display:inline-flex;align-items:center;gap:8px}
.wj-plan-toggle button.on{background:var(--accent);color:rgb(255,255,255)}
.wj-plan-toggle em{font-style:normal;font-size:12px;font-weight:800;padding:2px 7px;border-radius:999px;background:rgb(16,185,129);color:rgb(255,255,255)}
.wj-plan-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:stretch}
.wj-plan-card{position:relative;display:flex;flex-direction:column;gap:10px;padding:22px 20px;border-radius:20px;background:var(--surface);border:1px solid var(--border);box-shadow:0 8px 24px rgba(15,23,42,.05)}
.wj-plan-card.is-featured{border:2px solid var(--accent);box-shadow:0 18px 40px color-mix(in srgb,var(--accent) 22%,transparent);transform:translateY(-6px)}
.wj-plan-card.is-current{border-color:rgb(16,185,129)}
.wj-plan-ribbon{position:absolute;top:-12px;left:50%;transform:translateX(-50%);padding:4px 12px;border-radius:999px;background:var(--accent);color:rgb(255,255,255);font-size:12px;font-weight:800;white-space:nowrap}
.wj-plan-card h3{margin:0;font-size:20px}
.wj-plan-tagline{margin:0;color:var(--muted);font-size:14px;min-height:38px}
.wj-plan-price{display:flex;align-items:baseline;gap:4px}
.wj-plan-price b{font-size:40px;line-height:1;letter-spacing:-.03em}
.wj-plan-price span{color:var(--muted);font-weight:600}
.wj-plan-billed{color:var(--muted);font-size:13px;min-height:18px}
.wj-plan-billed s{opacity:.7}
.wj-plan-cta{width:100%;justify-content:center;padding:12px}
.wj-plan-incl{border-top:1px solid var(--border);padding-top:12px;display:grid;gap:8px}
.wj-plan-incl>strong{font-size:13px}
.wj-plan-incl ul{list-style:none;margin:0;padding:0;display:grid;gap:9px}
.wj-plan-incl li{display:flex;gap:8px;align-items:flex-start}
.wj-plan-incl li svg{flex:none;margin-top:3px;color:rgb(16,185,129)}
.wj-plan-incl li span{display:grid;gap:1px;font-size:14px}
.wj-plan-incl li small{color:var(--muted);font-size:13px}
.wj-plan-always{display:flex;flex-wrap:wrap;gap:8px 18px;align-items:center;justify-content:center;font-size:14px;color:var(--muted)}
.wj-plan-always strong{color:var(--text)}
.wj-plan-always span{display:inline-flex;gap:6px;align-items:center}
.wj-plan-always svg{color:rgb(16,185,129)}
.wj-plan-diffs{display:grid;gap:12px}
.wj-plan-diffs h3,.wj-plan-compare h3{margin:0}
.wj-plan-diff h4{margin:0 0 6px;display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}
.wj-plan-diff h4 small{color:var(--accent);font-weight:800}
.wj-plan-diff ul{margin:0;padding-left:18px;display:grid;gap:5px;font-size:14px}
.wj-plan-table-wrap{overflow-x:auto;margin-top:8px}
.wj-plan-table{width:100%;border-collapse:collapse;min-width:560px;font-size:14px}
.wj-plan-table thead th{position:sticky;top:0;background:var(--surface);padding:10px 8px;text-align:center;font-size:14px;border-bottom:2px solid var(--border)}
.wj-plan-table thead th small{display:block;color:var(--muted);font-weight:600;font-size:12px}
.wj-plan-table tbody th{text-align:left;font-weight:600;padding:8px;width:46%}
.wj-plan-table td{text-align:center;padding:8px;border-bottom:1px solid var(--border)}
.wj-plan-table tbody tr:not(.wj-plan-grp) th{border-bottom:1px solid var(--border)}
.wj-plan-grp th{padding:16px 8px 6px!important;font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.wj-plan-table details summary{cursor:pointer;display:flex;align-items:center;gap:8px;list-style:none}
.wj-plan-table details summary::-webkit-details-marker{display:none}
.wj-plan-table details ul{margin:6px 0 2px 24px;padding-left:14px;color:var(--muted);font-weight:500;font-size:13px;display:grid;gap:3px}
.wj-plan-yes{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;background:color-mix(in srgb,rgb(16,185,129) 14%,transparent);color:rgb(5,150,105)}
.wj-plan-no{color:var(--muted)}
.wj-plan-contact{display:grid;grid-template-columns:1fr 1.4fr;gap:16px;align-items:start}
.wj-plan-contact h3{margin:0 0 4px;display:flex;gap:8px;align-items:center}
.wj-plan-contact p{margin:0;color:var(--muted)}
.wj-plan-contact-row{display:flex;gap:8px}
.wj-plan-contact-row .wj-input{flex:1;min-width:0}
.wj-plan-pay{display:grid;gap:14px}
.wj-plan-sum{margin:0;display:grid;gap:6px;padding:12px 14px;border-radius:16px;background:var(--surface-2,var(--bg))}
.wj-plan-sum div{display:flex;justify-content:space-between;gap:10px}
.wj-plan-sum dt{color:var(--muted)}
.wj-plan-sum dd{margin:0;font-weight:700}
.wj-plan-sum .total{border-top:1px solid var(--border);padding-top:8px;font-size:16px}
.wj-plan-methods{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px}
.wj-plan-method{display:grid;gap:4px;justify-items:start;text-align:left;padding:14px;border-radius:16px;border:1.5px solid var(--border);background:var(--surface);color:inherit;font:inherit;cursor:pointer}
.wj-plan-method:hover{border-color:var(--accent)}
.wj-plan-method span{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:color-mix(in srgb,var(--accent) 12%,var(--surface));color:var(--accent)}
.wj-plan-method small{color:var(--muted);font-size:13px}
.wj-plan-bank{display:grid;gap:8px;padding:14px;border-radius:16px;border:1px dashed var(--accent)}
.wj-plan-bank h4{margin:0}
.wj-plan-bank dl{margin:0;display:grid;gap:6px}
.wj-plan-bank dl div{display:flex;justify-content:space-between;gap:10px;align-items:center;flex-wrap:wrap}
.wj-plan-bank dt{color:var(--muted)}
.wj-plan-bank dd{margin:0;display:flex;gap:6px;align-items:center}
@media(max-width:900px){.wj-plan-grid{grid-template-columns:1fr}.wj-plan-card.is-featured{transform:none;order:-1}.wj-plan-contact{grid-template-columns:1fr}}
@media(max-width:520px){.wj-plan-contact-row{flex-direction:column}.wj-plan-toggle button{padding:9px 14px}}
.wj-plans{grid-template-columns:minmax(0,1fr)}
.wj-plans>*{min-width:0}
.wj-plan-grid>*{min-width:0}
/* TPV: dispositivo y plantilla en uso */
.wj-tpv-devchip{display:grid;gap:1px;justify-items:start;width:100%;margin-top:4px;padding:6px 8px;border-radius:12px;border:1px dashed var(--border);background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}
.wj-tpv-devchip span{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:800;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wj-tpv-devchip small{font-size:11px;color:var(--muted);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wj-tpv-devchip:hover{border-color:var(--accent);border-style:solid}
.wj-tpl-devs{display:inline-flex;align-items:center;gap:4px;font-weight:700}
.wj-tpl-devs.none{color:rgb(180,83,9);font-weight:600}

.wj-tpv-devchip span,.wj-tpv-devchip small{white-space:normal;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}

/* ---- Selector de color por clic ---- */
.wj-colorpick{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.wj-colorpick-sw{width:30px;height:30px;border-radius:50%;border:2px solid var(--surface);box-shadow:0 0 0 1px var(--border);cursor:pointer;padding:0;transition:transform .12s}
.wj-colorpick-sw:hover{transform:scale(1.1)}
.wj-colorpick-sw.on{box-shadow:0 0 0 2px var(--text);transform:scale(1.08)}
.wj-colorpick-more{position:relative;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;border:1.5px dashed var(--border);cursor:pointer;color:var(--muted);overflow:hidden}
.wj-colorpick-more.on{border:2px solid var(--surface);box-shadow:0 0 0 2px var(--text);color:rgb(255,255,255)}
.wj-colorpick-more input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%;border:0;padding:0}
/* ---- Aviso de la tienda ---- */
.wj-shop-notice{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;margin-bottom:16px;border-radius:14px;background:rgb(255,244,214);color:rgb(15,23,42);box-shadow:0 6px 18px rgba(15,23,42,.06);font-weight:600;line-height:1.45}
.wj-shop-notice svg{flex:none;margin-top:1px}
.wj-shop-notice p{margin:0;font-size:14.5px}
/* El texto del aviso es SIEMPRE el color elegido: ni el gris de las tarjetas de ajustes ni el de la tienda lo pisan. */
.wj-shop-notice p,.wj-settings-card .wj-shop-notice p{color:inherit}
.wj-notice-preview-wrap{display:grid;gap:6px;margin-top:6px}
.wj-notice-preview-wrap small{color:var(--muted);font-weight:700}
.wj-notice-preview-wrap .wj-shop-notice{margin:0}
.wj-notice-preview-wrap .wj-shop-notice.off{opacity:.45}
.wj-notice-preview-wrap .wj-btn{justify-self:start}
.wj-product-loading{display:grid;place-items:center;min-height:240px}

/* ---- Carrito lateral con aire: nombre a lo ancho, controles en su propia fila ---- */
.wj-shop-line{grid-template-columns:52px minmax(0,1fr);grid-template-areas:"img copy" "right right";row-gap:10px;padding-bottom:12px;border-bottom:1px solid var(--shop-line)}
.wj-shop-line:last-of-type{border-bottom:0;padding-bottom:0}
.wj-shop-line-img{grid-area:img}
.wj-shop-line-copy{grid-area:copy;gap:3px}
.wj-shop-line-copy strong{font-size:15px;line-height:1.3}
.wj-shop-line-copy small{line-height:1.35}
.wj-shop-line-right{grid-area:right;justify-content:flex-start;flex-wrap:nowrap}
.wj-shop-line-right>b{margin-left:auto;font-size:16px}
/* Ventajas del lateral: una por fila, icono a la izquierda */
.wj-shop-aside .wj-shop-badges{grid-template-columns:1fr;gap:6px;padding:12px 14px;border-radius:var(--shop-radius);background:var(--shop-card);border:1px solid var(--shop-line)}
.wj-shop-aside .wj-shop-badge{grid-template-columns:36px minmax(0,1fr);grid-template-rows:auto auto;justify-items:start;text-align:left;column-gap:10px;row-gap:0;align-items:center}
.wj-shop-aside .wj-shop-badge-ico{grid-row:1 / span 2;width:36px;height:36px;border-radius:10px}
.wj-shop-aside .wj-shop-badge strong{font-size:13.5px}
.wj-shop-aside .wj-shop-badge small{font-size:12px}
.wj-shop-aside .wj-shop-badge strong,.wj-shop-aside .wj-shop-badge small{grid-column:2}
/* ---- Venta adicional: elegir productos con su foto ---- */
.wj-upsell-pick{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px;margin-bottom:12px}
.wj-upsell-opt{position:relative;display:grid;grid-template-columns:48px minmax(0,1fr);gap:10px;align-items:center;padding:10px;border:1.5px solid var(--border);border-radius:16px;background:var(--surface);cursor:pointer}
.wj-upsell-opt input{position:absolute;opacity:0;pointer-events:none}
.wj-upsell-opt-img{width:48px;height:48px;border-radius:12px;overflow:hidden;display:grid;place-items:center;background:var(--surface-2,var(--bg));color:var(--muted)}
.wj-upsell-opt-img img{width:100%;height:100%;object-fit:cover}
.wj-upsell-opt-copy{display:grid;gap:2px;min-width:0}
.wj-upsell-opt-copy strong{font-size:14px;line-height:1.25}
.wj-upsell-opt-copy small{color:var(--muted);font-size:12px}
.wj-upsell-opt-check{position:absolute;top:6px;right:6px;width:20px;height:20px;border-radius:50%;display:grid;place-items:center;background:var(--accent);color:rgb(255,255,255);opacity:0;transform:scale(.6);transition:.15s}
.wj-upsell-opt:has(input:checked){border-color:var(--accent);background:color-mix(in srgb,var(--accent) 7%,var(--surface))}
.wj-upsell-opt:has(input:checked) .wj-upsell-opt-check{opacity:1;transform:none}
.wj-upsell-opt:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:2px}
/* Página de complementos de la tienda */
.wj-shop-extras{display:grid;gap:12px}
.wj-shop-extras h2{margin:4px 0 0;font-size:22px}
.wj-shop-extras-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}
.wj-shop-extras .wj-shop-upsell-actions{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap}
@media(max-width:600px){.wj-shop-extras .wj-shop-upsell-actions .wj-btn{flex:1 1 100%}}
/* En la página de complementos cada producto es una tarjeta con foto grande */
.wj-shop-extras{width:auto}
.wj-shop-extras-list{grid-template-columns:repeat(auto-fill,minmax(190px,1fr))}
.wj-shop-extras .wj-shop-upsell-item{flex-direction:column;align-items:stretch;gap:10px;padding:12px}
.wj-shop-extras .wj-shop-upsell-img{flex:none;width:100%;height:auto;aspect-ratio:4/3}
.wj-shop-extras .wj-shop-upsell-img svg{width:34px;height:34px}
.wj-shop-extras .wj-shop-upsell-item .wj-shop-stepper{align-self:stretch;justify-content:space-between}
.wj-shop-extras .wj-shop-upsell-actions .wj-btn{flex:0 1 auto;padding:0 22px}
@media(max-width:600px){.wj-shop-extras-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* Mis reservas: la reserva arriba y, si le falta algo, una barra de acción que se ve sola. */
.wj-shop-mybooking{flex-direction:column;align-items:stretch}
.wj-shop-mybooking>.wj-shop-mybooking-main{display:flex;align-items:center;justify-content:space-between;gap:12px}
.wj-shop-mybooking-main>div{display:grid;gap:2px;min-width:0}
.wj-shop-todo{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-radius:12px;background:rgb(255,247,230);border:1px solid rgb(253,186,116);color:rgb(124,45,18);text-decoration:none}
.wj-shop-todo:hover{border-color:rgb(234,88,12)}
.wj-shop-todo-copy{display:grid;gap:2px;min-width:0}
.wj-shop-todo-copy strong{display:flex;align-items:flex-start;gap:6px;font-size:14px;line-height:1.35}
.wj-shop-todo-copy strong svg{flex:none;margin-top:2px}
.wj-shop-todo-copy small{color:rgb(154,52,18);font-size:12.5px}
.wj-shop-todo-btn{flex:none;display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:0 16px;border-radius:10px;font-weight:800;white-space:nowrap;animation:wj-shop-todo-pulse 2.4s ease-in-out 3}
@keyframes wj-shop-todo-pulse{0%,100%{box-shadow:0 0 0 0 transparent}50%{box-shadow:0 0 0 5px color-mix(in srgb,var(--shop-accent,rgb(22,119,255)) 25%,transparent)}}
@media(prefers-reduced-motion:reduce){.wj-shop-todo-btn{animation:none}}
@media(max-width:640px){.wj-shop-todo{flex-direction:column;align-items:stretch}.wj-shop-todo-btn{justify-content:center}}
/* Firma y formularios abiertos desde la cuenta: volver a la reserva. */
.wj-public-back{display:inline-flex;align-items:center;gap:6px;margin:0 0 14px;padding:8px 12px;border-radius:10px;border:1px solid var(--border);background:var(--surface);color:var(--text);font-weight:700;font-size:14px;text-decoration:none}
.wj-public-back svg{transform:rotate(180deg)}
/* Mis reservas: la reserva es un botón que abre su detalle. */
button.wj-shop-mybooking-main{width:100%;padding:0;border:0;background:none;font:inherit;color:inherit;text-align:left;cursor:pointer}
.wj-shop-mybooking-copy{display:grid;gap:2px;min-width:0}
.wj-shop-mybooking-side{display:flex;align-items:center;gap:6px;flex:none;color:var(--shop-muted)}
.wj-shop-mybooking:hover{border-color:var(--shop-accent)}
.wj-shop-bdetail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}
.wj-shop-bdetail-head h2{margin:4px 0 2px}
.wj-shop-bdetail-pay{display:grid;grid-template-columns:1fr auto;gap:8px 16px;margin:0;font-size:15px}
.wj-shop-bdetail-pay dt{color:var(--shop-muted)}
.wj-shop-bdetail-pay dd{margin:0;font-weight:800;text-align:right;font-variant-numeric:tabular-nums}
.wj-shop-bdetail-pay dd.due{color:rgb(194,65,12)}
/* Cambio de fecha: tira de días y horas, como en la reserva. */
.wj-shop-chg{display:grid;gap:12px;margin-top:12px;padding-top:12px;border-top:1px solid var(--shop-line)}
.wj-shop-chg h3{margin:4px 0 0;font-size:15px}
.wj-shop-chg-days{display:flex;gap:8px;overflow-x:auto;padding:2px 2px 6px;scroll-snap-type:x proximity}
.wj-shop-chg-day{flex:0 0 auto;scroll-snap-align:start;display:grid;justify-items:center;gap:1px;min-width:62px;padding:8px 6px;border-radius:12px;border:1px solid var(--shop-line);background:var(--shop-bg);font:inherit;color:var(--shop-ink);cursor:pointer}
.wj-shop-chg-day small{font-size:11px;color:var(--shop-muted);text-transform:uppercase}
.wj-shop-chg-day strong{font-size:18px}
.wj-shop-chg-day.on{background:linear-gradient(135deg,var(--shop-accent),var(--shop-accent-ink));border-color:transparent;color:rgb(255,255,255)}
.wj-shop-chg-day.on small{color:rgba(255,255,255,.85)}
.wj-shop-chg-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}
@media(max-width:640px){.wj-shop-chg-actions .wj-btn{flex:1}}
/* Varias funciones en prueba: una fila resumen; «Ver» despliega el detalle (con límite de alto en el móvil). */
.wj-trial-group>summary{list-style:none;cursor:pointer}
.wj-trial-group>summary::-webkit-details-marker{display:none}
.wj-trial-more{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:999px;border:1px solid color-mix(in srgb,var(--accent) 35%,var(--border));background:var(--surface);font-weight:700;font-size:13px;color:var(--text)}
.wj-trial-group[open] .wj-trial-more svg{transform:rotate(90deg)}
.wj-trial-group-list{display:grid;gap:8px;margin-top:8px;padding-top:8px;border-top:1px dashed color-mix(in srgb,var(--accent) 30%,var(--border));max-height:50vh;overflow:auto}
/* ---------- Invitación a una fiesta (enlace compartido) y lista de invitados ---------- */
.wj-inv-chips{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0 0}
.wj-inv-chip{display:inline-flex;align-items:center;gap:5px;padding:5px 11px;border-radius:999px;background:color-mix(in srgb,var(--accent) 10%,var(--surface));border:1px solid color-mix(in srgb,var(--accent) 25%,var(--border));font-size:13px;font-weight:700;color:var(--text)}
button.wj-inv-chip.pick{cursor:pointer;font:inherit;font-size:13px;font-weight:700}
.wj-inv-chip.pick.on{background:var(--accent);border-color:var(--accent);color:rgb(255,255,255)}
.wj-inv-form{display:grid;gap:12px}
.wj-inv-form h3{margin:8px 0 0;font-size:16px}
.wj-inv-yesno{display:flex;gap:8px;flex-wrap:wrap}
.wj-inv-yesno .wj-btn{min-width:96px}
.wj-inv-kid{display:grid;gap:10px;padding:14px;border-radius:16px;border:1px solid var(--border);background:color-mix(in srgb,var(--accent) 3%,var(--surface))}
.wj-inv-kid-head{display:flex;align-items:center;justify-content:space-between;gap:8px}
.wj-inv-login{display:grid;gap:10px}
.wj-inv-org{display:grid;gap:10px}
.wj-inv-org-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap}
.wj-inv-org-head h2{margin:0}
.wj-inv-list{display:grid;gap:8px}
.wj-inv-row{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:10px 12px;border:1px solid var(--border);border-radius:12px}
.wj-inv-row>div{display:grid;gap:3px;min-width:0}
.wj-inv-row small{color:var(--muted);font-size:13px}
.wj-inv-allergy,.wj-bk-allergy{color:rgb(194,65,12)!important;font-weight:700}
.wj-inv-allergy{display:flex;align-items:center;gap:5px}
.wj-bk-guest{display:block;margin-top:2px}
/* Estado de la firma en la lista de la fiesta. */
.wj-inv-ok{color:rgb(21,128,61)!important;font-weight:700;display:inline-flex;align-items:center;gap:4px}
.wj-inv-pending{color:rgb(194,65,12)!important;font-weight:700}
.wj-inv .wj-public-cta{margin-top:14px;width:100%}
/* Fiesta (organizador): compartir arriba y bien visible; acciones de cada invitado; formularios plegados. */
.wj-inv-share-cta{width:100%;margin:4px 0 2px}
.wj-inv-share-hint{margin:0 0 6px;text-align:center}
.wj-inv-row-actions{display:flex;align-items:center;gap:6px;flex:none;flex-wrap:wrap;justify-content:flex-end}
.wj-bf-collapse{padding:0;overflow:hidden}
.wj-bf-collapse>summary{list-style:none;display:flex;align-items:center;gap:12px;padding:16px 18px;cursor:pointer}
.wj-bf-collapse>summary::-webkit-details-marker{display:none}
.wj-bf-collapse>summary>span{flex:1;display:grid;gap:2px;min-width:0}
.wj-bf-collapse>summary small{color:var(--muted)}
.wj-bf-collapse>summary>b{font-size:16px;color:rgb(194,65,12)}
.wj-bf-collapse>summary>b.ok{color:rgb(21,128,61)}
.wj-bf-collapse>summary>svg{transition:transform .15s}
.wj-bf-collapse[open]>summary>svg{transform:rotate(90deg)}
.wj-bf-collapse>.wj-bf-progress,.wj-bf-collapse>.wj-bf-items{margin:0 18px 16px}
.wj-inv-summary{display:grid;gap:8px;margin:6px 0;padding:12px 14px;border-radius:12px;background:color-mix(in srgb,var(--accent) 6%,var(--surface));border:1px solid color-mix(in srgb,var(--accent) 20%,var(--border))}
.wj-inv-sum-row{display:grid;gap:4px}
.wj-inv-sum-row>small{color:var(--muted);font-weight:700;font-size:12px;text-transform:uppercase;letter-spacing:.03em}
.wj-inv-sum-row .wj-inv-chips{margin:0}
.wj-inv-sum-allergies{display:grid;gap:3px}
/* Fecha en tres desplegables (día · mes · año). */
.wj-date3{display:grid;grid-template-columns:minmax(64px,.8fr) minmax(0,1.6fr) minmax(76px,1fr);gap:8px}
.wj-date3 .wj-select{min-width:0}
.wj-date3.is-bad .wj-select{border-color:rgb(220,38,38)}
/* Lo que falta al firmar: marcado en rojo y con el foco puesto. */
.is-invalid,.wj-date3.is-invalid .wj-select{border-color:rgb(220,38,38)!important;box-shadow:0 0 0 3px color-mix(in srgb,rgb(220,38,38) 22%,transparent)!important}
/* Sala de la fiesta: preparación, maneras de apuntarse y plazas como en la sala de un juego. */
.wj-inv-bang{display:inline-grid;place-items:center;width:18px;height:18px;border-radius:50%;background:rgb(220,38,38);color:rgb(255,255,255);font-size:12px;font-weight:900;line-height:1;flex:none;vertical-align:-3px}
.wj-inv-meters{display:grid;grid-template-columns:repeat(auto-fit,minmax(92px,1fr));gap:8px;margin:14px 0 4px}
.wj-inv-meter{position:relative;display:grid;gap:2px;padding:10px 12px 14px;border-radius:12px;border:1px solid var(--border);background:var(--surface);overflow:hidden}
.wj-inv-meter strong{font-size:22px;line-height:1}
.wj-inv-meter strong small{font-size:13px;color:var(--muted);font-weight:700}
.wj-inv-meter span{font-size:12px;color:var(--muted);font-weight:700}
.wj-inv-meter i{position:absolute;left:0;bottom:0;height:4px;width:var(--p);background:var(--accent);border-radius:0 4px 4px 0;transition:width .3s}
.wj-inv-meter.ok i{background:rgb(22,163,74)}
.wj-inv-meter.ok strong{color:rgb(21,128,61)}
.wj-inv-modes{display:grid;gap:10px;margin-top:14px}
.wj-inv-mode{display:flex;align-items:center;gap:12px;width:100%;padding:14px 16px;border-radius:16px;border:1.5px solid var(--border);background:var(--surface);color:var(--text);font:inherit;text-align:left;cursor:pointer;transition:transform .12s,border-color .12s}
.wj-inv-mode:active{transform:scale(.98)}
.wj-inv-mode span{display:grid;gap:2px}
.wj-inv-mode strong{font-size:16px}
.wj-inv-mode small{color:var(--muted);font-size:13px}
.wj-inv-mode.primary{background:linear-gradient(135deg,var(--accent),color-mix(in srgb,var(--accent) 70%,rgb(37,99,235)));border-color:transparent;color:rgb(255,255,255);box-shadow:0 8px 20px color-mix(in srgb,var(--accent) 30%,transparent)}
.wj-inv-mode.primary small{color:rgba(255,255,255,.85)}
.wj-inv-room{display:grid;gap:12px}
.wj-inv-room-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px}
.wj-inv-room-head h2{margin:0;font-size:18px}
.wj-inv-room-head small{color:var(--muted);font-weight:700}
.wj-inv-seats{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:8px}
.wj-inv-seat{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;border-radius:16px;border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;text-align:left;cursor:pointer;min-width:0}
.wj-inv-seat>svg{margin-left:auto;flex:none;color:var(--muted)}
.wj-inv-seat.free{border-style:dashed;border-width:1.5px;background:transparent;color:var(--muted)}
.wj-inv-seat.free .wj-inv-avatar{background:transparent;border:1.5px dashed color-mix(in srgb,var(--accent) 50%,var(--border));color:var(--accent)}
.wj-inv-seat.free:hover{border-color:var(--accent);color:var(--text)}
.wj-inv-seat.allergy{border-color:color-mix(in srgb,rgb(220,38,38) 40%,var(--border))}
.wj-inv-seat-copy{display:grid;gap:2px;min-width:0}
.wj-inv-seat-copy strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wj-inv-seat-copy strong em{font-style:normal;font-size:11px;padding:1px 6px;border-radius:999px;background:color-mix(in srgb,var(--accent) 14%,var(--surface));color:var(--accent);vertical-align:1px}
.wj-inv-seat-copy small{display:flex;flex-wrap:wrap;gap:4px 8px;font-size:12px;font-weight:700}
.wj-inv-seat-copy small .ok{color:rgb(21,128,61);display:inline-flex;align-items:center;gap:3px}
.wj-inv-seat-copy small .warn{color:rgb(194,65,12)}
.wj-inv-avatar{position:relative;display:grid;place-items:center;flex:none;width:40px;height:40px;border-radius:50%;background:color-mix(in srgb,var(--accent) 16%,var(--surface));color:var(--accent);font-weight:900;font-size:14px}
.wj-inv-avatar .wj-inv-bang{position:absolute;top:-3px;right:-3px;border:2px solid var(--surface)}
.wj-inv-avatar.xl{width:64px;height:64px;font-size:22px}
.wj-inv-listbox{border:1px solid var(--border);border-radius:12px;padding:10px 12px}
.wj-inv-listbox summary{cursor:pointer;font-weight:800;display:flex;align-items:center;gap:6px;list-style:none}
.wj-inv-listbox summary::-webkit-details-marker{display:none}
.wj-inv-listbox[open] summary{margin-bottom:10px}
.wj-inv-share-mini{justify-self:center}
.wj-inv-player-head{display:flex;align-items:center;gap:14px;margin:10px 0 6px}
.wj-inv-player-head h1{margin:0}
.wj-inv-player-head p{margin:2px 0 0}
.wj-inv-pdata{display:grid;border:1px solid var(--border);border-radius:12px;overflow:hidden}
.wj-inv-prow{display:flex;justify-content:space-between;gap:12px;padding:10px 12px;border-top:1px solid var(--border)}
.wj-inv-prow:first-child{border-top:0}
.wj-inv-prow span{color:var(--muted)}
.wj-inv-prow strong{text-align:right;display:inline-flex;align-items:center;gap:4px}
.wj-inv-prow.ok strong{color:rgb(21,128,61)}
.wj-inv-prow.warn strong{color:rgb(194,65,12)}
.wj-inv-prow.bad strong{color:rgb(220,38,38)}
.wj-inv-steps{display:flex;gap:6px;margin-top:8px}
.wj-inv-steps span{flex:1;height:5px;border-radius:5px;background:var(--border)}
.wj-inv-steps span.done{background:color-mix(in srgb,var(--accent) 55%,var(--surface))}
.wj-inv-steps span.on{background:var(--accent)}
.wj-inv-wiz-head{display:grid;gap:2px}
.wj-inv-wiz-head h2{margin:0}
.wj-inv-wiz-head small{color:var(--muted)}
.wj-inv-wiz-actions{display:flex;gap:8px;flex-wrap:wrap}
.wj-inv-wiz-actions .wj-btn{flex:1 1 160px;min-height:46px}
.wj-inv-wiz-list{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.wj-inv-opts{display:flex;flex-wrap:wrap;gap:8px}
.wj-inv-opt{display:inline-flex;align-items:center;gap:5px;min-height:40px;padding:8px 14px;border-radius:12px;border:1.5px solid var(--border);background:var(--surface);color:var(--text);font:inherit;font-weight:700;cursor:pointer}
.wj-inv-opt.on{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--surface));color:var(--accent)}
.wj-inv-org-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:8px}
.wj-inv-org-actions .wj-public-cta{margin:0;width:100%}
/* Hoja de la fiesta en el panel. */
.wj-party-chips{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 10px}
.wj-party-chip{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:999px;border:1px solid var(--border);background:var(--surface);font-size:13px;font-weight:700}
.wj-party-chip.bad{border-color:color-mix(in srgb,rgb(220,38,38) 40%,var(--border));color:rgb(185,28,28)}
.wj-party-table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:12px}
.wj-party-table{width:100%;border-collapse:collapse;font-size:13px}
.wj-party-table th,.wj-party-table td{padding:8px 10px;border-top:1px solid var(--border);text-align:left;vertical-align:top}
.wj-party-table thead th{border-top:0;background:color-mix(in srgb,var(--text) 4%,var(--surface));font-size:12px;color:var(--muted);white-space:nowrap}
.wj-party-table td small{display:block;color:var(--muted);font-size:12px}
.wj-party-table tr.allergy td:first-child{box-shadow:inset 3px 0 0 rgb(220,38,38)}
.wj-sign .wj-inv .wj-public-cta.wj-btn:not(.primary),.wj-sign .wj-inv-org .wj-public-cta.wj-btn:not(.primary){background:var(--surface);color:var(--text);border:1.5px solid var(--border-strong)}
.wj-inv .wj-public-cta+.wj-public-cta{margin-top:10px}
/* Configuración → Dominio propio. */
.wj-domain-main,.wj-domain-steps,.wj-domain-lock{max-width:760px}
.wj-domain-main{display:grid;gap:12px}
.wj-domain-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.wj-domain-head h3{margin:0}
.wj-domain-form{display:grid;gap:10px}
.wj-domain-form .wj-form-actions{justify-content:flex-start}
.wj-domain-result{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:12px;border:1px solid var(--border);background:var(--surface2)}
.wj-domain-result>svg{flex:none;margin-top:2px}
.wj-domain-result p{margin:4px 0 0}
.wj-domain-result.ok{border-color:color-mix(in srgb,var(--ok) 35%,var(--border));background:var(--success-weak)}
.wj-domain-result.ok>svg{color:var(--ok)}
.wj-domain-result.warn{border-color:color-mix(in srgb,var(--warn) 35%,var(--border));background:var(--warn-weak)}
.wj-domain-result.warn>svg{color:var(--warn)}
.wj-domain-steps ol{margin:8px 0 0;padding-left:20px;display:grid;gap:14px}
.wj-domain-steps li p{margin:4px 0 0}
.wj-domain-dns{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;margin:10px 0;padding:12px;border-radius:12px;border:1px solid var(--border);background:var(--surface2)}
.wj-domain-dns>div{display:grid;gap:4px;min-width:0}
.wj-domain-dns small{color:var(--muted);font-weight:700;font-size:12px}
.wj-domain-dns code,.wj-domain-copy code{font-family:var(--font-mono);font-size:13px;overflow-wrap:anywhere}
.wj-domain-copy{display:inline-flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 10px;border-radius:8px;border:1px solid var(--border-strong);background:var(--surface);color:var(--text);font:inherit;cursor:pointer;text-align:left;min-width:0}
.wj-domain-copy:hover{border-color:var(--accent)}
.wj-domain-copy svg{flex:none;color:var(--muted)}
.wj-domain-perks{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.wj-domain-perks li{display:flex;gap:8px;align-items:flex-start}
.wj-domain-perks li svg{flex:none;color:var(--ok);margin-top:2px}
.wj-domain-lock{display:grid;gap:10px;justify-items:start}
.wj-domain-lock h2{margin:0}
/* Pantalla ya vista mientras llegan sus datos nuevos: se ve al momento, atenuada y sin tocar. */
#content.wj-route-stale{opacity:.72;transition:opacity .15s;pointer-events:none}

.wj-gateway-form{max-width:640px}
.wj-uelta-pagos{margin-top:16px}
.wj-up-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.wj-up-head h3{margin:0}
.wj-up-venues h4,.wj-uelta-pagos h4{margin:8px 0 0}
.wj-uelta-pagos .wj-table-wrap{overflow-x:auto}

/* Acceso: portada con la función estrella (club de puntos), con un móvil de ejemplo en HTML. */
.wj-login-badge{justify-self:start;padding:5px 10px;border-radius:6px;background:rgb(233,213,255);color:rgb(88,28,135);font-size:11.5px;font-weight:900;letter-spacing:.06em}
.wj-login-cta{justify-self:start;display:inline-flex;align-items:center;gap:6px;padding:9px 14px;border-radius:8px;background:rgb(255,255,255);color:rgb(15,23,42);font-weight:800;font-size:13.5px;text-decoration:none}
.wj-login-cta svg{transform:rotate(-90deg)}
.wj-login-cta:hover{background:rgb(241,245,249)}
.wj-ls{position:relative;height:330px;margin-top:18px;border-radius:20px;background:linear-gradient(140deg,rgba(14,165,233,.35),rgba(30,58,138,.55) 45%,rgba(147,51,234,.5));overflow:hidden;color:rgb(15,23,42);font-size:11px}
.wj-ls strong{display:block;font-size:12px}
.wj-ls em{font-style:normal;background:rgb(37,99,235);color:rgb(255,255,255);font-weight:800;border-radius:6px;padding:6px 10px;font-size:11px;white-space:nowrap}
.wj-ls-phone{position:absolute;left:50%;top:22px;width:190px;height:330px;margin-left:-95px;border-radius:28px;background:rgb(255,255,255);border:5px solid rgb(59,130,246);padding:22px 12px;display:grid;align-content:start;gap:7px;box-shadow:0 20px 40px rgba(2,6,23,.4)}
.wj-ls-notch{position:absolute;top:8px;left:50%;width:56px;height:12px;margin-left:-28px;border-radius:8px;background:rgb(226,232,240)}
.wj-ls-head{display:flex;align-items:center;gap:4px;font-weight:800;font-size:14px}
.wj-ls-head svg{transform:rotate(90deg)}
.wj-ls-phone small{color:rgb(100,116,139);font-weight:700;font-size:11px}
.wj-ls-points{display:grid;justify-items:center;gap:2px;padding:9px;border:1px solid rgb(226,232,240);border-radius:12px}
.wj-ls-points b{font-size:16px}
.wj-ls-points span{color:rgb(100,116,139);font-size:11px}
.wj-ls-points em{width:100%;text-align:center;margin-top:4px}
.wj-ls-reward{position:absolute;display:flex;align-items:center;justify-content:space-between;gap:10px;width:230px;padding:10px 12px;border-radius:12px;background:rgb(255,255,255);box-shadow:0 12px 28px rgba(2,6,23,.35)}
.wj-ls-reward span,.wj-ls-invite span{display:flex;align-items:center;gap:4px;color:rgb(71,85,105);font-size:10.5px}
.wj-ls-reward.one{left:50%;top:205px;margin-left:-100px}
.wj-ls-reward.two{left:50%;top:262px;margin-left:-100px}
.wj-ls-rules{position:absolute;left:14px;top:46px;width:150px;padding:10px;border-radius:12px;background:rgb(255,255,255);display:grid;gap:5px;box-shadow:0 12px 28px rgba(2,6,23,.3)}
.wj-ls-rules span{display:flex;align-items:center;gap:4px;color:rgb(71,85,105);font-size:11px}
.wj-ls-rules svg,.wj-ls-invite svg{color:rgb(37,99,235);flex:none}
.wj-ls-bar{height:4px;border-radius:4px;background:rgb(226,232,240);overflow:hidden}
.wj-ls-bar i{display:block;width:62%;height:100%;background:rgb(34,197,94)}
.wj-ls-invite{position:absolute;right:14px;top:70px;width:150px;padding:10px;border-radius:10px;background:rgb(255,255,255);display:grid;gap:5px;box-shadow:0 12px 28px rgba(2,6,23,.3)}
@media(max-width:1180px){.wj-ls-rules,.wj-ls-invite{display:none}}
@media(max-height:760px){.wj-ls{height:250px}.wj-ls-reward.one{top:150px}.wj-ls-reward.two{top:200px}}

/* Soporte 24/7: burbuja y chat. */
.wj-support-dot{width:8px;height:8px;border-radius:50%;background:var(--warn)}
.wj-support-msgs{flex:1;overflow:auto;padding:14px;display:flex;flex-direction:column;gap:8px;background:var(--bg)}
.wj-support-msg{max-width:85%;padding:9px 12px;border-radius:16px;font-size:14px;line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere}
.wj-support-msg small{display:block;margin-top:3px;font-size:11px;opacity:.7}
.wj-support-msg.them{align-self:flex-start;background:var(--surface);border:1px solid var(--border)}
.wj-support-msg.me{align-self:flex-end;background:var(--accent);color:var(--on-accent)}
.wj-support-msg.sys{align-self:stretch;max-width:none;display:flex;gap:8px;align-items:flex-start;background:var(--warn-weak);color:var(--text);border:1px solid color-mix(in srgb,var(--warn) 30%,var(--border));font-size:13px}
.wj-support-msg.sys svg{flex:none;margin-top:2px;color:var(--warn)}
.wj-support-form{display:flex;gap:8px;align-items:flex-end;padding:10px;border-top:1px solid var(--border)}
.wj-support-form .wj-textarea{flex:1;min-height:44px;max-height:140px;resize:none}

/* Mi plan: facturas de Stripe. */
.wj-plan-invoices{display:grid;gap:10px;margin-bottom:16px}
.wj-plan-invoices h3{margin:0;display:flex;align-items:center;gap:8px}
.wj-plan-inv-list{display:grid;border:1px solid var(--border);border-radius:12px;overflow:hidden}
.wj-plan-inv{display:flex;align-items:center;gap:10px;padding:10px 12px;border-top:1px solid var(--border)}
.wj-plan-inv:first-child{border-top:0}
.wj-plan-inv>span:first-child{flex:1;display:grid;gap:2px;min-width:0}
.wj-plan-inv small{color:var(--muted)}
/* «主/副»: cambiar entre el idioma principal del cliente y el de la persona. */
.wj-lang-mode .wj-side-utility-lang{font-size:11px;letter-spacing:0;white-space:nowrap}
/* Modo pruebas de Redsys: etiqueta en reservas, avisos en la pasarela, pastilla fija en el panel y franja en la tienda. */
.wj-test-tag{display:inline-flex;align-items:center;padding:1px 8px;border-radius:999px;background:var(--warn-soft);color:var(--warn-text);font-size:12px;font-weight:800;letter-spacing:.02em}
.wj-test-note{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border-radius:16px;background:var(--warn-soft);color:var(--warn-text)}
.wj-test-note>.wj-icon,.wj-test-note>svg{flex:none;margin-top:2px}
.wj-test-note b{display:block;margin-bottom:2px}
.wj-test-note p{margin:0 0 8px;color:inherit}
.wj-paytest-pill{position:fixed;left:50%;bottom:16px;transform:translateX(-50%);z-index:60;display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:999px;background:var(--warn);color:rgb(255,255,255);font-size:13px;font-weight:800;text-decoration:none;box-shadow:0 10px 26px rgba(0,0,0,.18)}
.wj-paytest-pill:hover{filter:brightness(1.05)}
html[data-layout="mobile"] .wj-paytest-pill{bottom:calc(78px + env(safe-area-inset-bottom))}
.wj-shop-testbar{display:flex;align-items:center;justify-content:center;gap:8px;padding:8px 16px;background:rgb(245,158,11);color:rgb(23,23,23);font-size:13.5px;font-weight:700;text-align:center}
.wj-shop-testnote{margin:0 0 12px;padding:10px 14px;border-radius:12px;background:rgb(254,243,199);color:rgb(120,53,15);font-weight:650;font-size:14px}

/* Ayuda: panel lateral con buscador, artículos y contacto con soporte. */
.wj-helpdesk{position:fixed;inset:0;z-index:90}
.wj-helpdesk[hidden]{display:none}
.wj-help-scrim{position:absolute;inset:0;background:rgba(2,6,23,.35)}
.wj-help-panel{position:absolute;top:0;right:0;bottom:0;width:min(440px,100vw);display:flex;flex-direction:column;background:var(--surface);border-left:1px solid var(--border);box-shadow:-20px 0 60px rgba(2,6,23,.18);animation:wj-help-in .2s ease}
@keyframes wj-help-in{from{transform:translateX(24px);opacity:.6}to{transform:none;opacity:1}}
.wj-help-head{position:relative;display:flex;align-items:center;gap:8px;padding:12px 14px;border-bottom:1px solid var(--border);min-height:62px}
.wj-help-head strong{flex:1;font-size:16px}
.wj-help-head [data-help-back] svg{transform:rotate(180deg)}
.wj-help-view{flex:1;min-height:0;overflow:auto;padding:14px 16px}
.wj-help-view[hidden]{display:none}
/* Cabecera: lupa y X del mismo tamaño, juntas a la derecha del título. La lupa se abre hacia la
   izquierda (encima del título) al acercar el ratón y se vuelve a cerrar al irse, si no hay texto. */
.wj-help-head [data-help-close],.wj-help-head [data-help-back]{width:36px;height:36px;min-width:36px;padding:0;display:grid;place-items:center;border:0;border-radius:999px;background:transparent;color:var(--muted);box-shadow:none;cursor:pointer;transition:background .15s,color .15s}
.wj-help-head [data-help-close]:hover,.wj-help-head [data-help-back]:hover{background:var(--surface2);color:var(--text)}
.wj-help-head [data-help-close]:focus-visible,.wj-help-head [data-help-back]:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.wj-help-head [data-help-close] svg{width:18px;height:18px}
.wj-help-search{position:absolute;top:50%;right:54px;transform:translateY(-50%);width:36px;height:36px;display:flex;align-items:center;border-radius:999px;background:transparent;border:1px solid transparent;transition:width .22s ease,background .15s,border-color .15s;cursor:pointer;z-index:2}
.wj-help-search[hidden]{display:none}
.wj-help-search:not(.open):not(.has-q):hover{background:var(--surface2)}
.wj-help-search>svg{position:absolute;left:9px;top:50%;transform:translateY(-50%);width:18px;height:18px;color:var(--muted);pointer-events:none}
.wj-help-search input{width:100%;height:100%;border:0;background:transparent;padding:0 34px 0 36px;font:inherit;font-size:15px;color:var(--text);outline:0;cursor:pointer;-webkit-appearance:none;appearance:none}
.wj-help-search input::-webkit-search-cancel-button,.wj-help-search input::-webkit-search-decoration{-webkit-appearance:none;appearance:none;display:none}
.wj-help-search:not(.open):not(.has-q) input::placeholder{color:transparent}
.wj-help-search.open,.wj-help-search.has-q{width:calc(100% - 68px);background:var(--surface);border-color:var(--border-strong);cursor:text}
.wj-help-search.open>svg,.wj-help-search.has-q>svg{color:var(--text)}
.wj-help-search.open input,.wj-help-search.has-q input{cursor:text}
.wj-help-search:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent)}
.wj-help-clear{position:absolute;right:5px;top:50%;transform:translateY(-50%);width:26px;height:26px;display:none;place-items:center;padding:0;border:0;border-radius:999px;background:transparent;color:var(--muted);cursor:pointer}
.wj-help-clear:hover{color:var(--text);background:var(--surface2)}
.wj-help-clear svg{width:14px;height:14px}
.wj-help-search.has-q .wj-help-clear{display:grid}
.wj-help-label{margin:4px 0 8px;font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.wj-help-list{display:grid;gap:6px}
.wj-help-hit{display:grid;gap:2px;text-align:left;padding:11px 12px;border-radius:12px;border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;cursor:pointer}
.wj-help-hit:hover{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 5%,var(--surface))}
.wj-help-hit b{font-size:15px}.wj-help-hit small{color:var(--muted);font-size:13px;line-height:1.4}
.wj-help-empty{color:var(--muted);font-size:14px;padding:8px 2px}
.wj-help-article h2{margin:0 0 6px;font-size:20px;line-height:1.25}
.wj-help-lead{margin:0 0 12px;color:var(--muted)}
.wj-help-body{font-size:15px;line-height:1.6}
.wj-help-body h3{margin:18px 0 6px;font-size:16px}
.wj-help-body ul,.wj-help-body ol{padding-left:20px}
.wj-help-more{display:inline-flex;align-items:center;gap:6px;margin-top:10px;color:var(--accent);font-size:14px;font-weight:700;text-decoration:none}
.wj-help-foot{display:grid;gap:6px;padding:12px 16px calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--border);background:var(--surface)}
.wj-help-foot[hidden]{display:none}
.wj-help-foot small{color:var(--muted);text-align:center;font-size:12px}
.wj-help-foot .wj-help-more{justify-self:center;margin-top:0}
.wj-help-contact{width:100%;justify-content:center;height:46px}
.wj-help-chat{display:flex;flex-direction:column;padding:0}
.wj-help-chat .wj-support-msgs{flex:1}
body.wj-help-open{overflow:hidden}

/* Servicio técnico → guía de ajustes: resultados con «Ir», ficha con pasos y la marca en la pantalla de destino. */
.wj-help-list{gap:4px}
.wj-help-label{margin:14px 2px 8px}
.wj-help-list>.wj-help-label:first-child{margin-top:2px}
.wj-guide-chips{display:flex;flex-wrap:wrap;gap:6px}
.wj-guide-chips .wj-chip{min-height:36px;padding:0 14px;border-radius:999px;border:1px solid var(--border);background:var(--surface2);color:var(--text);box-shadow:none;font-size:13.5px;font-weight:600;cursor:pointer;transition:border-color .15s,background .15s}
.wj-guide-chips .wj-chip:hover{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,var(--surface2))}
.wj-guide-list{display:grid;gap:6px}
.wj-guide-arts{display:grid;gap:6px}
.wj-guide-hit{display:flex;align-items:stretch;border:1px solid var(--border);border-radius:14px;background:var(--surface);overflow:hidden;transition:border-color .15s,background .15s}
.wj-guide-hit:hover{border-color:color-mix(in srgb,var(--accent) 55%,var(--border));background:color-mix(in srgb,var(--accent) 4%,var(--surface))}
.wj-guide-open{flex:1;min-width:0;display:flex;align-items:center;gap:11px;padding:10px 6px 10px 12px;min-height:56px;border:0;background:transparent;color:var(--text);font:inherit;text-align:left;cursor:pointer}
.wj-guide-ico{flex:0 0 auto;width:32px;height:32px;display:grid;place-items:center;border-radius:10px;background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--accent)}
.wj-guide-txt{min-width:0;display:grid;gap:2px}
.wj-guide-txt b{font-size:14.5px;font-weight:700;line-height:1.3}
.wj-guide-txt small{color:var(--muted);font-size:12.5px;line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wj-guide-go{flex:0 0 auto;align-self:center;display:inline-flex;align-items:center;gap:2px;margin-right:8px;min-height:36px;min-width:44px;padding:0 10px 0 12px;border:0;border-radius:999px;background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent);font:inherit;font-size:13px;font-weight:750;cursor:pointer;transition:background .15s,transform .1s}
.wj-guide-go:hover{background:var(--accent);color:var(--on-accent,rgb(255,255,255))}
.wj-guide-go:active,.wj-guide-open:active{transform:scale(.98)}
.wj-guide-lock{flex:0 0 auto;align-self:center;margin-right:14px;color:var(--muted)}
.wj-guide-open:focus-visible,.wj-guide-go:focus-visible,.wj-guide-area>summary:focus-visible,.wj-guide-cta:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.wj-guide-areas{display:grid;gap:6px}
.wj-guide-area{border:1px solid var(--border);border-radius:14px;background:var(--surface)}
.wj-guide-area>summary{display:flex;align-items:center;gap:11px;min-height:52px;padding:8px 12px;list-style:none;cursor:pointer;border-radius:14px}
.wj-guide-area>summary::-webkit-details-marker{display:none}
.wj-guide-area>summary b{flex:1;font-size:14.5px}
.wj-guide-area>summary small{min-width:24px;padding:2px 7px;border-radius:999px;background:var(--surface2);color:var(--muted);font-size:12px;font-weight:700;text-align:center}
.wj-guide-area>summary>svg:last-child{color:var(--muted);transition:transform .2s}
.wj-guide-area[open]>summary>svg:last-child{transform:rotate(90deg)}
.wj-guide-area>summary:hover{background:var(--surface2)}
.wj-guide-area>.wj-guide-list{padding:0 8px 8px}
.wj-guide-area .wj-guide-hit{border-color:transparent;background:var(--surface2)}
.wj-guide-empty{display:grid;gap:10px;justify-items:start;padding:14px;border-radius:14px;border:1px dashed var(--border-strong,var(--border));color:var(--muted);font-size:14px}
.wj-guide-empty b{color:var(--text);font-size:15px}
.wj-guide-detail h2{margin:6px 0 6px}
.wj-guide-crumb{display:flex;flex-wrap:wrap;align-items:center;gap:4px;font-size:12.5px;font-weight:650;color:var(--muted)}
.wj-guide-crumb span{padding:3px 8px;border-radius:999px;background:var(--surface2)}
.wj-guide-crumb i{font-style:normal;opacity:.6}
.wj-guide-steps{list-style:none;margin:16px 0 18px;padding:0;display:grid;gap:12px;counter-reset:paso}
.wj-guide-steps li{position:relative;padding-left:38px;min-height:26px;font-size:14.5px;line-height:1.5;counter-increment:paso}
.wj-guide-steps li::before{content:counter(paso);position:absolute;left:0;top:-1px;width:26px;height:26px;display:grid;place-items:center;border-radius:999px;background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent);font-size:13px;font-weight:800}
.wj-guide-steps li:not(:last-child)::after{content:"";position:absolute;left:12.5px;top:28px;bottom:-11px;width:1px;background:var(--border)}
.wj-guide-cta{width:100%;justify-content:center;min-height:48px;font-size:15px;border-radius:14px}
.wj-guide-note{display:flex;gap:10px;align-items:flex-start;margin:0 0 14px;padding:12px 14px;border-radius:12px;background:color-mix(in srgb,var(--accent) 8%,var(--surface));color:var(--text);font-size:13.5px;line-height:1.5}
.wj-guide-note>svg{flex:0 0 auto;margin-top:2px;color:var(--accent)}
.wj-guide-note.is-warn{background:color-mix(in srgb,var(--warn,rgb(245,158,11)) 12%,var(--surface))}
.wj-guide-note.is-warn>svg{color:var(--warn,rgb(245,158,11))}
.wj-guide-detail .wj-help-label{margin-top:22px}
.wj-bot-settings{display:grid;gap:6px;margin-top:10px}
.wj-bot-settings>span{font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.wj-bot-settings .wj-guide-hit{background:var(--surface)}
/* Destino: el ajuste se ilumina tres veces y deja una nota con lo que hay que hacer. */
.wj-guide-spot{position:relative;z-index:1;border-radius:14px;box-shadow:0 0 0 2px var(--accent),0 0 0 7px color-mix(in srgb,var(--accent) 22%,transparent);animation:wj-guide-pulse 1.3s ease-out 3}
@keyframes wj-guide-pulse{0%{box-shadow:0 0 0 2px var(--accent),0 0 0 2px color-mix(in srgb,var(--accent) 55%,transparent)}70%{box-shadow:0 0 0 2px var(--accent),0 0 0 16px color-mix(in srgb,var(--accent) 0%,transparent)}100%{box-shadow:0 0 0 2px var(--accent),0 0 0 7px color-mix(in srgb,var(--accent) 22%,transparent)}}
@media (prefers-reduced-motion:reduce){.wj-guide-spot{animation:none;box-shadow:0 0 0 2px var(--accent)}}
.wj-guide-coach{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom));z-index:85;width:min(460px,calc(100vw - 32px));transform:translateX(-50%);display:grid;grid-template-columns:auto 1fr;gap:10px 12px;padding:14px 14px 12px;border-radius:18px;background:var(--surface);color:var(--text);border:1px solid var(--border);box-shadow:0 18px 50px rgba(2,6,23,.32);animation:wj-guide-coach-in .22s cubic-bezier(.2,.8,.2,1)}
.wj-guide-coach.is-out{opacity:0;transform:translate(-50%,8px);transition:opacity .18s,transform .18s}
@keyframes wj-guide-coach-in{from{opacity:0;transform:translate(-50%,12px)}to{opacity:1;transform:translateX(-50%)}}
.wj-guide-coach-ico{width:30px;height:30px;display:grid;place-items:center;border-radius:999px;background:var(--accent);color:var(--on-accent,rgb(255,255,255))}
.wj-guide-coach-body{min-width:0;display:grid;gap:4px}
.wj-guide-coach-body b{font-size:14.5px;line-height:1.35;padding-top:5px}
.wj-guide-coach-body ol{margin:0;padding-left:18px;color:var(--muted);font-size:13.5px;line-height:1.5}
.wj-guide-coach-act{grid-column:1/-1;display:flex;justify-content:flex-end;gap:6px}
.wj-guide-coach-act .wj-btn{min-height:38px}
html[data-layout="mobile"] .wj-guide-coach{bottom:calc(84px + env(safe-area-inset-bottom))}
.wj-guide-coach.is-top,html[data-layout="mobile"] .wj-guide-coach.is-top{top:calc(76px + env(safe-area-inset-top));bottom:auto}

/* Alta: contrato → método de pago → verificación → revisión (pantalla completa hasta que Uelta la aprueba). */
.wj-onboarding{min-height:100vh;background:var(--bg);color:var(--text)}
.wj-onb-top{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px max(16px,calc((100vw - 880px)/2));background:color-mix(in srgb,var(--surface) 92%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--border)}
.wj-onb-top>div{display:flex;gap:6px}
.wj-onb-main{max-width:880px;margin:0 auto;padding:28px 16px 64px;display:grid;gap:18px}
.wj-onb-intro h1{margin:0;font-size:clamp(22px,3vw,28px);letter-spacing:-.02em}
.wj-onb-intro p{margin:6px 0 0;color:var(--muted)}
.wj-onb-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:8px;counter-reset:none}
.wj-onb-steps li{display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:16px;background:var(--surface);border:1px solid var(--border);color:var(--muted);font-size:14px;font-weight:600;min-width:0}
.wj-onb-steps li span{flex:0 0 auto;display:grid;place-items:center;width:24px;height:24px;border-radius:999px;background:var(--surface2);font-size:13px;font-weight:800}
.wj-onb-steps li.current{border-color:var(--accent);color:var(--text);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 14%,transparent)}
.wj-onb-steps li.current span{background:var(--accent);color:var(--on-accent)}
.wj-onb-steps li.done{color:var(--text)}
.wj-onb-steps li.done span{background:var(--primary-weak);color:var(--accent)}
.wj-onb-card{display:grid;gap:14px;padding:24px;border-radius:24px;background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow)}
.wj-onb-card h2{margin:0;font-size:20px;letter-spacing:-.01em}
.wj-onb-card>p{margin:0;color:var(--muted);line-height:1.6}
.wj-onb-center{justify-items:center;text-align:center;padding:40px 24px}
.wj-onb-center p{max-width:520px}
.wj-onb-contract{max-height:min(46vh,420px);overflow:auto;padding:18px 20px;border-radius:16px;background:var(--surface2);border:1px solid var(--border);font-size:14px;line-height:1.6}
.wj-onb-contract h4{margin:14px 0 4px;font-size:13px;letter-spacing:.04em}
.wj-onb-contract h4:first-child{margin-top:0}
.wj-onb-contract p{margin:0 0 8px}
.wj-onb-form{display:grid;gap:16px}
.wj-onb-form fieldset{margin:0;padding:16px;border:1px solid var(--border);border-radius:16px;display:grid;gap:12px;min-width:0}
.wj-onb-form legend{padding:0 6px;font-weight:800;font-size:15px}
.wj-onb-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.wj-onb-grid label,.wj-onb-form>label,.wj-onb-form fieldset>label:not(.wj-onb-check){display:grid;gap:5px;font-size:13px;font-weight:600;color:var(--muted)}
.wj-onb-check{display:flex;align-items:flex-start;gap:10px;font-size:14px;line-height:1.5;cursor:pointer}
.wj-onb-check input{margin-top:3px;width:18px;height:18px;flex:0 0 auto;accent-color:var(--accent)}
.wj-onb-sign{display:grid;gap:8px;justify-items:start}
.wj-onb-sign>span{font-size:13px;font-weight:600;color:var(--muted)}
.wj-onb-pad{position:relative;width:100%;max-width:520px;height:170px;border:1.5px dashed var(--border-strong);border-radius:16px;background:var(--surface);color:var(--text);touch-action:none}
.wj-onb-pad canvas{display:block;width:100%;height:100%;cursor:crosshair}
.wj-onb-pad em{position:absolute;inset:auto 16px 12px auto;font-style:normal;color:var(--text-3);font-size:13px;pointer-events:none}
.wj-onb-note{display:flex;align-items:center;gap:8px;margin:0;padding:12px 14px;border-radius:12px;background:var(--surface2);color:var(--muted);font-size:14px}
.wj-onb-reason{padding:14px 16px;border-radius:16px;background:var(--warn-weak);border:1px solid color-mix(in srgb,var(--warn) 40%,var(--border));text-align:left}
.wj-onb-reason p{margin:6px 0 0}
.wj-onb-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.wj-onb-list li{display:flex;gap:10px;align-items:flex-start;color:var(--muted);font-size:14px;line-height:1.5}
.wj-onb-list svg{flex:0 0 auto;margin-top:2px;color:var(--accent)}
.wj-onb-owner{display:grid;gap:8px;padding:12px;border-radius:12px;background:var(--surface2)}
.wj-onb-owner>button{justify-self:start}
.wj-onb-docs{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.wj-onb-docs li{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;border:1px solid var(--border)}
.wj-onb-docs li span{flex:1;min-width:0;display:grid}
.wj-onb-docs li small{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wj-onb-docs li.empty{color:var(--muted);font-size:14px;justify-content:center}
.wj-onb-upload{display:flex;flex-wrap:wrap;gap:8px}
.wj-onb-upload select{flex:1 1 260px;min-width:0}
.wj-onb-missing{display:flex;gap:8px;align-items:flex-start;padding:12px 14px;border-radius:12px;background:var(--danger-weak);border:1px solid color-mix(in srgb,var(--danger) 35%,var(--border));font-size:14px;line-height:1.5}
.wj-onb-missing[hidden]{display:none}
.wj-onb-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}
/* Resumen del contrato (alta y Ajustes → Contrato y facturación). */
.wj-contract-sum{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 18px;margin:0}
.wj-contract-sum div{display:grid;gap:2px;min-width:0}
.wj-contract-sum div.wide{grid-column:1/-1}
.wj-contract-sum dt{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.wj-contract-sum dd{margin:0;font-size:15px}
.wj-contract-sum dd small{color:var(--muted)}
.wj-contract-sum .wj-badge{margin:2px 4px 0 0}
.wj-contract-card{display:grid;gap:12px;justify-items:start}
.wj-contract-card .wj-contract-sum{width:100%}
.wj-pm-current{display:flex;align-items:center;gap:8px;margin:0;font-weight:700}
@media(max-width:640px){.wj-onb-steps{grid-template-columns:repeat(2,1fr)}.wj-onb-grid,.wj-contract-sum{grid-template-columns:1fr}.wj-onb-card{padding:18px;border-radius:20px}.wj-onb-top img{width:92px;height:auto}}

/* TPV · Salidas de hoy: franja fija abajo con la cuenta atrás de cada pulsera */
.wj-tpv-dock{display:flex;align-items:stretch;gap:10px;padding:10px 14px;border-top:1px solid var(--border);background:var(--surface);flex:none}
.wj-tpv-dock-head{display:grid;align-content:center;gap:1px;padding:0 14px 0 4px;border:0;border-right:1px solid var(--border);background:none;color:var(--text);cursor:pointer;text-align:left;font:inherit}
.wj-tpv-dock-head small{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);white-space:nowrap}
.wj-tpv-dock-head b{font-size:20px;font-weight:850;font-variant-numeric:tabular-nums;line-height:1.1}
.wj-tpv-dock-head:hover small{color:var(--cta)}
.wj-tpv-dock-list{display:flex;gap:8px;overflow-x:auto;flex:1;min-width:0;scrollbar-width:thin}
.wj-tpv-dock-card{display:grid;grid-template-columns:10px minmax(0,1fr) auto;align-items:center;gap:10px;min-width:170px;padding:0 12px 0 0;border:1px solid var(--border);border-radius:16px;background:var(--bg);overflow:hidden;flex:none}
.wj-tpv-dock-card[hidden]{display:none}
.wj-tpv-dock-strip{align-self:stretch;width:10px}
.wj-tpv-dock-copy{display:grid;gap:1px;padding:8px 0;min-width:0}
.wj-tpv-dock-copy strong{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wj-tpv-dock-copy small{font-size:12px;color:var(--muted);white-space:nowrap}
.wj-tpv-dock-timer{display:grid;justify-items:end;gap:1px;text-align:right}
.wj-tpv-dock-timer b{font-size:15px;font-weight:800;font-variant-numeric:tabular-nums;line-height:1;color:var(--muted);white-space:nowrap}
.wj-tpv-dock-timer small{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.wj-tpv-dock-card.live{min-width:200px;background:var(--surface);border-color:var(--cta);box-shadow:0 6px 18px color-mix(in srgb,var(--cta) 18%,transparent)}
.wj-tpv-dock-card.live .wj-tpv-dock-timer b{font-size:22px;color:var(--cta)}
.wj-tpv-dock-card.live.warm{border-color:var(--warn);background:var(--warn-weak)}
.wj-tpv-dock-card.live.warm .wj-tpv-dock-timer b{color:var(--warn)}
.wj-tpv-dock-card.live.hot{border-color:var(--danger);background:var(--danger-weak);animation:wj-tpv-hot 1s ease-in-out infinite}
.wj-tpv-dock-card.live.hot .wj-tpv-dock-timer b{color:var(--danger)}
.wj-tpv-dock-card.out{border-color:var(--danger);background:var(--danger-weak)}
.wj-tpv-dock-card.out .wj-tpv-dock-timer b{color:var(--danger);font-size:18px}
.wj-tpv-dock-empty{margin:0;align-self:center;color:var(--muted);font-size:13px}
@media (prefers-reduced-motion:reduce){.wj-tpv-dock-card.live.hot{animation:none}}
@media(max-width:820px){.wj-tpv-dock{padding:8px 10px}.wj-tpv-dock-head{padding-right:10px}.wj-tpv-dock-head b{font-size:16px}}
.wj-tpv-board{margin-bottom:16px}
.wj-tpv-board .wj-band-list{margin-top:14px}

/* TPV · Reservas: día, lista o calendario */
.wj-tpv-bk-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.wj-tpv-bk-dates{display:flex;align-items:center;gap:6px;flex-wrap:wrap;min-width:0}
.wj-tpv-bk-dates>.wj-date{flex:0 0 250px;width:250px;min-width:0}
.wj-tpv-bk-dates>.wj-btn.icon{flex:none}
.wj-tpv-bk-period{font-size:18px;text-transform:capitalize;min-width:150px;text-align:center}
.wj-tpv-bk-views{margin:0}
.wj-tpv-bk-views .wj-tab{display:inline-flex;align-items:center;gap:6px}
.wj-chip-btn{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:999px;padding:7px 14px;font:inherit;font-size:13px;font-weight:650;cursor:pointer}
.wj-chip-btn.active{background:var(--cta);border-color:var(--cta);color:var(--surface)}
.wj-tpv-bk-summary{margin:10px 2px 8px;color:var(--muted);font-size:13px}
.wj-tpv-bk-summary strong{color:var(--text);text-transform:capitalize}
.wj-tpv-bk-cal .wj-calendar-day{min-height:96px}
.wj-tpv-bk-cal .wj-calendar-day.is-today .wj-calendar-day-num{color:var(--cta);font-weight:850}

/* Alta en Ajustes → Contrato y facturación: estado y tareas */
.wj-onb-status{display:grid;gap:14px}
.wj-onb-status h3{display:flex;align-items:center;gap:8px;margin:0 0 6px}
.wj-onb-status p{margin:0;color:var(--muted);line-height:1.55}
.wj-onb-status p b{color:var(--text)}
.wj-onb-status.is-warn{border-color:var(--warn);background:var(--warn-weak)}
.wj-onb-status.is-locked{border-color:var(--danger);background:var(--danger-weak)}
.wj-onb-tasks{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.wj-onb-tasks li{display:flex;align-items:flex-start;gap:10px;padding:12px;border-radius:16px;background:var(--surface);border:1px solid var(--border)}
.wj-onb-tasks li>span{flex:0 0 auto;display:grid;place-items:center;width:22px;height:22px;border-radius:999px;border:2px solid var(--border);margin-top:1px}
.wj-onb-tasks li div{display:grid;gap:2px;min-width:0}
.wj-onb-tasks li b{font-size:14px}
.wj-onb-tasks li small{font-size:12px;color:var(--muted)}
.wj-onb-tasks li.done>span{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.wj-onb-tasks li.todo>span{border-color:var(--accent)}
.wj-onb-tasks li.review>span{border-color:var(--warn);color:var(--warn)}
.wj-onb-tasks li.wait{color:var(--muted)}
.wj-onb-active{display:flex;align-items:center;gap:8px;margin:0;padding:12px 14px;border-radius:16px;background:var(--primary-weak);color:var(--text)}
.wj-contract-card .wj-onb-contract,.wj-contract-card .wj-onb-form,.wj-contract-card .wj-contract-sum,.wj-onb-kyc-wrap{justify-self:stretch}
.wj-onb-kyc-wrap{display:grid;gap:14px}
.wj-onb-kyc-wrap[hidden]{display:none}
@media(max-width:640px){.wj-onb-tasks{grid-template-columns:1fr}}
/* Ayuda: lupa y cerrar fijos (sin animación) */
.wj-help-ico{display:block;flex:none}
.wj-help-searchbar{padding:10px 14px 12px;border-bottom:1px solid var(--border)}
.wj-help-searchbar[hidden]{display:none}
.wj-help-searchbar .wj-help-search,.wj-help-searchbar .wj-help-search.open,.wj-help-searchbar .wj-help-search.has-q{position:relative;top:auto;right:auto;transform:none;width:100%;height:42px;background:var(--surface);border-color:var(--border-strong);transition:border-color .15s,box-shadow .15s;cursor:text}
.wj-help-searchbar .wj-help-search input{cursor:text}
.wj-help-searchbar .wj-help-search input::placeholder{color:var(--muted)}

/* Fichas a pantalla completa (en lugar del panel de la derecha) */
.wj-detail-page{max-width:1120px;margin:0 auto;padding:2px 0 40px}
.wj-detail-sheet{display:flex;flex-direction:column;background:var(--surface-raised,var(--surface));border:1px solid var(--border);border-radius:20px;box-shadow:var(--shadow);min-width:0}
.wj-detail-sheet>.wj-drawer-head{align-items:center;padding:16px 22px;gap:14px}
.wj-detail-sheet>.wj-drawer-head h2{font-size:22px}
.wj-detail-sheet>.wj-drawer-head p{font-size:13px}
.wj-page-back{flex:none;display:inline-flex;align-items:center;gap:6px}
.wj-detail-sheet>.wj-drawer-body{overflow:visible;padding:22px}
.wj-detail-sheet>.wj-drawer-foot{position:sticky;bottom:0;z-index:2;border-radius:0 0 20px 20px}
#content.wj-detail-loading>*{visibility:hidden}
@media(max-width:699px){.wj-detail-sheet>.wj-drawer-head{padding:12px 14px;flex-wrap:wrap}.wj-detail-sheet>.wj-drawer-body{padding:16px}.wj-detail-sheet{border-radius:16px}.wj-detail-sheet>.wj-drawer-foot{border-radius:0 0 16px 16px}}
.wj-lang-mode{display:inline-flex;align-items:center;justify-content:center;gap:5px}
/* ---------- Tienda dentro del panel de la web del centro (<código>?embed=1, saas/embed/reservar.js) ----------
   El panel ya pone el nombre del centro y el botón de cerrar: sobran la cabecera oscura, la portada y el pie.
   Queda una barra clara con el logo, la cuenta y el carrito, a lo ancho del panel. */
html.wj-shop-embed .wj-shop-hero,html.wj-shop-embed .wj-shop-nav,html.wj-shop-embed .wj-shop-menubtn,html.wj-shop-embed .wj-shop-mobile-menu,html.wj-shop-embed .wj-shop-backweb,html.wj-shop-embed .wj-shop-foot-inner{display:none}
html.wj-shop-embed .wj-shop-head{background:var(--shop-card);color:var(--shop-ink);border-bottom:1px solid var(--shop-line)}
html.wj-shop-embed .wj-shop-head-inner,html.wj-head-compact.wj-shop-embed .wj-shop-head-inner{padding:8px 14px;gap:10px}
html.wj-shop-embed .wj-shop-head .wj-public-brand{flex:1;min-width:0;color:var(--shop-ink);font-weight:700}
html.wj-shop-embed .wj-shop-head .wj-public-logo,html.wj-head-compact.wj-shop-embed .wj-shop-head .wj-public-logo{height:30px;max-width:150px}
html.wj-shop-embed .wj-shop-cartbtn{width:36px;height:36px;border-color:var(--shop-line);background:var(--shop-card);color:var(--shop-ink)}
html.wj-shop-embed .wj-shop-cartbtn:hover{background:var(--shop-bg)}
html.wj-shop-embed .wj-shop-cartbtn>svg,html.wj-shop-embed .wj-shop-cartbtn>span>svg{filter:none}
/* Sin logo, el nombre ya sale en la cabecera del panel: no se repite. */
html.wj-shop-embed .wj-shop-head .wj-public-brand:not(:has(img)){visibility:hidden}
html.wj-shop-embed .wj-shop-foot{padding:14px 16px 18px;background:transparent;color:var(--shop-muted)}
html.wj-shop-embed .wj-shop-foot-links{border-top:0;padding-top:0;justify-content:center;align-items:center;color:var(--shop-muted)}
html.wj-shop-embed .wj-shop-powered-card{margin-left:0;padding:6px 10px;box-shadow:none;border:1px solid var(--shop-line)}
html.wj-shop-embed .wj-shop-powered-card img{height:16px}

/* ---------- Web de reservas → Compartir (/reservas/web-de-reservas/compartir) ---------- */
.wj-share{display:grid;gap:18px;max-width:980px}
.wj-share-venue{max-width:360px}
.wj-share-card{display:grid;gap:16px;min-width:0;padding:20px 22px;border:1px solid var(--border);border-radius:20px;background:var(--surface)}
.wj-share-card-head{display:flex;align-items:flex-start;gap:14px}
.wj-share-card-head>div{flex:1;min-width:0}
.wj-share-card-head h3{margin:0;font-size:18px;letter-spacing:-.01em}
.wj-share-card-head p{margin:4px 0 0;color:var(--muted);font-size:14px;line-height:1.55}
.wj-share-ico{flex:none;display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:var(--primary-weak);color:var(--accent)}
.wj-share-sub{display:grid;gap:8px;padding-top:16px;border-top:1px dashed var(--border)}
.wj-share-sub h4,.wj-share-step h4{margin:0;font-size:15px}
.wj-share-sub p,.wj-share-step>p{margin:0;color:var(--muted);font-size:14px;line-height:1.5}
.wj-share-note{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0;padding:10px 12px;border-radius:12px;background:var(--surface2);color:var(--muted);font-size:13px;line-height:1.45}
.wj-share-note>span{flex:1 1 240px}
.wj-share-note.ok{color:var(--text)}
.wj-share-note.ok .wj-icon{color:var(--ok)}
.wj-share-steps{display:grid;gap:22px;margin:0;padding:0;list-style:none}
.wj-share-step{display:grid;grid-template-columns:32px minmax(0,1fr);gap:6px 14px;align-items:start}
.wj-share-step>*{grid-column:2}
.wj-share-step>.wj-share-step-n{grid-column:1;grid-row:1 / span 6;display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--accent);color:var(--on-accent);font-weight:800;font-size:14px}
.wj-share-code{position:relative;display:flex;align-items:stretch;gap:8px;min-width:0;margin-top:6px}
.wj-share-code pre{flex:1;min-width:0;margin:0;padding:12px 14px;overflow-x:auto;border:1px solid var(--border);border-radius:12px;background:var(--surface2);font:500 12.5px/1.55 var(--font-mono);color:var(--text);white-space:pre-wrap;overflow-wrap:anywhere}
.wj-share-code .wj-btn{flex:none;align-self:flex-start}
.wj-share-pick{display:grid;gap:4px;max-width:420px;margin-top:6px}
.wj-share-opts{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:12px;margin-top:8px}
.wj-share-opt{display:flex;flex-direction:column;gap:4px;min-width:0;padding:14px;border:1px solid var(--border);border-radius:16px;background:var(--surface)}
.wj-share-opt small{color:var(--muted);font-size:13px;line-height:1.45}
.wj-share-opt .wj-share-code{flex-direction:column;margin-top:auto;padding-top:8px}
.wj-share-direct{display:grid;gap:6px;margin-top:10px}
.wj-share-fab{display:grid;gap:12px;max-width:640px}
.wj-share-fab .wj-switch-row{padding:0;border:0}
.wj-share-fab-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:12px;align-items:start}
.wj-share-fab-fields[hidden]{display:none}
.wj-share-fab-stage{display:flex;justify-content:flex-end;align-items:flex-end;min-height:76px;padding:12px;border:1px dashed var(--border-strong);border-radius:16px;background:repeating-linear-gradient(135deg,var(--surface2) 0 10px,var(--surface) 10px 20px)}
.wj-share-fab-preview{display:inline-flex;align-items:center;gap:9px;padding:12px 20px 12px 16px;border:0;border-radius:999px;background:var(--text);color:var(--surface);font:inherit;font-weight:700;font-size:14px;box-shadow:0 12px 28px -10px rgba(10,15,28,.55),0 2px 6px rgba(10,15,28,.15);cursor:pointer;transition:transform .18s ease}
.wj-share-fab-preview:hover{transform:translateY(-2px)}
.wj-share-help{border:1px solid var(--border);border-radius:12px;background:var(--surface)}
.wj-share-help>summary{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;font-weight:700;cursor:pointer;list-style:none}
.wj-share-help>summary::-webkit-details-marker{display:none}
.wj-share-help>summary::after{content:"";width:8px;height:8px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(45deg);transition:transform .18s ease}
.wj-share-help[open]>summary::after{transform:rotate(-135deg)}
.wj-share-help>div{display:grid;gap:8px;padding:0 14px 14px;color:var(--muted);font-size:14px;line-height:1.55}
.wj-share-help ol{margin:0;padding-left:20px;display:grid;gap:6px}
.wj-share-help p{margin:0}
@media(max-width:720px){
 .wj-share-card{padding:16px}
 .wj-share-card-head{flex-wrap:wrap}
 .wj-share-card-head>.wj-btn{width:100%;justify-content:center}
 .wj-share-step{grid-template-columns:26px minmax(0,1fr);gap:6px 10px}
 .wj-share-step>.wj-share-step-n{width:26px;height:26px;font-size:13px}
 .wj-share-code{flex-direction:column}
}
@media(prefers-reduced-motion:reduce){.wj-share-fab-preview,.wj-share-help>summary::after{transition:none}}

/* Contrato y facturación: el alta como una lista de pasos (hecho / falta) */
.wj-acct{display:grid;gap:14px}
.wj-acct-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.wj-acct-head h3{margin:0 0 6px}
.wj-acct-head p{margin:0;color:var(--muted);line-height:1.55}
.wj-acct-head p b{color:var(--text)}
.wj-acct-count{font-size:14px;color:var(--muted);white-space:nowrap}
.wj-acct-count b{font-size:22px;color:var(--text)}
.wj-acct.is-warn{border-color:var(--warn);background:var(--warn-weak)}
.wj-acct.is-locked{border-color:var(--danger);background:var(--danger-weak)}
.wj-acct-bar{height:6px;border-radius:999px;background:var(--border);overflow:hidden}
.wj-acct-bar i{display:block;height:100%;width:0;border-radius:999px;background:var(--accent);transition:width .5s ease}
.wj-acct-list{display:grid}
.wj-acct-step{border-top:1px solid var(--border)}
.wj-acct-row{display:flex;align-items:center;gap:12px;padding:12px 0}
.wj-acct-toggle{flex:1;min-width:0;display:flex;align-items:center;gap:12px;background:none;border:0;padding:0;color:inherit;font:inherit;text-align:left}
button.wj-acct-toggle{cursor:pointer}
.wj-acct-toggle>svg{flex:none;color:var(--muted);transition:transform .2s ease;transform:rotate(90deg)}
.wj-acct-step.open .wj-acct-toggle>svg{transform:rotate(-90deg)}
.wj-acct-dot{flex:none;width:28px;height:28px;border-radius:999px;display:grid;place-items:center;border:2px solid var(--border);color:var(--muted)}
.wj-acct-dot em{font-style:normal;font-size:13px;font-weight:700}
.wj-acct-step.todo .wj-acct-dot{border-color:var(--accent);color:var(--accent)}
.wj-acct-step.done .wj-acct-dot{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.wj-acct-step.review .wj-acct-dot{border-color:var(--warn);color:var(--warn)}
.wj-acct-main{flex:1;display:grid;gap:2px;min-width:0}
.wj-acct-main b{font-size:15px}
.wj-acct-main small{font-size:13px;color:var(--muted);line-height:1.45}
.wj-acct-step.done .wj-acct-main b{color:var(--muted)}
.wj-acct-row>.wj-btn{flex:none}
.wj-acct-body{display:none;padding:0 0 18px 40px}
.wj-acct-step.open .wj-acct-body{display:grid;gap:12px}
.wj-acct-body>.wj-help:first-child{margin-top:0}
@media (max-width:640px){.wj-acct-row{flex-wrap:wrap}.wj-acct-row>.wj-btn{margin-left:40px}.wj-acct-body{padding-left:0}}

/* Bienvenida de la primera entrada: pantalla completa, imagen a la izquierda y los pasos a la derecha */
.wj-welcome{position:fixed;inset:0;z-index:200;display:grid;grid-template-columns:minmax(320px,44%) 1fr;background:var(--surface);color:var(--text)}
.wj-welcome-visual{position:relative;display:flex;flex-direction:column;justify-content:space-between;gap:20px;padding:32px 36px;background:linear-gradient(160deg,color-mix(in srgb,var(--accent) 14%,var(--surface)) 0%,color-mix(in srgb,var(--accent) 4%,var(--surface)) 100%);overflow:hidden}
.wj-welcome-visual .wj-brand-image img{height:30px;width:auto}
.wj-welcome-visual>p{margin:0;font-size:13px;color:var(--muted)}
.wj-welcome-visual-art{flex:1;display:grid;place-items:center;min-height:0}
.wj-welcome-photo{width:100%;max-width:560px;border-radius:28px;box-shadow:0 30px 60px -30px rgba(15,40,80,.45);animation:wjWelcomeIn .45s ease both}
.wj-welcome-tile{width:min(420px,80%);aspect-ratio:4/3;border-radius:28px;display:grid;place-items:center;color:var(--accent);background:var(--surface);box-shadow:0 30px 60px -30px rgba(15,40,80,.35)}
.wj-welcome-collage{position:relative;width:min(560px,100%);aspect-ratio:1/1}
.wj-welcome-collage img{position:absolute;width:58%;border-radius:24px;box-shadow:0 24px 50px -24px rgba(15,40,80,.45);animation:wjWelcomeIn .5s ease both}
.wj-welcome-collage .c0{left:0;top:4%;rotate:-4deg}
.wj-welcome-collage .c1{right:0;top:0;rotate:3deg;animation-delay:.08s}
.wj-welcome-collage .c2{left:6%;bottom:6%;rotate:2deg;animation-delay:.16s}
.wj-welcome-collage .c3{right:4%;bottom:0;rotate:-3deg;animation-delay:.24s}
@keyframes wjWelcomeIn{from{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:none}}
.wj-welcome-card-art{position:relative;width:min(420px,86%)}
.wj-welcome-cc{aspect-ratio:1.586/1;border-radius:24px;padding:26px;display:grid;align-content:space-between;color:#fff;background:linear-gradient(135deg,var(--accent) 0%,color-mix(in srgb,var(--accent) 45%,rgb(11,18,32)) 100%);box-shadow:0 34px 60px -28px rgba(15,40,80,.6)}
.wj-welcome-cc .chip{width:46px;height:34px;border-radius:8px;background:linear-gradient(135deg,rgba(255,255,255,.85),rgba(255,255,255,.45))}
.wj-welcome-cc .num{font-family:var(--font-mono);font-size:20px;letter-spacing:.08em}
.wj-welcome-cc .row{display:flex;justify-content:space-between;font-size:13px;opacity:.9}
.wj-welcome-cc .row i{font-style:normal}
.wj-welcome-lock{position:absolute;right:-14px;top:-14px;width:56px;height:56px;border-radius:50%;display:grid;place-items:center;background:var(--surface);color:var(--ok);box-shadow:0 10px 24px -10px rgba(15,40,80,.4)}
.wj-welcome-done-art{display:grid;place-items:center;color:var(--ok)}
.wj-welcome-main{display:flex;flex-direction:column;min-height:0;overflow-y:auto;padding:28px clamp(22px,5vw,72px) 0}
.wj-welcome-steps{list-style:none;margin:0 0 30px;padding:0;display:flex;gap:6px}
.wj-welcome-steps li{flex:1;display:grid;gap:6px;min-width:0}
.wj-welcome-steps li span{height:4px;border-radius:999px;background:var(--border)}
.wj-welcome-steps li.done span,.wj-welcome-steps li.on span{background:var(--accent)}
.wj-welcome-steps li em{font-style:normal;font-size:12px;color:var(--text-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wj-welcome-steps li.on em{color:var(--text);font-weight:700}
.wj-welcome-body{flex:1;max-width:760px;animation:wjWelcomeIn .3s ease both}
.wj-welcome-body h1{font-size:clamp(26px,3vw,36px);letter-spacing:-.025em;line-height:1.15;margin:0 0 10px}
.wj-welcome-body .lead{font-size:16px;line-height:1.6;color:var(--muted);margin:0 0 24px;max-width:640px}
.wj-welcome-body .lead b{color:var(--text)}
.wj-welcome-field{display:grid;gap:8px;margin:0 0 18px;max-width:460px}
.wj-welcome-field>span{font-weight:600;font-size:14px}
.wj-welcome-logo{display:flex;align-items:center;justify-content:center;gap:10px;height:110px;border:2px dashed var(--border-strong);border-radius:20px;color:var(--muted);cursor:pointer;background:var(--surface2)}
.wj-welcome-logo em{font-style:normal}
.wj-welcome-logo img{max-height:80px;max-width:80%;object-fit:contain}
.wj-welcome-inds{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
.wj-welcome-ind{display:grid;gap:8px;align-content:start;padding:8px 8px 12px;border-radius:20px;border:2px solid var(--border);background:var(--surface);text-align:left;transition:border-color .15s,transform .15s,box-shadow .15s}
.wj-welcome-ind:hover{transform:translateY(-2px);box-shadow:0 12px 24px -16px rgba(15,40,80,.4)}
.wj-welcome-ind.on{border-color:var(--accent);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 18%,transparent)}
.wj-welcome-ind-img{aspect-ratio:4/3;border-radius:12px;overflow:hidden;display:grid;place-items:center;color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,var(--surface2))}
.wj-welcome-ind-img img{width:100%;height:100%;object-fit:cover}
.wj-welcome-ind b{font-size:13px;line-height:1.3;padding:0 4px}
.wj-welcome-q{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 0;border-bottom:1px solid var(--border);max-width:640px}
.wj-welcome-q>span{font-weight:600}
.wj-welcome-seg{display:inline-flex;gap:4px;padding:4px;border-radius:999px;background:var(--surface2);border:1px solid var(--border)}
.wj-welcome-seg button{border:0;background:transparent;padding:8px 18px;border-radius:999px;font-weight:600;color:var(--muted)}
.wj-welcome-seg button.on{background:var(--surface);color:var(--text);box-shadow:var(--shadow)}
.wj-welcome-hours{margin-top:18px;max-width:640px;border:1px solid var(--border);border-radius:16px;padding:6px 16px}
.wj-welcome-hours summary{cursor:pointer;font-weight:600;padding:10px 0}
.wj-welcome-mods{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px}
.wj-welcome-sub{margin:22px 0 10px;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-3)}
.wj-welcome-mod{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:16px;border:2px solid var(--border);background:var(--surface);text-align:left;transition:border-color .15s}
.wj-welcome-mod.on{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 6%,var(--surface))}
.wj-welcome-mod.fixed{cursor:default}
.wj-welcome-mod-ico{flex:none;width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:var(--surface2);color:var(--accent)}
.wj-welcome-mod-main{flex:1;display:grid;gap:2px;min-width:0}
.wj-welcome-mod-main small{color:var(--muted);font-size:12px;line-height:1.4}
.wj-welcome-mod-tag{font-size:11px;font-weight:700;color:var(--accent);white-space:nowrap}
.wj-welcome-check{flex:none;width:24px;height:24px;border-radius:8px;border:2px solid var(--border-strong);display:grid;place-items:center;background:var(--surface);color:var(--on-accent);padding:0}
.wj-welcome-mod.on .wj-welcome-check,.wj-welcome-prod.on .wj-welcome-check{background:var(--accent);border-color:var(--accent)}
.wj-welcome-prods{display:grid;gap:10px;max-width:640px}
.wj-welcome-prod{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:16px;border:2px solid var(--border);background:var(--surface)}
.wj-welcome-prod.on{border-color:var(--accent)}
.wj-welcome-prod>.wj-input{flex:1;min-width:0}
.wj-welcome-price{display:flex;align-items:center;gap:6px;width:130px;flex:none}
.wj-welcome-price .wj-input{text-align:right}
.wj-welcome-points{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.wj-welcome-points li{display:flex;gap:10px;align-items:center;color:var(--muted)}
.wj-welcome-done{list-style:none;margin:0;padding:0;display:grid;gap:10px;max-width:640px}
.wj-welcome-done li{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:16px;background:var(--success-weak);color:var(--text)}
.wj-welcome-done li svg{color:var(--ok);flex:none;margin-top:2px}
.wj-welcome-done li.err{background:var(--warn-weak)}
.wj-welcome-done li.err svg{color:var(--warn)}
.wj-welcome-actions{position:sticky;bottom:0;display:flex;justify-content:flex-end;gap:10px;padding:18px 0 26px;margin-top:28px;background:linear-gradient(180deg,transparent,var(--surface) 30%)}
.wj-welcome-actions .wj-btn.ghost:first-child{margin-right:auto}
.wj-welcome-again{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:16px}
.wj-welcome-again h3{display:flex;align-items:center;gap:8px;margin:0 0 6px}
@media (max-width:900px){.wj-welcome{grid-template-columns:1fr;grid-template-rows:auto 1fr}.wj-welcome-visual{padding:16px 20px;gap:10px}.wj-welcome-visual>p{display:none}.wj-welcome-visual-art{max-height:26vh}.wj-welcome-photo,.wj-welcome-tile{max-height:24vh;width:auto;max-width:100%}.wj-welcome-collage{width:min(240px,64%)}.wj-welcome-card-art{width:min(240px,64%)}.wj-welcome-main{padding-top:18px}.wj-welcome-steps em{display:none}.wj-welcome-inds{grid-template-columns:repeat(2,1fr)}.wj-welcome-q{flex-wrap:wrap}.wj-welcome-again{flex-wrap:wrap}}
.wj-acct-body .wj-btn{justify-self:start}

/* Plan y facturación: página propia (fuera del armazón del panel) */
.wj-subs{min-height:100vh;min-height:100dvh;background:var(--bg);color:var(--text)}
.wj-subs-top{position:sticky;top:0;z-index:20;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;height:60px;padding:0 24px;background:color-mix(in srgb,var(--surface) 88%,transparent);backdrop-filter:blur(18px);border-bottom:1px solid var(--border)}
.wj-subs-back{justify-self:start;display:inline-flex;align-items:center;gap:8px;border:0;background:none;color:var(--muted);font-weight:600;padding:8px 10px;border-radius:999px}
.wj-subs-back:hover{color:var(--text);background:var(--surface2)}
.wj-subs-tabs{display:flex;gap:4px;height:100%}
.wj-subs-tabs button{position:relative;border:0;background:none;padding:0 16px;font-weight:600;color:var(--muted);height:100%}
.wj-subs-tabs button.on{color:var(--accent)}
.wj-subs-tabs button.on:after{content:"";position:absolute;left:12px;right:12px;bottom:-1px;height:3px;border-radius:3px 3px 0 0;background:var(--accent)}
.wj-subs-brand{justify-self:end}
.wj-subs-brand .wj-brand-image img{height:24px;width:auto}
.wj-subs-main{max-width:1240px;margin:0 auto;padding:36px 24px 60px;display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:24px;align-items:start}
.wj-subs-main.tab-funciones{grid-template-columns:minmax(0,1fr) 340px}
.wj-subs-loading{grid-column:1/-1;display:grid;place-items:center;padding:80px}
.wj-subs-col{display:grid;gap:20px;min-width:0}
.wj-subs-side{display:grid;gap:20px;position:sticky;top:84px}
.wj-subs-card{background:var(--surface);border:1px solid var(--border);border-radius:24px;padding:22px 24px;display:grid;gap:14px;min-width:0}
.wj-subs-card h3{margin:0;font-size:18px;letter-spacing:-.015em}
.wj-subs-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}
.wj-subs-card-head p{margin:4px 0 0;color:var(--muted);font-size:14px}
.wj-subs-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.wj-subs-hero{background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 12%,var(--surface)) 0%,var(--surface) 70%);border-color:color-mix(in srgb,var(--accent) 25%,var(--border))}
.wj-subs-hero-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.wj-subs-hero-row>div{display:grid;gap:2px}
.wj-subs-hero-row small{color:var(--muted);font-size:13px}
.wj-subs-hero-ico{flex:none;width:44px;height:44px;border-radius:16px;display:grid;place-items:center;background:var(--surface);color:var(--accent);box-shadow:var(--shadow)}
.wj-subs-hero-right{margin-left:auto;text-align:right}
.wj-subs-hero-right b{font-size:24px;letter-spacing:-.02em}
.wj-subs-bar{height:8px;border-radius:999px;background:color-mix(in srgb,var(--accent) 18%,var(--surface2));overflow:hidden}
.wj-subs-bar i{display:block;height:100%;width:0;border-radius:999px;background:var(--accent);transition:width .6s ease}
.wj-subs-amount{display:grid;gap:2px}
.wj-subs-amount b{font-size:28px;letter-spacing:-.02em}
.wj-subs-hero-row>.wj-btn{margin-left:auto}
.wj-subs-note{margin:0;color:var(--muted);font-size:13px;line-height:1.55}
.wj-subs-warn{display:flex;gap:8px;align-items:center;margin:0;padding:10px 12px;border-radius:12px;background:var(--warn-weak);color:var(--warn);font-size:13px}
.wj-subs-lines{display:grid}
.wj-subs-line{display:flex;align-items:center;gap:10px;padding:11px 0;border-bottom:1px solid var(--border)}
.wj-subs-line:last-child{border-bottom:0}
.wj-subs-line b{flex:1;font-size:14px}
.wj-subs-line small{color:var(--muted);font-size:12px}
.wj-subs-line.total b{font-size:15px}
.wj-subs-line.total span{font-weight:800;font-size:16px}
.wj-subs-line-ico{flex:none;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:var(--success-weak);color:var(--ok)}
.wj-subs-dl{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px 20px;margin:0;padding:16px;border-radius:16px;background:var(--surface2)}
.wj-subs-dl div{display:grid;gap:3px;min-width:0}
.wj-subs-dl .wide{grid-column:1/-1}
.wj-subs-dl dt{font-size:12px;color:var(--text-3);font-weight:600}
.wj-subs-dl dd{margin:0;font-size:14px;overflow-wrap:anywhere}
.wj-subs-form{display:grid;gap:14px;padding-top:6px;border-top:1px dashed var(--border)}
.wj-subs-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.wj-subs-grid label{display:grid;gap:6px;font-size:13px;font-weight:600}
.wj-subs-grid .wide{grid-column:1/-1}
.wj-subs-table{display:grid}
.wj-subs-tr{display:grid;grid-template-columns:1.1fr 1.2fr .9fr .9fr 1.3fr;gap:10px;align-items:center;padding:12px 6px;border-bottom:1px solid var(--border);font-size:14px}
.wj-subs-tr.head{font-size:12px;color:var(--text-3);font-weight:600;padding-top:4px}
.wj-subs-tr:last-child{border-bottom:0}
.wj-subs-tr .num{text-align:right;font-variant-numeric:tabular-nums}
.wj-subs-tr-actions{display:flex;gap:6px;justify-content:flex-end}
.wj-subs-contact{text-align:center;justify-items:center}
.wj-subs-contact p{margin:0;color:var(--muted);font-size:13px;line-height:1.55}
.wj-subs-contact-mark{width:64px;height:64px;border-radius:20px;display:grid;place-items:center;background:color-mix(in srgb,var(--accent) 12%,var(--surface2));overflow:hidden}
.wj-subs-contact-mark .wj-brand-image img{height:16px;width:auto}
.wj-subs-contact-form{display:grid;gap:10px;width:100%;text-align:left}
.wj-subs-contact-form .wj-textarea{min-height:96px}
.wj-subs-alta>.wj-acct{border-radius:24px}
.wj-subs-feats{display:grid;gap:10px}
.wj-subs-feat{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:16px;border:1px solid var(--border);background:var(--surface)}
.wj-subs-feat.picked{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 6%,var(--surface))}
.wj-subs-feat.in{background:var(--surface2)}
.wj-subs-pick{flex:none;width:22px;height:22px;border-radius:7px;border:2px solid var(--border-strong);background:var(--surface);display:grid;place-items:center;color:var(--on-accent);padding:0}
.picked .wj-subs-pick{background:var(--accent);border-color:var(--accent)}
.wj-subs-pick.fixed{background:var(--ok);border-color:var(--ok)}
.wj-subs-feat-ico{flex:none;width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:var(--surface2);color:var(--accent)}
.wj-subs-feat-main{flex:1;display:grid;gap:2px;min-width:0}
.wj-subs-feat-main small{color:var(--muted);font-size:13px}
.wj-subs-feat-tag{font-size:12px;font-weight:700;white-space:nowrap;color:var(--muted)}
.wj-subs-packs{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin:0 0 14px}
.wj-subs-pack{display:flex;flex-direction:column;gap:6px;padding:14px;border-radius:16px;border:1px solid var(--border);background:var(--surface)}
.wj-subs-pack.is-on{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 22%,transparent)}
.wj-subs-pack-price{font-size:20px;font-weight:800}.wj-subs-pack-price small{font-size:12px;font-weight:600;color:var(--muted)}
.wj-subs-pack>small{color:var(--muted);font-size:12px}.wj-subs-pack em{font-style:normal;color:var(--ok);font-weight:700}
.wj-subs-pack .wj-btn{align-self:flex-start;margin-top:auto}
/* Qué trae cada pack, módulo a módulo (los mismos nombres que la web). */
.wj-subs-pack-list{list-style:none;margin:2px 0 6px;padding:0;display:grid;gap:3px;font-size:12px;color:var(--text)}.wj-subs-pack-list li{display:flex;align-items:center;gap:6px}.wj-subs-pack-list li.is-prev{font-weight:700}.wj-subs-pack-list .wj-icon,.wj-subs-pack-list svg{color:var(--ok);flex:none}
.wj-subs-saving span{color:var(--ok);font-weight:700}
.wj-subs-feat.in .wj-subs-feat-tag,.wj-subs-feat.on .wj-subs-feat-tag{color:var(--ok)}
.wj-subs-feat.trial .wj-subs-feat-tag{color:var(--warn)}
.wj-subs-feat.free .wj-subs-feat-tag{color:var(--accent)}
.wj-subs-summary .wj-subs-quote{width:100%;justify-content:center}
.wj-subs-picked{display:grid}
.wj-subs-x{border:0;background:none;color:var(--muted);padding:4px;border-radius:8px}
/* Menú del avatar */
.wj-user-wrap{position:relative;display:inline-flex}
.wj-user-pop{position:absolute;right:0;top:calc(100% + 10px);z-index:60;min-width:260px;padding:8px;border-radius:20px;background:var(--surface);border:1px solid var(--border);box-shadow:0 24px 50px -20px rgba(10,20,40,.35);display:grid;gap:2px}
.wj-user-pop-head{display:flex;align-items:center;gap:10px;padding:10px 10px 12px;border-bottom:1px solid var(--border);margin-bottom:4px}
.wj-user-pop-head span{display:grid;gap:2px;min-width:0}
.wj-user-pop-head small{color:var(--muted);font-size:12px;overflow:hidden;text-overflow:ellipsis}
.wj-user-pop button{display:flex;align-items:center;gap:10px;border:0;background:none;text-align:left;padding:10px 12px;border-radius:12px;font-weight:600;color:var(--text)}
.wj-user-pop button:hover{background:var(--surface2)}
.wj-user-pop button.danger{color:var(--danger)}
@media (max-width:900px){.wj-subs-main,.wj-subs-main.tab-funciones{grid-template-columns:1fr;padding:20px 14px 40px}.wj-subs-side{position:static}.wj-subs-top{grid-template-columns:auto 1fr;height:auto;padding:8px 12px;row-gap:0}.wj-subs-brand{display:none}.wj-subs-tabs{grid-column:1/-1;overflow-x:auto;height:44px}.wj-subs-back span{display:none}.wj-subs-tr{grid-template-columns:1fr auto;row-gap:4px}.wj-subs-tr.head{display:none}.wj-subs-tr-actions{grid-column:1/-1;justify-content:flex-start}.wj-subs-grid{grid-template-columns:1fr}.wj-subs-hero-right{margin-left:0;text-align:left}}
.wj-subs-brand img{height:22px!important;width:auto!important;max-width:120px}.wj-subs-contact-mark img{height:14px!important;width:auto!important;max-width:52px}

/* ==== Aspecto del panel del cliente, el mismo que el panel de Uelta (admin) ====
   Oscuro por defecto, al estilo de las apps de banca: fondo casi negro, tarjetas grafito,
   botones en píldora (el principal, blanco), el contenido en un lienzo redondeado y el
   avatar arriba a la derecha. El modo claro es la misma composición en claro. Solo en el
   panel: las páginas públicas (.wj-public-body) tienen su propio aspecto. */
html[data-theme="dark"] body:not(.wj-public-body){
 --bg:rgb(10,10,12);--surface:rgb(30,31,35);--surface2:rgb(38,39,44);--surface3:rgb(50,51,57);--surface-raised:rgb(30,31,35);--surface-sunken:rgb(20,21,24);
 --hairline:rgba(255,255,255,.07);--border:rgba(255,255,255,.09);--border-strong:rgba(255,255,255,.16);
 --text:rgb(245,246,248);--muted:rgb(164,168,177);--text-3:rgb(112,116,125);
 --accent:rgb(91,149,255);--accent-2:rgb(47,107,255);--primary-weak:rgba(91,149,255,.15);--accent-grad:rgb(91,149,255);--on-accent:rgb(10,10,12);
 --ok:rgb(47,208,138);--success-weak:rgba(47,208,138,.13);--warn:rgb(255,168,38);--warn-weak:rgba(255,168,38,.14);--danger:rgb(255,92,92);--danger-weak:rgba(255,92,92,.14);--neutral-weak:rgb(38,39,44);
 --shadow:none;--shadow-soft:none;--shadow-lg:0 24px 60px -24px rgba(0,0,0,.7);
 --btn-main-bg:rgb(255,255,255);--btn-main-fg:rgb(10,10,12);--btn-main-hover:rgb(228,230,235);
 --canvas:radial-gradient(1100px 620px at 0% 0%,rgba(255,255,255,.055),transparent 62%),linear-gradient(180deg,rgb(28,29,33) 0%,rgb(20,21,24) 100%);
 color-scheme:dark}
html[data-theme="light"] body:not(.wj-public-body){
 --bg:rgb(226,229,239);--surface:rgb(245,246,251);--surface2:rgb(235,237,245);--surface3:rgb(222,225,237);--surface-raised:rgb(245,246,251);--surface-sunken:rgb(235,237,245);
 --hairline:rgba(32,38,86,.07);--border:rgba(32,38,86,.11);--border-strong:rgba(32,38,86,.19);
 --text:rgb(18,20,36);--muted:rgb(88,93,114);--text-3:rgb(128,133,153);
 --accent:rgb(84,94,232);--accent-2:rgb(66,76,212);--primary-weak:rgba(84,94,232,.12);--accent-grad:rgb(84,94,232);--on-accent:rgb(255,255,255);
 --ok:rgb(22,150,82);--success-weak:rgba(22,150,82,.11);--warn:rgb(186,104,0);--warn-weak:rgba(255,168,38,.16);--danger:rgb(214,40,52);--danger-weak:rgba(214,40,52,.1);--neutral-weak:rgb(235,237,245);
 --shadow:none;--shadow-soft:0 1px 2px rgba(32,38,86,.05);--shadow-lg:0 30px 70px -28px rgba(32,38,86,.32);
 --btn-main-bg:rgb(22,24,46);--btn-main-fg:rgb(255,255,255);--btn-main-hover:rgb(44,47,78);
 --canvas:radial-gradient(1000px 600px at 0% 0%,rgba(124,131,253,.16),transparent 60%),radial-gradient(900px 640px at 100% 100%,rgba(84,94,232,.09),transparent 62%),linear-gradient(180deg,rgb(241,242,249) 0%,rgb(234,236,245) 100%);
 color-scheme:light}
html:has(body:not(.wj-public-body)),body:not(.wj-public-body){background:var(--bg)!important}
body:not(.wj-public-body){font-family:Inter,"Segoe UI",system-ui,-apple-system,Roboto,"PingFang SC","Microsoft YaHei",Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased}

/* Botones en píldora; el principal en blanco (oscuro) o negro (claro), sin degradados */
body:not(.wj-public-body) .wj-btn{border-radius:999px;font-weight:600;letter-spacing:-.005em;box-shadow:none}
body:not(.wj-public-body) .wj-btn.primary,body:not(.wj-public-body) .wj-btn.cta{background:var(--btn-main-bg)!important;background-image:none!important;color:var(--btn-main-fg)!important;border-color:transparent!important;box-shadow:none!important}
body:not(.wj-public-body) .wj-btn.primary:hover,body:not(.wj-public-body) .wj-btn.cta:hover{background:var(--btn-main-hover)!important}
body:not(.wj-public-body) .wj-btn:not(.primary):not(.cta):not(.danger){background:var(--surface2);border-color:transparent;color:var(--text)}
body:not(.wj-public-body) .wj-btn:not(.primary):not(.cta):not(.danger):hover{background:var(--surface3)}
body:not(.wj-public-body) .wj-btn.ghost{background:transparent}
body:not(.wj-public-body) .wj-btn.ghost:hover{background:var(--surface2)}

/* Campos */
body:not(.wj-public-body) :is(.wj-input,.wj-select,.wj-textarea){border-radius:12px;background:var(--surface2);border:1px solid transparent;color:var(--text);box-shadow:none}
body:not(.wj-public-body) :is(.wj-input,.wj-select,.wj-textarea):focus{border-color:var(--accent);background:var(--surface);outline:0}
body:not(.wj-public-body) :is(.wj-wd-search,.wj-kb-search,.wj-tpv-code) .wj-input,body:not(.wj-public-body) :is(.wj-wd-search,.wj-kb-search,.wj-tpv-code) .wj-input:focus{border:0;background:transparent;box-shadow:none}

/* Armazón: barra lateral sobre el fondo, barra superior sin caja y el contenido en un lienzo */
body:not(.wj-public-body) .wj-sidebar{background:var(--bg)!important;border:0!important;box-shadow:none!important}
body:not(.wj-public-body) .wj-secondary-nav{background:var(--bg);border-right:0}
body:not(.wj-public-body) .wj-nav-btn{border-radius:12px;color:var(--muted)}
body:not(.wj-public-body) .wj-nav-btn:hover:not(.active){background:var(--surface)!important;color:var(--text)}
body:not(.wj-public-body) .wj-nav-btn.active{background:var(--surface3)!important;color:var(--text)!important;box-shadow:none!important}
body:not(.wj-public-body) .wj-nav-btn.active .wj-lottie{color:var(--text)!important}
body:not(.wj-public-body) .wj-nav-group-label,body:not(.wj-public-body) .wj-nav-section{color:var(--text-3)}
body:not(.wj-public-body) .wj-topbar{background:var(--bg)!important;border-bottom:0!important;backdrop-filter:none!important}
body:not(.wj-public-body) .wj-topbar h1,body:not(.wj-public-body) .wj-topbar .wj-page-title{font-size:26px;letter-spacing:-.03em;font-weight:700}
body:not(.wj-public-body) .wj-global-search{border-radius:999px;background:var(--surface);border-color:transparent}
body:not(.wj-public-body) .wj-top-avatar{box-shadow:0 0 0 2px var(--bg),0 0 0 3px var(--border-strong)}
@media(min-width:900px){
 body:not(.wj-public-body) .wj-shell .wj-content{margin:0 20px 20px 0;border-radius:24px;border:1px solid var(--hairline);background:var(--canvas)}
}

/* Tarjetas y superficies: grafito, esquinas grandes, sin sombras */
body:not(.wj-public-body) :is(.wj-card,.wj-data-surface,.wj-settings-card,.wj-stat,.wj-subs-card,.wj-acct){background:var(--surface);border:1px solid var(--hairline);border-radius:20px;box-shadow:none}
body:not(.wj-public-body) .wj-badge{border-radius:999px}
body:not(.wj-public-body) :is(.wj-modal,.wj-drawer,.wj-detail-drawer,.wj-user-pop,.wj-notif-pop,.wj-search-pop){background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-lg)}
body:not(.wj-public-body) .wj-tabs{border-radius:999px;background:var(--surface);padding:4px}
body:not(.wj-public-body) .wj-tabs button.active,body:not(.wj-public-body) .wj-tabs .active{background:var(--surface3);color:var(--text);border-radius:999px;box-shadow:none}
body:not(.wj-public-body) :is(.wj-secondary-sidebar,.wj-secondary-head,.wj-secondary-nav){background:var(--bg)!important;border-color:var(--hairline)!important;box-shadow:none!important}
body:not(.wj-public-body) .wj-secondary-nav :is(button,a){border-radius:12px}
body:not(.wj-public-body) .wj-secondary-nav :is(button,a).active{background:var(--surface3)!important;color:var(--text)!important;box-shadow:none!important}
body:not(.wj-public-body) .wj-secondary-nav :is(button,a):hover:not(.active){background:var(--surface)!important}
body:not(.wj-public-body) .wj-settings-card{align-content:start}
/* La página tiene su propio scroll: el panel bloquea el de la página entera */
.wj-subs{position:fixed;inset:0;z-index:50;overflow-y:auto;overscroll-behavior:contain}
.wj-subs-brand.wj-user-wrap{justify-self:end}
.wj-subs-contact-mark img{height:34px!important;width:34px!important;max-width:none}
@media (max-width:900px){.wj-subs-brand.wj-user-wrap{display:inline-flex;grid-column:2;grid-row:1}}
/* Avatar de arriba: la foto llena el círculo (antes una regla fijaba el ancho y otra el alto y salía un óvalo) */
.wj-top-avatar{padding:0!important;overflow:hidden!important;background:var(--surface2)!important;color:var(--text)!important}
.wj-top-avatar :is(.wj-avatar,.wj-avatar-media){width:100%!important;height:100%!important;min-width:0!important;border-radius:50%!important;display:grid;place-items:center}
.wj-top-avatar img,.wj-user-pop-head img{width:100%;height:100%;object-fit:cover;border-radius:50%;display:block}
.wj-user-pop-head :is(.wj-avatar,.wj-avatar-media){width:40px;height:40px;flex:none;border-radius:50%;overflow:hidden}
.wj-top-avatar .wj-avatar-media,.wj-user-pop-head .wj-avatar-media{display:block!important}
.wj-top-avatar img,.wj-user-pop-head img{width:100%!important;height:100%!important;max-width:none!important;max-height:none!important;object-fit:cover!important}

/* ==== Carril lateral como el del panel de Uelta (admin) ====
   Iconos macizos de un solo color con el nombre debajo, sin cajas de colores ni
   animaciones; la sección activa lleva el icono sobre una pastilla gris. El centro
   activo pasa arriba a la derecha, junto al avatar. */
body:not(.wj-public-body) .wj-shell{--sidebar:92px;background:var(--bg)!important}
html[data-theme="dark"]:has(body:not(.wj-public-body)){background:rgb(10,10,12)!important}
html[data-theme="light"]:has(body:not(.wj-public-body)){background:rgb(226,229,239)!important}
body:not(.wj-public-body) .wj-sidebar.wj-rail{width:92px!important;padding:14px 6px!important;display:flex;flex-direction:column;gap:4px;background:var(--bg)!important;border:0!important;box-shadow:none!important}
body:not(.wj-public-body) .wj-rail .wj-side-head{height:auto!important;min-height:0!important;padding:0 0 12px!important;display:flex;justify-content:center!important}
.wj-rail-mark{width:44px;height:44px;border-radius:16px;border:0;padding:0;background:var(--surface);display:grid;place-items:center;cursor:pointer;transition:background .18s ease,transform .12s ease}
.wj-rail-mark:hover{background:var(--surface2)}
.wj-rail-mark:active{transform:scale(.94)}
.wj-rail-mark img{width:22px;height:22px;display:block}
body:not(.wj-public-body) .wj-rail .wj-nav{display:flex!important;flex-direction:column;align-items:stretch;gap:2px;flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;padding:0!important;scrollbar-width:none}
.wj-rail .wj-nav::-webkit-scrollbar{display:none}
body:not(.wj-public-body) .wj-rail .wj-rail-btn{position:relative;display:grid!important;grid-template-columns:none!important;justify-items:center;align-content:center;gap:3px!important;width:100%;min-height:0!important;height:auto!important;padding:3px 0!important;margin:0!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;color:var(--muted)!important;font-size:11px!important;font-weight:600!important;line-height:1.2;letter-spacing:0;text-align:center;text-decoration:none;cursor:pointer;transform:none!important;flex:0 0 auto}
.wj-rail-ico{width:46px;height:34px;border-radius:16px;display:grid;place-items:center;transition:background .18s ease,transform .12s ease}
.wj-rail-ico .wj-solid{width:22px;height:22px}
body:not(.wj-public-body) .wj-rail .wj-rail-btn:hover{color:var(--text)!important}
body:not(.wj-public-body) .wj-rail .wj-rail-btn:hover .wj-rail-ico{background:var(--surface)}
body:not(.wj-public-body) .wj-rail .wj-rail-btn:active .wj-rail-ico{transform:scale(.94)}
body:not(.wj-public-body) .wj-rail .wj-rail-btn.active{color:var(--text)!important}
body:not(.wj-public-body) .wj-rail .wj-rail-btn.active .wj-rail-ico{background:var(--surface3)}
body:not(.wj-public-body) .wj-rail .wj-nav-label{display:block!important;opacity:1!important;max-width:84px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
body:not(.wj-public-body) .wj-rail .wj-nav-count{position:absolute;top:0;left:calc(50% + 9px);right:auto;min-width:17px;height:17px;padding:0 5px;margin:0;border-radius:999px;background:var(--danger);color:rgb(255,255,255);font-size:11px;font-weight:700;line-height:17px;display:block!important;text-align:center;box-shadow:0 0 0 2px var(--bg)}
body:not(.wj-public-body) .wj-rail .wj-rail-btn.is-trial::after,body:not(.wj-public-body) .wj-rail .wj-rail-btn.has-pending>.wj-icon::after{display:none!important;content:none!important}
body:not(.wj-public-body) .wj-rail .wj-rail-btn.is-locked{opacity:1}
body:not(.wj-public-body) .wj-rail .wj-rail-btn.is-locked .wj-nav-label::after{content:none}
.wj-rail-sep{display:block;flex:0 0 auto;height:1px;margin:6px 20px;background:var(--hairline)}
body:not(.wj-public-body) .wj-rail .wj-side-foot{margin-top:auto;padding-top:8px!important;border-top:0!important;display:grid;gap:2px}
body:not(.wj-public-body) .wj-rail .wj-side-utility{margin:0 8px 6px;flex-direction:column}

/* Barra superior: iconos macizos en botones redondos, como el admin */
body:not(.wj-public-body) .wj-top-actions{align-items:center;gap:6px}
body:not(.wj-public-body) .wj-top-actions>.wj-btn.icon,body:not(.wj-public-body) .wj-top-actions .wj-notification-btn{width:40px;height:40px;min-width:40px;min-height:40px;padding:0;border-radius:999px;background:transparent;border:0;color:var(--muted);display:inline-grid;place-items:center;box-shadow:none}
body:not(.wj-public-body) .wj-top-actions>.wj-btn.icon:hover,body:not(.wj-public-body) .wj-top-actions .wj-notification-btn:hover,body:not(.wj-public-body) .wj-top-actions>.wj-btn.icon.active{background:var(--surface);color:var(--text)}
body:not(.wj-public-body) .wj-top-actions .wj-solid{width:20px;height:20px}

/* Centro activo arriba a la derecha */
.wj-top-venue{display:inline-flex;align-items:center;gap:8px;height:40px;max-width:240px;padding:0 12px 0 11px;border-radius:999px;border:0;background:var(--surface);color:var(--text);font:inherit;font-size:14px;font-weight:600;cursor:pointer;transition:background .16s ease}
.wj-top-venue>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.wj-top-venue>.wj-solid:first-child{color:var(--accent);flex:none}
.wj-top-venue>.wj-solid:last-child{color:var(--muted);flex:none}
button.wj-top-venue:hover{background:var(--surface2)}
.wj-top-venue.is-static{cursor:default}
.wj-venue-pop{min-width:250px;max-height:min(70vh,520px);overflow-y:auto}
.wj-venue-pop-title{padding:8px 12px 4px;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-3)}
.wj-venue-pop button>span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wj-venue-pop button .wj-solid{color:var(--muted);flex:none}
.wj-venue-pop button.on{background:var(--surface2)}
.wj-venue-pop button.on .wj-solid{color:var(--accent)}
html[data-layout="mobile"] .wj-top-venue{max-width:44vw;height:36px;padding:0 10px;font-size:13px}
html[data-layout="mobile"] .wj-top-venue>.wj-solid:last-child{display:none}

/* Apariencia (Configuración → General) */
.wj-appearance{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:16px}
.wj-appearance h3{display:flex;align-items:center;gap:8px;margin:0 0 4px}
.wj-appearance p{margin:0;max-width:560px}
.wj-theme-seg{display:inline-flex;gap:4px;padding:4px;border-radius:999px;background:var(--surface2)}
.wj-theme-seg button{display:inline-flex;align-items:center;gap:7px;height:36px;padding:0 16px;border:0;border-radius:999px;background:transparent;color:var(--muted);font:inherit;font-weight:600;cursor:pointer}
.wj-theme-seg button:hover{color:var(--text)}
.wj-theme-seg button.on{background:var(--surface);color:var(--text);box-shadow:0 1px 2px rgba(0,0,0,.12)}

/* Iconos que antes eran animados: el dibujo fijo, centrado */
.wj-lottie.is-static{display:inline-grid!important;place-items:center;flex:none;width:auto!important;height:auto!important;overflow:visible!important}
.wj-empty .wj-lottie.is-static{color:var(--text-3);margin-bottom:4px}
.wj-empty .wj-lottie.is-static svg{width:30px;height:30px}
/* Pantallas bajas: el carril se compacta (y, si aun asi no cabe, se queda solo con los iconos y el nombre en la burbuja) */
@media (max-height:920px){
 body:not(.wj-public-body) .wj-rail .wj-rail-btn{padding:2px 0!important;gap:2px!important}
 .wj-rail-ico{height:30px}
 .wj-rail-sep{margin:4px 20px}
 body:not(.wj-public-body) .wj-rail .wj-side-head{padding-bottom:8px!important}
}
@media (max-height:780px){
 body:not(.wj-public-body) .wj-rail .wj-nav-label{display:none!important}
 .wj-rail-ico{height:36px}
 body:not(.wj-public-body) .wj-rail .wj-nav-count{top:-2px}
}

/* ==== TPV con el aspecto del panel de Uelta ====
   Carril sobre el fondo (ya no en bloque invertido), categorías con punto de color,
   fichas grafito con el color del producto en la zona de la imagen, botones en
   píldora y el cobro con el botón principal (blanco en oscuro, negro en claro). */
body.wj-tpv-body .wj-tpv-rail{background:var(--bg);color:var(--muted);border-right:1px solid var(--hairline)}
body.wj-tpv-body .wj-tpv-rail-top{border-bottom:1px solid var(--hairline);color:var(--text);gap:4px;padding:12px 8px}
body.wj-tpv-body .wj-tpv-rail-top #tpv-clock{color:var(--text);letter-spacing:-.02em}
body.wj-tpv-body .wj-tpv-rail-top small{color:var(--muted);opacity:1}
body.wj-tpv-body .wj-tpv-venue{background:var(--surface2);color:var(--text);text-transform:none;letter-spacing:0;font-weight:700;gap:5px;max-width:100%}
body.wj-tpv-body .wj-tpv-venue>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
body.wj-tpv-body .wj-tpv-venue .wj-solid{color:var(--accent);flex:none}
body.wj-tpv-body .wj-tpv-avatar{background:var(--surface3);color:var(--text)}
body.wj-tpv-body .wj-tpv-devchip{border:1px solid var(--hairline);background:var(--surface);border-radius:12px}
body.wj-tpv-body .wj-tpv-devchip:hover{border-color:var(--border-strong)}
body.wj-tpv-body .wj-tpv-rail-cats{padding:6px 0}
body.wj-tpv-body .wj-tpv-cat{width:calc(100% - 12px);margin:2px 6px;border:0!important;border-radius:16px;color:var(--muted);text-transform:none;font-size:12px;letter-spacing:0;padding:10px 4px}
body.wj-tpv-body .wj-tpv-cat:hover{background:var(--surface);color:var(--text)}
body.wj-tpv-body .wj-tpv-cat.active{background:var(--surface3);color:var(--text)}
body.wj-tpv-body .wj-tpv-cat-dot{width:10px;height:10px;border-radius:50%}
body.wj-tpv-body .wj-tpv-rail-foot{border-top:1px solid var(--hairline);padding:4px 0 6px}
body.wj-tpv-body .wj-tpv-more-btn{color:var(--muted);border-radius:16px;width:calc(100% - 12px);margin:2px 6px;text-transform:none;letter-spacing:0;font-size:11px}
body.wj-tpv-body .wj-tpv-more-btn:hover,body.wj-tpv-body .wj-tpv-more-btn[aria-expanded=true]{background:var(--surface);color:var(--text)}
.wj-tpv-lock{width:calc(100% - 12px);margin:2px 6px;display:grid;justify-items:center;gap:4px;padding:9px 0;border:0;border-radius:16px;background:transparent;color:var(--muted);font:inherit;font-size:11px;font-weight:700;cursor:pointer;transition:background .16s ease,color .16s ease}
.wj-tpv-lock:hover{background:var(--surface);color:var(--text)}
body.wj-tpv-body .wj-tpv-more-pop{background:var(--surface);border:1px solid var(--border);border-radius:20px;box-shadow:var(--shadow-lg);color:var(--text)}
body.wj-tpv-body .wj-tpv-menu-sec>span{color:var(--text-3)}
body.wj-tpv-body .wj-tpv-menu-item{color:var(--text);border-radius:16px}
body.wj-tpv-body .wj-tpv-menu-item:hover,body.wj-tpv-body .wj-tpv-menu-item.active{background:var(--surface2)}
body.wj-tpv-body .wj-tpv-menu-item small{color:var(--muted)}
body.wj-tpv-body .wj-tpv-menu-ico{background:var(--surface2);color:var(--text)}
body.wj-tpv-body .wj-tpv-menu-item.danger,body.wj-tpv-body .wj-tpv-menu-item.danger .wj-tpv-menu-ico{color:var(--danger)}
body.wj-tpv-body .wj-tpv-group h4{text-transform:none;letter-spacing:0;font-size:14px;color:var(--text);font-weight:700}
body.wj-tpv-body .wj-tpv-group h4 span{width:10px;height:10px;border-radius:50%}
body.wj-tpv-body .wj-tpv-group h4::after{background:var(--hairline)}
body.wj-tpv-body .wj-tpv-card{border:1px solid var(--hairline);border-top:1px solid var(--hairline);border-radius:20px;background:var(--surface);box-shadow:none}
body.wj-tpv-body .wj-tpv-card:hover{border-color:var(--border-strong);box-shadow:none}
body.wj-tpv-body .wj-tpv-card-img{background:color-mix(in srgb,var(--wj-tpv-card-accent,var(--accent)) 16%,var(--surface2));color:var(--wj-tpv-card-accent,var(--accent))}
body.wj-tpv-body .wj-tpv-card-body{padding:10px 12px 12px}
body.wj-tpv-body .wj-tpv-card-body strong{font-weight:650}
body.wj-tpv-body .wj-tpv-ticket{background:var(--surface);border-left:1px solid var(--hairline)}
body.wj-tpv-body .wj-tpv-ticket-head,body.wj-tpv-body .wj-tpv-ticket-foot{border-color:var(--hairline)}
body.wj-tpv-body .wj-tpv-discount-btn{background:var(--surface2);color:var(--text);border-radius:999px;font-weight:650;letter-spacing:0;padding:12px}
body.wj-tpv-body .wj-tpv-discount-btn:hover{background:var(--surface3)}
body.wj-tpv-body .wj-tpv-pay-btn{background:var(--btn-main-bg);color:var(--btn-main-fg);border-radius:999px;padding:16px 22px}
body.wj-tpv-body .wj-tpv-pay-btn:not(:disabled):hover{background:var(--btn-main-hover)}
body.wj-tpv-body .wj-tpv-ticket.is-selling{box-shadow:none}
body.wj-tpv-body .wj-tpv-ticket.is-selling .wj-tpv-pay-btn:not(:disabled){animation:none}
body.wj-tpv-body .wj-tpv-ticket.is-selling .wj-tpv-totals .total b{color:var(--text)}
body.wj-tpv-body .wj-tpv-tender-btn{border:1px solid var(--hairline);border-radius:20px;background:var(--surface2)}
body.wj-tpv-body .wj-tpv-tender-btn:hover{border-color:var(--border-strong);color:var(--text)}
body.wj-tpv-body .wj-tpv-search .wj-input{border-radius:999px}
/* Pantalla de entrada: la misma composición sobre el lienzo del panel, sin bolas de color */
body.wj-tpv-body .wj-tpv-login-hero{background:var(--canvas);color:var(--text);border-right:1px solid var(--hairline)}
body.wj-tpv-body .wj-tpv-login-orbs{display:none}
body.wj-tpv-body .wj-tpv-login-mark{background:var(--surface);color:var(--text);border:0}
body.wj-tpv-body .wj-tpv-login-kicker{color:var(--muted)}
body.wj-tpv-body .wj-tpv-login-hero-copy p{color:var(--muted);opacity:1}
body.wj-tpv-body .wj-tpv-login-venue{background:var(--surface);color:var(--text)}
body.wj-tpv-body .wj-tpv-login-panel{background:var(--bg)}
body.wj-tpv-body .wj-tpv-login-card{background:var(--surface);border:1px solid var(--hairline);border-radius:28px;box-shadow:none}
/* Barra superior en pantallas medianas: el centro se queda en icono y el buscador se encoge o se oculta */
@media (max-width:1240px){
 .wj-top-venue{width:40px;padding:0;justify-content:center}
 .wj-top-venue>span,.wj-top-venue>.wj-solid:last-child{display:none}
 body:not(.wj-public-body) .wj-global-search{max-width:200px}
}
@media (max-width:1040px){
 body:not(.wj-public-body) .wj-global-search{display:none}
 body:not(.wj-public-body) .wj-secondary-toggle-label{display:none}
}
/* En el móvil no hay carril: manda la barra inferior y el cajón «Más» */
@media (max-width:699px){body:not(.wj-public-body) .wj-sidebar.wj-rail{display:none!important}}
html[data-layout="mobile"] body:not(.wj-public-body) .wj-sidebar.wj-rail{display:none!important}
html[data-layout="mobile"] .wj-top-venue{display:none}
/* ==== Selector de fechas (un día o un periodo), el mismo en todo el panel ====
   Atajos a la izquierda, uno o dos meses, la fecha elegida abajo con Cancelar y Aplicar. */
.wj-date-pop.wj-range-pop{padding:0;border-radius:20px;border:1px solid var(--border);background:var(--surface);box-shadow:0 30px 70px -20px rgba(0,0,0,.45),0 0 0 1px var(--hairline,transparent);overflow:hidden}
.wj-range-pop .wj-range-presets{background:transparent;border-right:1px solid var(--border);padding:12px 10px;min-width:170px;gap:2px}
.wj-range-pop .wj-range-presets button{padding:9px 12px;border-radius:12px;font-weight:500;color:var(--text)}
.wj-range-pop .wj-range-presets button:hover{background:var(--surface2)}
.wj-range-pop .wj-range-presets button.on{background:color-mix(in srgb,var(--accent) 16%,transparent);color:var(--text);font-weight:650}
.wj-range-pop .wj-range-month{padding:14px 14px 8px;width:300px}
.wj-range-pop .wj-range-month+.wj-range-month{border-left:1px solid var(--border)}
.wj-range-pop .wj-date-head{display:grid;grid-template-columns:32px 1fr 32px;align-items:center;margin-bottom:8px}
.wj-range-pop .wj-date-head .wj-btn.icon{width:32px;height:32px;min-width:32px;min-height:32px;border-radius:8px;border:1px solid var(--border);background:transparent;padding:0}
.wj-range-pop .wj-date-head .wj-btn.icon:hover{background:var(--surface2)}
.wj-range-pop .wj-date-head .wj-btn.icon:not(.next) svg{transform:rotate(180deg)}
.wj-range-pop .wj-date-title{text-align:center;font-size:14px;font-weight:700;text-transform:capitalize;letter-spacing:-.01em}
.wj-range-pop .wj-date-selects{display:flex;justify-content:center;gap:2px}
.wj-range-pop .wj-date-selects select{border:0;background:transparent;color:var(--text);font:inherit;font-weight:700;font-size:14px;text-transform:capitalize;padding:4px 6px;border-radius:8px;cursor:pointer}
.wj-range-pop .wj-date-selects select:hover{background:var(--surface2)}
.wj-range-pop .wj-date-dow{display:grid;grid-template-columns:repeat(7,1fr);margin-bottom:4px}
.wj-range-pop .wj-date-dow span{text-align:center;font-size:12px;font-weight:600;color:var(--muted);text-transform:capitalize;padding:4px 0}
.wj-range-pop .wj-date-grid{display:grid;grid-template-columns:repeat(7,1fr);row-gap:4px}
.wj-range-pop .wj-date-cell{height:36px;min-width:0;border:0;border-radius:8px;background:transparent;color:var(--text);font:inherit;font-size:14px;font-weight:500;font-variant-numeric:tabular-nums;cursor:pointer;display:grid;place-items:center;position:relative;transition:background .12s ease}
.wj-range-pop button.wj-date-cell:hover:not(:disabled):not(.sel){background:var(--surface2)}
.wj-range-pop .wj-date-cell.pad{color:var(--muted);opacity:.4;cursor:default}
.wj-range-pop .wj-date-cell:disabled{opacity:.3;cursor:not-allowed}
.wj-range-pop .wj-date-cell.today:not(.sel)::after{content:"";position:absolute;left:35%;right:35%;bottom:5px;height:2px;border-radius:2px;background:var(--accent)}
.wj-range-pop .wj-date-cell.in{background:color-mix(in srgb,var(--accent) 16%,transparent);border-radius:0}
.wj-range-pop .wj-date-cell.sel{background:var(--accent);color:rgb(255,255,255);font-weight:700}
.wj-range-pop .wj-date-cell.today.sel{box-shadow:inset 0 -3px 0 rgba(255,255,255,.55)}
.wj-range-pop .wj-range-foot{display:flex;align-items:center;gap:10px;padding:12px 14px;border-top:1px solid var(--border)}
.wj-range-pop .wj-range-typed{width:118px;height:36px;padding:0 10px;border-radius:12px;border:1px solid var(--border);background:var(--surface2);color:var(--text);font:inherit;font-size:13px;font-variant-numeric:tabular-nums}
.wj-range-pop .wj-range-typed:focus{outline:0;border-color:var(--accent)}
.wj-range-pop .wj-range-typed.bad{border-color:var(--danger)}
.wj-range-pop .wj-range-chosen{font-size:13px;font-weight:600;color:var(--muted);text-transform:capitalize}
.wj-range-pop .wj-range-actions{display:flex;gap:8px;margin-left:auto}
.wj-range-pop .wj-range-actions .wj-btn{height:36px;min-height:36px;padding:0 16px;border-radius:12px!important}
.wj-range-pop .wj-range-actions .wj-btn:not(.primary){background:transparent!important;border:1px solid var(--border)!important;color:var(--text)!important}
.wj-range-pop .wj-range-actions .wj-btn:not(.primary):hover{background:var(--surface2)!important}
.wj-range-pop .wj-range-actions .wj-btn.primary{background:var(--accent)!important;color:rgb(255,255,255)!important;border:0!important}
.wj-range-pop .wj-range-actions .wj-btn.primary:disabled{opacity:.45}
.wj-range-pop .wj-range-value{border-radius:12px;background:var(--surface2);border-color:var(--border)}
@media(max-width:760px){.wj-range-pop .wj-range-month{width:100%}.wj-range-pop .wj-range-presets{border-right:0;border-bottom:1px solid var(--border);min-width:0;flex-direction:row;overflow-x:auto;flex-wrap:nowrap}.wj-range-pop .wj-range-presets button{white-space:nowrap}.wj-range-pop .wj-range-chosen{display:none}}

/* Buscadores: lupa dibujada (no el carácter ⌕), campo con borde fino y texto de ayuda legible */
body:not(.wj-public-body) .wj-search:before{content:"";position:absolute;left:14px;top:50%;width:16px;height:16px;transform:translateY(-50%);background:var(--muted);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M10.5 3a7.5 7.5 0 0 1 6 12l4.3 4.3-1.5 1.5-4.3-4.3A7.5 7.5 0 1 1 10.5 3zm0 2a5.5 5.5 0 1 0 0 11 5.5 5.5 0 0 0 0-11z'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M10.5 3a7.5 7.5 0 0 1 6 12l4.3 4.3-1.5 1.5-4.3-4.3A7.5 7.5 0 1 1 10.5 3zm0 2a5.5 5.5 0 1 0 0 11 5.5 5.5 0 0 0 0-11z'/%3E%3C/svg%3E") center/contain no-repeat;pointer-events:none}
body:not(.wj-public-body) .wj-search input{padding-left:40px;background:var(--surface);border:1px solid var(--border-strong);color:var(--text)}
body:not(.wj-public-body) .wj-search input::placeholder{color:var(--muted);opacity:1}
body:not(.wj-public-body) .wj-search input:hover{border-color:var(--text-3)}
body:not(.wj-public-body) .wj-search input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--primary-weak);background:var(--surface)}
body:not(.wj-public-body) .wj-search:focus-within:before{background:var(--text)}
body:not(.wj-public-body) .wj-toolbar :is(.wj-date-btn,.wj-select){background:var(--surface);border:1px solid var(--border-strong);color:var(--text)}
body:not(.wj-public-body) .wj-global-search{background:var(--surface);border:1px solid var(--border)}
body:not(.wj-public-body) .wj-global-search input::placeholder{color:var(--muted);opacity:1}

/* Interruptor claro / oscuro (pastilla con bola, como un interruptor físico) */
.wj-theme-switch{display:inline-flex;align-items:center;gap:12px;border:0;background:none;padding:0;color:var(--muted);font:inherit;font-size:14px;font-weight:600;cursor:pointer}
.wj-theme-switch .lbl{transition:color .2s ease}
.wj-theme-switch[aria-checked="false"] .lbl.l,.wj-theme-switch[aria-checked="true"] .lbl.d{color:var(--text)}
.wj-theme-track{position:relative;width:64px;height:34px;border-radius:999px;background:linear-gradient(180deg,rgb(14,15,26),rgb(30,32,52));box-shadow:inset 0 2px 6px rgba(0,0,0,.55),0 0 0 1px rgba(255,255,255,.06);flex:none;transition:background .3s ease}
.wj-theme-switch[aria-checked="false"] .wj-theme-track{background:linear-gradient(180deg,rgb(196,201,226),rgb(214,218,238));box-shadow:inset 0 2px 5px rgba(32,38,86,.25),0 0 0 1px rgba(32,38,86,.08)}
.wj-theme-knob{position:absolute;top:4px;left:4px;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 35% 30%,rgb(170,176,255),rgb(108,116,250) 55%,rgb(84,92,232));box-shadow:0 4px 10px rgba(84,92,232,.55),inset 0 1px 1px rgba(255,255,255,.45);color:rgb(255,255,255);transition:transform .32s cubic-bezier(.34,1.4,.64,1)}
.wj-theme-switch[aria-checked="true"] .wj-theme-knob{transform:translateX(30px)}
.wj-theme-switch[aria-checked="false"] .wj-theme-knob{background:radial-gradient(circle at 35% 30%,rgb(255,255,255),rgb(242,243,252) 60%,rgb(222,225,245));color:rgb(84,92,232);box-shadow:0 4px 10px rgba(32,38,86,.25)}
.wj-theme-knob svg{width:14px;height:14px}
.wj-theme-switch:focus-visible .wj-theme-track{outline:2px solid var(--accent);outline-offset:3px}
.wj-theme-switch.compact{flex-direction:column;gap:5px;font-size:11px}
.wj-theme-switch.compact .wj-theme-track{width:52px;height:28px}
.wj-theme-switch.compact .wj-theme-knob{width:20px;height:20px}
.wj-theme-switch.compact[aria-checked="true"] .wj-theme-knob{transform:translateX(24px)}
.wj-rail .wj-side-foot .wj-theme-switch{justify-self:center;margin:2px 0 8px}
@media (max-height:780px){.wj-rail .wj-theme-switch.compact .lbl{display:none}}
.wj-mobile-nav-theme{display:flex;justify-content:center;padding:12px 0 4px}
.wj-range-pop .wj-date-cell.today:not(.sel){border:0;box-shadow:none;outline:0}
/* ==== Submenú flotante y carril ancho ====
   Por defecto el submenú no ocupa sitio: aparece al pasar por el carril o al acercarse al
   borde, y se va al salir. Con la chincheta vuelve a quedarse fijo. El carril puede
   ensancharse (icono y nombre en línea, con los títulos de los grupos). */
@media (min-width:700px){
 html:not([data-layout="mobile"]) body:not(.wj-public-body) .wj-shell.subnav-float,html:not([data-layout="mobile"]) body:not(.wj-public-body) .wj-shell.subnav-float.has-secondary{grid-template-columns:var(--sidebar) minmax(0,1fr)!important}
 html:not([data-layout="mobile"]) body:not(.wj-public-body) .wj-shell.subnav-float .wj-secondary-sidebar,html:not([data-layout="mobile"]) body:not(.wj-public-body) .wj-subnav-flyout .wj-secondary-sidebar{position:fixed!important;top:12px!important;bottom:12px!important;left:calc(var(--sidebar) + 4px)!important;width:252px!important;height:auto!important;z-index:70;display:flex!important;flex-direction:column;border:1px solid var(--border)!important;border-radius:20px!important;background:var(--surface)!important;box-shadow:var(--shadow-lg)!important;opacity:0!important;visibility:hidden!important;transform:translateX(-10px);pointer-events:none!important;transition:opacity .16s ease,transform .2s cubic-bezier(.22,1,.36,1),visibility 0s linear .2s!important;overflow:hidden}
 html:not([data-layout="mobile"]) body:not(.wj-public-body) .wj-shell.subnav-float.peek-current #secondary-sidebar,html:not([data-layout="mobile"]) body:not(.wj-public-body) .wj-shell.subnav-float.peek-other .wj-subnav-flyout .wj-secondary-sidebar{opacity:1!important;visibility:visible!important;transform:none;pointer-events:auto!important;transition:opacity .16s ease,transform .2s cubic-bezier(.22,1,.36,1)!important}
 html:not([data-layout="mobile"]) body:not(.wj-public-body) .wj-shell.subnav-float .wj-secondary-nav{overflow-y:auto;flex:1;min-height:0}
 .wj-subnav-edge{display:none}
 html:not([data-layout="mobile"]) .wj-shell.subnav-float .wj-subnav-edge{display:block;position:fixed;top:0;bottom:0;left:var(--sidebar);width:12px;z-index:65}
 html:not([data-layout="mobile"]) .wj-shell.subnav-float.peek-current .wj-subnav-edge,html:not([data-layout="mobile"]) .wj-shell.subnav-float.peek-other .wj-subnav-edge{display:none}
}
.wj-subnav-flyout:empty{display:none}
.wj-secondary-pin{display:none}
@media (min-width:700px){html:not([data-layout="mobile"]) .wj-secondary-pin{display:inline-grid;width:32px;height:32px;min-width:32px;min-height:32px;padding:0;border-radius:12px;background:transparent;border:0;color:var(--muted);place-items:center}
 html:not([data-layout="mobile"]) .wj-secondary-pin:hover{background:var(--surface2);color:var(--text)}
 html:not([data-layout="mobile"]) .wj-secondary-pin.on{background:var(--surface3);color:var(--text)}
 html:not([data-layout="mobile"]) .wj-secondary-head .wj-secondary-close{display:none}}
.wj-secondary-head{display:flex;align-items:flex-start;gap:6px}
.wj-secondary-head>div:first-child{flex:1;min-width:0}

/* Carril ancho */
.wj-rail-wordmark{display:none}
body:not(.wj-public-body) .wj-shell.rail-wide{--sidebar:236px}
body:not(.wj-public-body) .wj-sidebar.wj-rail{width:var(--sidebar)!important;transition:width .22s cubic-bezier(.22,1,.36,1)}
body:not(.wj-public-body) .wj-shell.rail-wide .wj-rail{padding:14px 12px!important}
body:not(.wj-public-body) .wj-shell.rail-wide .wj-rail .wj-side-head{justify-content:flex-start!important;align-items:center;gap:10px;padding:0 4px 12px!important}
body:not(.wj-public-body) .wj-shell.rail-wide .wj-rail-mark{display:none}
body:not(.wj-public-body) .wj-shell.rail-wide .wj-rail-wordmark{display:block;height:34px;width:auto;margin:4px 0 0 6px}
body:not(.wj-public-body) .wj-shell.rail-wide .wj-rail .wj-rail-btn{grid-template-columns:auto minmax(0,1fr) auto!important;justify-items:start;align-items:center;gap:10px!important;padding:2px 10px 2px 4px!important;border-radius:12px!important;font-size:14px!important;text-align:left}
body:not(.wj-public-body) .wj-shell.rail-wide .wj-rail-ico{width:36px;height:34px;border-radius:12px}
body:not(.wj-public-body) .wj-shell.rail-wide .wj-rail .wj-rail-btn:hover:not(.active){background:var(--surface)!important}
body:not(.wj-public-body) .wj-shell.rail-wide .wj-rail .wj-rail-btn:hover .wj-rail-ico,body:not(.wj-public-body) .wj-shell.rail-wide .wj-rail .wj-rail-btn.active .wj-rail-ico{background:transparent}
body:not(.wj-public-body) .wj-shell.rail-wide .wj-rail .wj-rail-btn.active{background:var(--surface3)!important}
body:not(.wj-public-body) .wj-shell.rail-wide .wj-rail .wj-nav-label{display:block!important;max-width:none}
body:not(.wj-public-body) .wj-shell.rail-wide .wj-rail .wj-nav-count{position:static;margin:0;box-shadow:none}
body:not(.wj-public-body) .wj-shell.rail-wide .wj-rail-sep{height:auto;background:none;margin:14px 10px 6px;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-3)}
body:not(.wj-public-body) .wj-shell.rail-wide .wj-rail-sep::before{content:attr(data-label)}
body:not(.wj-public-body) .wj-shell.rail-wide .wj-rail .wj-side-foot .wj-theme-switch{justify-self:start;flex-direction:row;margin-left:8px}
.wj-rail-expand{border:0;background:transparent;font:inherit}
.wj-rail-expand .wj-rail-ico svg{width:20px;height:20px}
.wj-subnav-flyout{display:contents}
/* La barra de orden dentro de la lista deja aire antes de la primera fila (como en Reservas),
   para que la línea separadora se vea y la primera tarjeta no quede pegada. */
.wj-list>.wj-list-sortbar{margin-bottom:10px;position:relative;z-index:1}
.wj-list>.wj-list-sortbar+*{margin-top:0}
/* Lienzo del contenido con aire alrededor, como el panel de Uelta: no toca el borde derecho
   ni el de abajo (antes llevaba width:100% y el margen lo empujaba fuera). */
@media(min-width:900px){
 html:not([data-layout="mobile"]) body:not(.wj-public-body) .wj-shell .wj-content{width:auto!important;max-width:none!important;height:auto!important;min-height:0!important;align-self:stretch;margin:0 24px 24px 0!important;border-radius:24px;box-sizing:border-box}
}
/* «Menú» ya no hace falta en el ordenador: el submenú sale al acercar el ratón. En el móvil sigue. */
html:not([data-layout="mobile"]) .wj-btn.wj-secondary-toggle{display:none!important}
.wj-subs-feat-tag small{font-weight:500;color:var(--muted);margin-left:2px}
.wj-subs-secure{display:flex;align-items:center;gap:6px}
.wj-subs-hero .wj-badge{margin-left:6px;vertical-align:middle}

/* Verificación de la empresa: huecos para subir documentos */
.wj-kyc-uploads{display:grid;gap:14px}
.wj-kyc-slots{display:grid;gap:10px}
.wj-kyc-slot{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:14px;padding:14px 16px;border:1px solid var(--border);border-radius:16px;background:var(--surface)}
.wj-kyc-slot.is-done{border-color:color-mix(in srgb,var(--ok) 40%,var(--border));background:color-mix(in srgb,var(--ok) 5%,var(--surface))}
.wj-kyc-slot-ico{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:var(--surface2);color:var(--muted)}
.wj-kyc-slot.is-done .wj-kyc-slot-ico{background:var(--success-weak);color:var(--ok)}
.wj-kyc-slot-main{display:grid;gap:3px;min-width:0}
.wj-kyc-slot-main>small{color:var(--muted);font-size:13px;line-height:1.45}
.wj-kyc-opt{font-weight:600;font-size:11px;color:var(--muted);background:var(--surface2);padding:1px 7px;border-radius:999px;margin-left:4px}
.wj-kyc-files{list-style:none;margin:6px 0 0;padding:0;display:grid;gap:4px}
.wj-kyc-files li{display:flex;align-items:center;gap:8px;font-size:13px;min-width:0}
.wj-kyc-files li span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wj-kyc-files li em{font-style:normal;color:var(--muted)}
.wj-kyc-slot label.is-busy{opacity:.6;pointer-events:none}
@media (max-width:640px){.wj-kyc-slot{grid-template-columns:auto minmax(0,1fr)}.wj-kyc-slot>label{grid-column:2;justify-self:start}}
/* Suscripción: «empieza tu prueba» (sin tarjeta no se entra) */
.wj-subgate{min-height:100vh;min-height:100dvh;display:grid;place-items:center;padding:32px 16px;background:var(--canvas,var(--bg));color:var(--text)}
.wj-subgate-card{width:min(560px,100%);display:grid;gap:18px;padding:36px;border-radius:28px;background:var(--surface);border:1px solid var(--hairline);box-shadow:var(--shadow-lg)}
.wj-subgate-logo{height:40px;width:auto;justify-self:start}
.wj-subgate h1{margin:0;font-size:32px;letter-spacing:-.03em;line-height:1.1}
.wj-subgate-lead{margin:0;color:var(--muted);font-size:15px;line-height:1.55}
.wj-subgate-points{list-style:none;margin:0;padding:0;display:grid;gap:14px}
.wj-subgate-points li{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:start}
.wj-subgate-points div{display:grid;gap:2px}
.wj-subgate-points small{color:var(--muted);font-size:13px;line-height:1.45}
.wj-subgate-ico{width:36px;height:36px;border-radius:12px;display:grid;place-items:center;background:var(--primary-weak);color:var(--accent)}
.wj-subgate-plan{padding:16px;border-radius:20px;background:var(--surface2);display:grid;gap:10px}
.wj-subgate-plan>div{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.wj-subgate-plan>div span{font-weight:800;font-size:18px}
.wj-subgate-plan>div small{font-weight:500;font-size:12px;color:var(--muted)}
.wj-subgate-plan ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.wj-subgate-plan li{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:999px;background:var(--surface);font-size:13px;font-weight:600}
.wj-price-lock{margin:0;display:flex;align-items:flex-start;gap:6px;font-size:12px;line-height:1.45;color:var(--muted)}
.wj-price-lock svg{flex:none;margin-top:2px;opacity:.8}
.wj-subgate-go{width:100%;justify-content:center;height:52px;font-size:16px}
/* Antes del borrado de los datos: pedir una exportación a Uelta. */
.wj-subgate-export{width:100%;justify-content:center;height:44px}
.wj-subgate-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.wj-subgate-lang select{height:34px;padding:0 28px 0 10px;border-radius:12px;border:1px solid var(--hairline);background:var(--surface2);color:var(--text);font:inherit;font-size:13px;cursor:pointer}
.wj-subgate-terms{margin:0;color:var(--muted);font-size:12px;line-height:1.5;text-align:center}
.wj-subgate-secure,.wj-subgate-wait{margin:-6px 0 0;display:flex;align-items:center;justify-content:center;gap:6px;color:var(--muted);font-size:13px;text-align:center}
.wj-subgate-wait{margin:0;padding:12px;border-radius:16px;background:var(--warn-weak);color:var(--text);font-size:14px}
.wj-subgate-out{justify-self:center;border:0;background:none;color:var(--muted);font:inherit;font-size:13px;cursor:pointer;text-decoration:underline}
@media (max-width:560px){.wj-subgate-card{padding:24px}.wj-subgate h1{font-size:26px}}

/* Aceptar las condiciones antes de ir a Stripe. */
.wj-check-row{display:flex;gap:10px;align-items:flex-start;font-size:14px;line-height:1.5;cursor:pointer}
.wj-check-row input{margin-top:3px;width:18px;height:18px;flex:0 0 auto;accent-color:var(--accent)}
.wj-check-row a{color:var(--accent);font-weight:600}
.wj-modal-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:8px;margin-top:6px}
/* Soporte: asistente, formulario de consulta y la consulta abierta */
.wj-help-online{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:500;color:var(--muted)}
.wj-help-online i{width:8px;height:8px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 3px var(--success-weak)}
.wj-help-head strong .wj-help-online{display:flex;margin-top:2px}
.wj-help-foot .wj-help-online{justify-content:center;width:100%}
.wj-support-msg.bot{align-self:flex-start;background:var(--surface);border:1px solid var(--border);white-space:normal;max-width:92%}
.wj-bot-name{display:block;font-size:12px;font-weight:700;color:var(--accent);margin-bottom:3px}
.wj-bot-arts{display:grid;gap:6px;margin-top:10px}
.wj-bot-art{display:flex;gap:8px;align-items:flex-start;width:100%;text-align:left;padding:8px 10px;border:1px solid var(--border);border-radius:12px;background:var(--surface2);color:var(--text);font:inherit;font-size:13px;cursor:pointer}
.wj-bot-art:hover{border-color:var(--accent)}
.wj-bot-art svg{flex:none;margin-top:2px;color:var(--accent)}
.wj-bot-art small{display:block;color:var(--muted);font-size:12px;margin-top:2px}
.wj-bot-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.wj-bot-chips .wj-chip,.wj-bot-vote .wj-chip{border:1px solid var(--border);background:var(--surface2);color:var(--text);border-radius:999px;padding:6px 11px;font:inherit;font-size:13px;cursor:pointer}
.wj-bot-chips .wj-chip:hover,.wj-bot-vote .wj-chip:hover{border-color:var(--accent);color:var(--accent)}
.wj-bot-vote{display:flex;align-items:center;gap:6px;margin-top:10px;font-size:13px;color:var(--muted)}
.wj-bot-typing{display:flex;gap:4px;padding:12px 14px}
.wj-bot-typing i{width:7px;height:7px;border-radius:50%;background:var(--text-3);animation:wj-bot-dot 1s infinite ease-in-out}
.wj-bot-typing i:nth-child(2){animation-delay:.15s}.wj-bot-typing i:nth-child(3){animation-delay:.3s}
@keyframes wj-bot-dot{0%,80%,100%{opacity:.3;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}
.wj-bot-form{display:grid;gap:10px;margin-top:12px}
.wj-bot-form label{display:grid;gap:4px;font-size:13px;font-weight:600;color:var(--muted)}
.wj-bot-form-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.wj-bot-form .wj-btn{justify-content:center}
.wj-support-case{display:grid;gap:8px;padding:12px;border:1px solid var(--border);border-radius:16px;background:var(--surface2)}
.wj-support-case>b{display:flex;align-items:center;gap:6px;font-size:14px}
.wj-support-case>small{color:var(--muted);font-size:13px}
.wj-case-form{display:flex;gap:6px}.wj-case-form .wj-input{flex:1;min-width:0}
@media (max-width:420px){.wj-bot-form-row{grid-template-columns:1fr}}

/* Reservas → Aforo y recursos: interruptor de sobreventa. */
.wj-overbook-card{margin:0 0 14px}.wj-overbook-card .wj-switch-row{border:0;padding:4px 0}
/* Pantallas de página entera dentro de #app (tarjeta de la prueba, suscripción, alta, prueba vencida):
   html, body y #app no se desplazan (el panel se desplaza por dentro), así que cada una se desplaza
   sola; si no, en el móvil lo de abajo («Añadir más tarde») quedaba fuera sin poder llegar. */
.wj-subgate,.wj-subs,.wj-onboarding,.wj-platform-expired{height:100%;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain}
/* Reseñas verificadas por Uelta: tienda (nota, apartados, lista, valorar) y panel (Marketing → Reseñas) */
.wj-shop-verified{display:inline-flex;align-items:center;gap:4px;margin-left:auto;padding:3px 9px;border-radius:999px;background:rgba(16,185,129,.12);color:rgb(5,150,105);font-size:12px;font-weight:800;white-space:nowrap}
.wj-shop-verified.big{font-size:12.5px;padding:5px 11px}
.wj-shop-vreview header{align-items:flex-start}
.wj-shop-vreply{margin-left:46px;padding:10px 12px;border-left:3px solid var(--shop-accent);border-radius:0 10px 10px 0;background:var(--shop-card);display:grid;gap:4px}
.wj-shop-vreply b{font-size:12.5px;color:var(--shop-muted)}.wj-shop-vreply p{-webkit-line-clamp:8}
.wj-shop-vsummary{display:grid;grid-template-columns:auto minmax(0,1.2fr) minmax(0,1fr);gap:22px;align-items:center}
.wj-shop-vcats,.wj-shop-vdist{display:grid;gap:7px}
.wj-shop-vcat{display:grid;grid-template-columns:minmax(0,150px) minmax(0,1fr) 34px;gap:10px;align-items:center;font-size:13.5px}
.wj-shop-vcat span:first-child{color:var(--shop-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wj-shop-vcat b{text-align:right;font-variant-numeric:tabular-nums}
.wj-shop-vbar{height:8px;border-radius:999px;background:var(--shop-line);overflow:hidden}
.wj-shop-vbar i{display:block;height:100%;width:0;border-radius:999px;background:rgb(251,188,4);transition:width .5s ease}
.wj-shop-vbar.soft i{background:color-mix(in srgb,rgb(251,188,4) 70%,var(--shop-card))}
.wj-shop-vsort{display:flex;flex-wrap:wrap;gap:6px}
.wj-shop-vsort button{border:1px solid var(--shop-line);background:var(--shop-card);color:var(--shop-ink);border-radius:999px;padding:7px 13px;font:inherit;font-size:13.5px;font-weight:700;cursor:pointer}
.wj-shop-vsort button.on{background:var(--shop-accent);border-color:var(--shop-accent);color:var(--shop-on-accent)}
.wj-shop-vbadge button{display:flex;align-items:center;gap:12px;width:100%;padding:4px 2px;border:0;background:none;color:var(--shop-ink);font:inherit;text-align:left;cursor:pointer}
.wj-shop-vbadge-n{font-size:30px;font-weight:900;letter-spacing:-.02em;line-height:1}
.wj-shop-vbadge span:nth-child(2){display:grid;gap:3px;flex:1}.wj-shop-vbadge small{color:var(--shop-muted);font-size:12.5px}
.wj-shop-mybooking-review{display:inline-flex;align-items:center;gap:6px;align-self:flex-start;margin-top:8px;padding:8px 14px;border-radius:999px;border:0;background:rgb(251,188,4);color:rgb(40,30,0);font:inherit;font-weight:800;font-size:14px;cursor:pointer}
.wj-shop-mybooking-rated{margin-top:6px;display:flex;align-items:center;gap:6px;color:var(--shop-muted);font-size:13.5px}
.wj-shop-rv{display:grid;gap:16px;max-width:680px}
.wj-shop-rv h1{margin:0;font-size:clamp(22px,3vw,28px);line-height:1.2}
.wj-shop-rv-head{display:flex;gap:12px;align-items:flex-start}.wj-shop-rv-head p{margin:4px 0 0;color:var(--shop-muted)}
.wj-shop-rv-verified{display:flex;gap:6px;align-items:flex-start;margin:0;padding:10px 12px;border-radius:12px;background:rgba(16,185,129,.1);color:rgb(4,120,87);font-size:13.5px;line-height:1.45}
.wj-shop-rv-cats{display:grid;gap:4px}
.wj-shop-rv-row{display:grid;grid-template-columns:minmax(0,1fr) auto 76px;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--shop-line)}
.wj-shop-rv-label{font-weight:700}
.wj-shop-rv-stars{display:flex;gap:2px}
.wj-shop-rv-stars button{width:42px;height:42px;border:0;background:none;font-size:32px;line-height:1;color:rgb(218,224,233);cursor:pointer;border-radius:10px;transition:transform .12s ease,color .12s ease}
.wj-shop-rv-stars button.on{color:rgb(251,188,4)}
.wj-shop-rv-stars button:hover{transform:scale(1.12)}
.wj-shop-rv-stars:hover button{color:rgb(251,188,4)}.wj-shop-rv-stars button:hover~button{color:rgb(218,224,233)}
.wj-shop-rv-word{color:var(--shop-muted);font-size:13px;text-align:right}
.wj-shop-rv-comment{display:grid;gap:6px;font-weight:700}.wj-shop-rv-comment em{font-weight:500;color:var(--shop-muted);font-style:normal}
.wj-shop-rv-comment textarea{width:100%;padding:12px;border-radius:12px;border:1px solid var(--shop-line);background:var(--shop-card);color:var(--shop-ink);font:inherit;font-weight:400;resize:vertical}
.wj-shop-rv-hide{display:flex;gap:10px;align-items:flex-start;cursor:pointer}.wj-shop-rv-hide input{width:20px;height:20px;margin-top:1px;accent-color:var(--shop-accent)}
.wj-shop-rv-hide span{display:grid;gap:2px;font-weight:700}.wj-shop-rv-hide small{font-weight:500;color:var(--shop-muted)}
.wj-shop-rv-thanks{justify-items:center;text-align:center}
.wj-shop-rv-ok{width:56px;height:56px;border-radius:50%;display:grid;place-items:center;background:rgba(16,185,129,.14);color:rgb(5,150,105)}
@media(max-width:760px){.wj-shop-vsummary{grid-template-columns:1fr}.wj-shop-rv-row{grid-template-columns:1fr;gap:4px}.wj-shop-rv-word{text-align:left}.wj-shop-vreply{margin-left:0}}
.wj-rv-stars{position:relative;display:inline-block;line-height:1;letter-spacing:1px;color:var(--border);font-size:15px}
.wj-rv-stars .on{position:absolute;inset:0 auto 0 0;overflow:hidden;white-space:nowrap;color:rgb(251,188,4);width:0}
.wj-rv-bar{display:grid;grid-template-columns:minmax(0,160px) minmax(0,1fr) 44px;gap:10px;align-items:center;font-size:14px}
.wj-rv-bar span:first-child{color:var(--muted)}.wj-rv-bar b{text-align:right}
.wj-rv-track{height:8px;border-radius:999px;background:var(--surface2);overflow:hidden}.wj-rv-track i{display:block;height:100%;width:0;border-radius:999px;background:rgb(251,188,4)}
.wj-rv-list{display:grid;gap:10px}
.wj-rv-item{border:1px solid var(--border);border-radius:16px;background:var(--surface);padding:14px 16px;display:grid;gap:10px}
.wj-rv-item.low{border-color:color-mix(in srgb,rgb(245,158,11) 45%,var(--border))}
.wj-rv-item header{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.wj-rv-who{display:grid;gap:2px;min-width:0}.wj-rv-who small{color:var(--muted);font-size:13px}
.wj-rv-score{display:flex;align-items:center;gap:6px;white-space:nowrap}
.wj-rv-cats{display:flex;flex-wrap:wrap;gap:6px}.wj-rv-cats span{padding:3px 9px;border-radius:999px;background:var(--surface2);font-size:13px;color:var(--muted)}.wj-rv-cats b{color:var(--text)}
.wj-rv-comment{margin:0;line-height:1.55}.wj-rv-comment.muted{color:var(--muted);font-size:14px}
.wj-rv-reply{padding:10px 12px;border-left:3px solid var(--accent);border-radius:0 10px 10px 0;background:var(--surface2);display:grid;gap:4px}.wj-rv-reply small{color:var(--muted)}.wj-rv-reply p{margin:0}
.wj-rv-reported{margin:0;display:flex;gap:6px;align-items:flex-start;font-size:13px;color:rgb(180,83,9)}
.wj-rv-actions{display:flex;gap:8px;flex-wrap:wrap}
.wj-mk-toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between}
.wj-mk-toolbar .wj-input{max-width:340px}
.wj-rv-settings .wj-check{display:flex;gap:8px;align-items:center}
.wj-shop-rv-reward{display:flex;gap:7px;align-items:flex-start;margin:0;padding:10px 12px;border-radius:12px;background:rgba(251,188,4,.14);color:var(--shop-ink);font-size:13.5px;line-height:1.45}
.wj-shop-rv-reward.big{font-size:16px;justify-content:center}
.wj-rv-reward-head{display:grid;gap:3px;padding-top:10px;border-top:1px solid var(--border)}.wj-rv-reward-head small{color:var(--muted);line-height:1.45}
.wj-shop-rv-send{width:100%;min-height:50px;border-radius:14px;font-size:16px}.wj-shop-rv-send:disabled{opacity:.55;cursor:not-allowed}.wj-shop-rv-thanks .wj-shop-rv-send{width:auto;padding:0 28px}

/* ---------- Gráfica de líneas con barras (la misma del panel de Uelta) ---------- */
:root{--wj-chart-1:var(--accent);--wj-chart-2:rgb(148,163,184);--wj-chart-3:rgb(167,139,250)}
.wj-chart{margin:0}
.wj-chart-plot{position:relative;cursor:crosshair;touch-action:pan-y}
.wj-chart-plot svg{display:block;width:100%;height:200px;overflow:visible}
.wj-chart-base{stroke:var(--border)}
.wj-chart-max{position:absolute;top:0;left:4px;font-size:11px;line-height:1;color:var(--muted);font-variant-numeric:tabular-nums;pointer-events:none}
.wj-chart-axis{position:relative;height:16px;margin-top:-20px;pointer-events:none}
.wj-chart-axis span{position:absolute;top:0;transform:translateX(-50%);font-size:11px;line-height:16px;color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums}
.wj-chart-guide{position:absolute;left:0;top:4px;bottom:13%;width:1px;margin-left:-.5px;background:linear-gradient(to bottom,transparent,color-mix(in srgb,var(--accent) 55%,transparent) 30%,color-mix(in srgb,var(--accent) 55%,transparent) 80%,transparent);opacity:0;transition:opacity .2s;pointer-events:none}
.wj-chart-glow{stroke-width:5px;filter:drop-shadow(0 0 2px var(--neon)) drop-shadow(0 0 7px var(--neon)) drop-shadow(0 0 16px color-mix(in srgb,var(--neon) 55%,transparent));pointer-events:none}
.wj-chart-glow.minor{stroke-width:4px;filter:drop-shadow(0 0 2px var(--neon)) drop-shadow(0 0 8px color-mix(in srgb,var(--neon) 60%,transparent))}
.wj-chart-core{stroke-width:1.6px;pointer-events:none}
.wj-chart-core.minor{stroke-width:1.2px}
.wj-chart-tip{position:absolute;top:6px;left:0;z-index:2;display:grid;gap:4px;min-width:150px;padding:10px 12px;border:1px solid var(--border);border-radius:12px;background:color-mix(in srgb,var(--surface-raised,var(--surface)) 94%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:var(--shadow-lg);font-size:13px;color:var(--text);opacity:0;transition:opacity .18s;pointer-events:none;white-space:nowrap}
.wj-chart-tip b{font-size:12px;color:var(--muted);font-weight:600}
.wj-chart-tip span{display:flex;align-items:center;gap:8px}
.wj-chart-tip span i{flex:none;width:8px;height:8px;border-radius:2px}
.wj-chart-tip span.is-bar i{background:color-mix(in srgb,var(--accent) 45%,transparent)}
.wj-chart-tip em{margin-left:auto;padding-left:14px;font-style:normal;font-weight:700;color:var(--text);font-variant-numeric:tabular-nums}
.wj-chart.hovering .wj-chart-guide,.wj-chart.hovering .wj-chart-tip{opacity:1}
.wj-chart-vol{display:grid;align-items:end;height:48px;margin-top:4px;column-gap:2px}
.wj-chart-vol-bar{display:flex;align-items:flex-end;justify-content:center;height:100%;cursor:pointer}
.wj-chart-vol-bar i{display:block;width:72%;max-width:14px;border-radius:3px 3px 1px 1px;background:color-mix(in srgb,var(--accent) 38%,transparent);transition:background .15s,box-shadow .15s,opacity .15s}
.wj-chart.hovering .wj-chart-vol-bar i{opacity:.45}
.wj-chart .wj-chart-vol-bar.on i{opacity:1;background:var(--accent);box-shadow:0 0 8px var(--accent),0 0 18px color-mix(in srgb,var(--accent) 50%,transparent)}
.wj-chart figcaption{display:flex;flex-wrap:wrap;gap:16px;margin-top:8px;font-size:13px;color:var(--muted)}
.wj-chart figcaption i{display:inline-block;width:10px;height:10px;margin-right:6px;border-radius:3px;vertical-align:-1px}
.wj-chart-vol-key{margin-left:auto}
.wj-seg{display:inline-flex;gap:2px;padding:3px;border:1px solid var(--border);border-radius:999px;background:var(--surface-sunken,var(--surface))}
.wj-seg button{padding:5px 12px;border:0;border-radius:999px;background:none;color:var(--muted);font:inherit;font-size:13px;font-weight:600;cursor:pointer}
.wj-seg button.on{background:var(--surface);color:var(--text);box-shadow:var(--shadow-soft,0 1px 2px rgba(0,0,0,.08))}

/* ---------- Chat en vivo: bandeja del equipo ---------- */
.wj-chat{display:grid;grid-template-columns:minmax(260px,320px) minmax(0,1fr) minmax(220px,280px);height:calc(100dvh - 150px);min-height:520px;border:1px solid var(--border);border-radius:20px;background:var(--surface);overflow:hidden}
.wj-chat-list{display:flex;flex-direction:column;min-height:0;border-right:1px solid var(--border);background:var(--surface-sunken,var(--surface))}
.wj-chat-top{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 12px 8px}
.wj-chat-me{display:inline-flex;gap:2px;padding:3px;border:1px solid var(--border);border-radius:999px;background:var(--surface)}
.wj-chat-me button{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border:0;border-radius:999px;background:none;color:var(--muted);font:inherit;font-size:13px;font-weight:600;cursor:pointer}
.wj-chat-me button::before{content:"";width:8px;height:8px;border-radius:50%;background:rgb(148,163,184)}
.wj-chat-me button[data-chat-mode="online"]::before{background:var(--ok)}
.wj-chat-me button[data-chat-mode="away"]::before{background:var(--warn)}
.wj-chat-me button.on{background:var(--surface-sunken,var(--bg));color:var(--text)}
.wj-chat-tools{display:flex;gap:4px}
.wj-chat-tools .wj-btn.on{color:var(--accent);background:var(--primary-weak,var(--surface-sunken))}
.wj-chat-filters{display:flex;gap:4px;padding:0 12px 8px;overflow-x:auto;scrollbar-width:none}
.wj-chat-filters button{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border:1px solid transparent;border-radius:999px;background:none;color:var(--muted);font:inherit;font-size:13px;font-weight:600;white-space:nowrap;cursor:pointer}
.wj-chat-filters button.on{border-color:var(--border);background:var(--surface);color:var(--text)}
.wj-chat-filters b{min-width:18px;padding:0 5px;border-radius:999px;background:var(--neutral-weak,var(--border));font-size:11px;line-height:18px;text-align:center}
.wj-chat-filters b:empty{display:none}
.wj-chat-search{display:flex;align-items:center;gap:8px;margin:0 12px 8px;padding:0 10px;border:1px solid var(--border);border-radius:12px;background:var(--surface);color:var(--muted)}
.wj-chat-search input{flex:1;min-width:0;height:36px;border:0;background:none;color:var(--text);font:inherit;outline:0}
.wj-chat-agents{padding:0 14px 6px;font-size:12px;color:var(--muted)}
.wj-chat-agents:empty{display:none}
.wj-chat-items{flex:1;min-height:0;overflow-y:auto;padding:4px 8px 12px}
.wj-chat-row{position:relative;display:flex;align-items:center;gap:10px;width:100%;margin:0 0 2px;padding:10px;border:0;border-radius:16px;background:none;color:var(--text);font:inherit;text-align:left;cursor:pointer;transition:background .15s}
.wj-chat-row:hover{background:var(--surface)}
.wj-chat-row.active{background:var(--surface);box-shadow:inset 0 0 0 1px var(--border)}
.wj-chat-row.is-left{opacity:.55;filter:grayscale(.7)}
.wj-chat-row.is-left.active{opacity:.85}
.wj-chat-row-main{display:grid;flex:1;min-width:0;gap:2px}
.wj-chat-row-top{display:flex;align-items:center;gap:6px;min-width:0}
.wj-chat-row-top strong{overflow:hidden;font-size:14px;text-overflow:ellipsis;white-space:nowrap}
.wj-chat-row-top em{margin-left:auto;font-size:12px;font-style:normal;color:var(--muted);white-space:nowrap}
.wj-chat-row small{overflow:hidden;font-size:13px;color:var(--muted);text-overflow:ellipsis;white-space:nowrap}
.wj-chat-row.has-unread strong,.wj-chat-row.has-unread small{color:var(--text);font-weight:700}
.wj-chat-typing-txt{color:var(--accent);font-style:normal}
.wj-chat-badge{flex:none;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:var(--danger);color:rgb(255,255,255);font-size:12px;font-weight:700;line-height:20px;text-align:center;box-shadow:0 0 0 3px color-mix(in srgb,var(--danger) 18%,transparent)}
.wj-chat-ok{display:inline-grid;place-items:center;flex:none;width:15px;height:15px;border-radius:50%;background:var(--ok);color:rgb(255,255,255)}
.wj-chat-aitag{flex:none;padding:0 6px;border-radius:6px;background:color-mix(in srgb,var(--wj-chart-3) 18%,transparent);color:var(--wj-chart-3);font-size:11px;font-weight:800;line-height:17px}
.wj-chat-ava{position:relative;display:inline-grid;place-items:center;flex:none;width:38px;height:38px;border-radius:50%;background:color-mix(in srgb,var(--accent) 16%,var(--surface));color:var(--accent);font-size:14px;font-weight:800}
.wj-chat-ava.lg{width:56px;height:56px;font-size:20px}
.wj-chat-dot{position:absolute;right:-1px;bottom:-1px;width:12px;height:12px;border:2px solid var(--surface);border-radius:50%;background:rgb(148,163,184)}
.wj-chat-dot.here{background:var(--ok)}
.wj-chat-dot.away{background:var(--warn)}
.wj-chat-gone{margin-top:8px;border-top:1px dashed var(--border);padding-top:6px}
.wj-chat-gone summary{display:flex;align-items:center;gap:6px;padding:8px 10px;color:var(--muted);font-size:13px;font-weight:700;list-style:none;cursor:pointer}
.wj-chat-gone summary::-webkit-details-marker{display:none}
.wj-chat-gone summary .wj-icon{transition:transform .2s;transform:rotate(-90deg)}
.wj-chat-gone[open] summary .wj-icon{transform:none}
.wj-chat-gone summary b{padding:0 6px;border-radius:999px;background:var(--neutral-weak,var(--border));font-size:11px;line-height:18px}
.wj-chat-gone-dot{width:8px;height:8px;border-radius:50%;background:var(--danger)}
.wj-chat-empty,.wj-chat-pick{display:grid;place-items:center;align-content:center;gap:10px;height:100%;min-height:200px;padding:24px;color:var(--muted);text-align:center}
.wj-chat-empty p,.wj-chat-pick p{max-width:260px;margin:0;font-size:14px}
.wj-chat-main{display:flex;flex-direction:column;min-width:0;min-height:0}
.wj-chat-head{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--border)}
.wj-chat-back{display:none}
.wj-chat-head-id{display:grid;flex:1;min-width:0}
.wj-chat-head-id strong{overflow:hidden;font-size:15px;text-overflow:ellipsis;white-space:nowrap}
.wj-chat-head-id small{overflow:hidden;font-size:13px;color:var(--muted);text-overflow:ellipsis;white-space:nowrap}
.wj-chat-pres.here{color:var(--ok);font-weight:700}
.wj-chat-pres.away{color:var(--warn);font-weight:700}
.wj-chat-head-acts{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}
.wj-chat-head-acts .wj-btn.on{border-color:color-mix(in srgb,var(--wj-chart-3) 45%,transparent);background:color-mix(in srgb,var(--wj-chart-3) 14%,transparent);color:var(--wj-chart-3)}
.wj-chat-msgs{flex:1;min-height:0;overflow-y:auto;padding:18px 18px 8px;background:radial-gradient(circle at 1px 1px,color-mix(in srgb,var(--text) 6%,transparent) 1px,transparent 0) 0 0/22px 22px}
.wj-chat-msg{display:flex;flex-direction:column;align-items:flex-start;max-width:min(560px,78%);margin:0 0 10px}
.wj-chat-msg.grouped{margin-top:-6px}
.wj-chat-msg.out{align-items:flex-end;margin-left:auto}
.wj-chat-who{display:inline-flex;align-items:center;gap:4px;margin:0 6px 3px;font-size:12px;font-weight:700;color:var(--muted)}
.wj-chat-msg.from-ai .wj-chat-who{color:var(--wj-chart-3)}
.wj-chat-bubble{padding:9px 13px;border-radius:16px 16px 16px 5px;background:var(--surface-raised,var(--surface));box-shadow:0 1px 2px rgba(15,23,42,.08),0 0 0 1px var(--border);font-size:14px;line-height:1.45;word-break:break-word}
.wj-chat-msg.out .wj-chat-bubble{border-radius:16px 16px 5px 16px;background:var(--accent);color:var(--on-accent,rgb(255,255,255));box-shadow:none}
.wj-chat-msg.from-ai .wj-chat-bubble{background:linear-gradient(135deg,color-mix(in srgb,var(--wj-chart-3) 85%,var(--accent)),var(--wj-chart-3));color:rgb(255,255,255)}
.wj-chat-msg.out .wj-chat-bubble a{color:inherit}
.wj-chat-msg.pending{opacity:.6}
.wj-chat-meta{margin:3px 6px 0;font-size:11px;color:var(--muted)}
.wj-chat-sys{margin:4px auto 12px;max-width:80%;padding:6px 12px;border-radius:999px;background:var(--surface-sunken,var(--bg));color:var(--muted);font-size:12px;text-align:center}
.wj-chat-seen{display:flex;align-items:center;justify-content:flex-end;gap:4px;margin:-6px 6px 8px;font-size:11px;color:var(--ok)}
.wj-chat-dots{display:inline-flex;gap:4px;padding:12px 14px}
.wj-chat-dots i,.wj-cw-dots i{width:7px;height:7px;border-radius:50%;background:currentColor;opacity:.5;animation:wj-chat-dot 1.1s ease-in-out infinite}
.wj-chat-dots i:nth-child(2),.wj-cw-dots i:nth-child(2){animation-delay:.15s}
.wj-chat-dots i:nth-child(3),.wj-cw-dots i:nth-child(3){animation-delay:.3s}
@keyframes wj-chat-dot{0%,60%,100%{transform:translateY(0);opacity:.35}30%{transform:translateY(-4px);opacity:.9}}
.wj-chat-compose{position:relative;display:flex;align-items:flex-end;gap:8px;padding:12px 16px 14px;border-top:1px solid var(--border)}
.wj-chat-compose textarea{flex:1;min-height:42px;max-height:160px;resize:none}
.wj-chat-compose-acts{display:flex;gap:6px}
.wj-chat-qr{position:absolute;left:16px;right:16px;bottom:calc(100% - 6px);z-index:3;display:grid;max-height:260px;overflow-y:auto;padding:6px;border:1px solid var(--border);border-radius:16px;background:var(--surface-raised,var(--surface));box-shadow:var(--shadow-lg)}
.wj-chat-qr button{display:grid;gap:2px;padding:8px 10px;border:0;border-radius:12px;background:none;color:var(--text);font:inherit;text-align:left;cursor:pointer}
.wj-chat-qr button:hover{background:var(--surface-sunken,var(--bg))}
.wj-chat-qr b{font-size:12px;color:var(--accent)}
.wj-chat-qr span{font-size:13px;color:var(--muted)}
.wj-chat-side{min-height:0;overflow-y:auto;padding:14px;border-left:1px solid var(--border);background:var(--surface-sunken,var(--surface))}
.wj-chat-card{margin:0 0 12px;padding:14px;border:1px solid var(--border);border-radius:16px;background:var(--surface)}
.wj-chat-card h4{margin:0 0 10px;font-size:13px}
.wj-chat-card-id{display:grid;justify-items:center;gap:6px;margin-bottom:12px;text-align:center}
.wj-chat-kv{display:flex;justify-content:space-between;gap:10px;padding:6px 0;border-top:1px solid var(--hairline,var(--border));font-size:13px}
.wj-chat-kv span{color:var(--muted)}
.wj-chat-kv b{overflow:hidden;font-weight:600;text-align:right;text-overflow:ellipsis}
.wj-chat-cust{width:100%;margin-top:10px;justify-content:center}
.wj-chat-pages{display:grid;gap:6px;margin:0;padding:0 0 0 16px;font-size:13px}
.wj-chat-pages li small{display:block;color:var(--muted)}
.wj-chat-books{display:grid;gap:6px}
.wj-chat-book{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;border:1px solid var(--border);border-radius:12px;background:none;color:var(--text);font:inherit;text-align:left;cursor:pointer}
.wj-chat-book:hover{border-color:var(--accent)}
.wj-chat-book span{display:grid;min-width:0}
.wj-chat-book small{overflow:hidden;font-size:12px;color:var(--muted);text-overflow:ellipsis;white-space:nowrap}
.wj-chat-qlist{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.wj-chat-qrs{display:grid;gap:10px;margin-bottom:10px}
.wj-chat-qr-row{display:grid;grid-template-columns:170px 1fr;gap:8px}
.wj-chat-color{display:flex;align-items:center;gap:10px}
.wj-chat-color input[type=color]{width:46px;height:36px;padding:2px;border:1px solid var(--border);border-radius:12px;background:var(--surface)}
.wj-chat-color small{color:var(--muted)}
.wj-chat-code{margin:0 0 12px;padding:14px 16px;overflow-x:auto;border:1px solid var(--border);border-radius:12px;background:var(--surface-sunken,var(--bg));font:13px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;white-space:pre-wrap;word-break:break-all}
.wj-chat-stats .wj-page-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:14px}
.wj-chat-stats .wj-page-head h2{margin:0}
@media (max-width:1180px){.wj-chat{grid-template-columns:minmax(240px,300px) minmax(0,1fr)}.wj-chat-side{display:none}}
@media (max-width:760px){
 .wj-chat{display:block;height:calc(100dvh - 170px);min-height:440px;border-radius:16px}
 .wj-chat-list,.wj-chat-main{height:100%}
 .wj-chat.has-conv .wj-chat-list{display:none}
 .wj-chat:not(.has-conv) .wj-chat-main{display:none}
 .wj-chat-back{display:inline-grid;transform:rotate(90deg)}
 .wj-chat-head{flex-wrap:wrap;padding:10px 12px}
 .wj-chat-head-acts{width:100%;justify-content:flex-start}
 .wj-chat-msg{max-width:88%}
 .wj-chat-qlist,.wj-chat-qr-row{grid-template-columns:1fr}
}

/* ---------- Chat en vivo: el botón de la tienda y de la web del centro ---------- */
.wj-cw{--cw-accent:rgb(22,119,255);--cw-ink:rgb(255,255,255);position:fixed;right:max(20px,env(safe-area-inset-right));bottom:max(20px,env(safe-area-inset-bottom));z-index:2147480000;font:400 14.5px/1.45 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:rgb(15,23,42);-webkit-font-smoothing:antialiased}
.wj-cw *,.wj-cw *::before,.wj-cw *::after{box-sizing:border-box}
.wj-cw-launcher{position:relative;display:grid;place-items:center;width:60px;height:60px;margin:0;padding:0;border:0;border-radius:50%;background:var(--cw-accent);color:var(--cw-ink);box-shadow:0 12px 30px -8px color-mix(in srgb,var(--cw-accent) 70%,rgb(0,0,0)),0 3px 8px rgba(15,23,42,.18);cursor:pointer;transition:transform .25s cubic-bezier(.34,1.56,.64,1),box-shadow .2s}
.wj-cw-launcher:hover{transform:scale(1.06)}
.wj-cw-launcher:focus-visible{outline:3px solid color-mix(in srgb,var(--cw-accent) 50%,transparent);outline-offset:3px}
.wj-cw-l-ico{display:grid;place-items:center;transition:transform .3s cubic-bezier(.34,1.56,.64,1)}
.wj-cw.is-open .wj-cw-l-ico{transform:rotate(180deg)}
.wj-cw-badge{position:absolute;top:-3px;right:-3px;min-width:22px;height:22px;padding:0 6px;border:2px solid rgb(255,255,255);border-radius:999px;background:rgb(239,68,68);color:rgb(255,255,255);font-size:12px;font-weight:800;line-height:18px;text-align:center}
.wj-cw.has-unread .wj-cw-launcher{animation:wj-cw-pulse 2.2s ease-out infinite}
@keyframes wj-cw-pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--cw-accent) 55%,transparent),0 12px 30px -8px rgba(15,23,42,.4)}70%{box-shadow:0 0 0 14px transparent,0 12px 30px -8px rgba(15,23,42,.4)}100%{box-shadow:0 0 0 0 transparent,0 12px 30px -8px rgba(15,23,42,.4)}}
.wj-cw.wj-cw-bump .wj-cw-launcher{animation:wj-cw-bump .6s cubic-bezier(.34,1.56,.64,1)}
@keyframes wj-cw-bump{0%,100%{transform:none}35%{transform:translateY(-8px) scale(1.06)}65%{transform:translateY(2px)}}
.wj-cw-panel{position:absolute;right:0;bottom:76px;display:flex;flex-direction:column;width:min(380px,calc(100vw - 32px));height:min(620px,calc(100dvh - 120px));overflow:hidden;border-radius:24px;background:rgb(255,255,255);box-shadow:0 30px 70px -20px rgba(15,23,42,.45),0 0 0 1px rgba(15,23,42,.06);opacity:0;visibility:hidden;transform:translateY(16px) scale(.96);transform-origin:bottom right;transition:opacity .22s ease,transform .32s cubic-bezier(.22,1,.36,1),visibility 0s .32s}
.wj-cw.is-open .wj-cw-panel{opacity:1;visibility:visible;transform:none;transition:opacity .22s ease,transform .32s cubic-bezier(.22,1,.36,1)}
.wj-cw-head{display:flex;align-items:center;gap:10px;padding:16px 12px 16px 16px;background:var(--cw-accent);color:var(--cw-ink)}
.wj-cw-ava{position:relative;display:grid;place-items:center;flex:none;width:40px;height:40px;border-radius:50%;background:color-mix(in srgb,var(--cw-ink) 22%,transparent);font-weight:800}
.wj-cw-ava.sm{width:30px;height:30px;font-size:13px;background:color-mix(in srgb,var(--cw-accent) 16%,rgb(255,255,255));color:var(--cw-accent)}
.wj-cw-ava i{position:absolute;right:-1px;bottom:-1px;width:12px;height:12px;border:2px solid var(--cw-accent);border-radius:50%;background:rgb(148,163,184)}
.wj-cw-ava i.on{background:rgb(34,197,94)}
.wj-cw-id{display:grid;flex:1;min-width:0}
.wj-cw-id strong{overflow:hidden;font-size:16px;text-overflow:ellipsis;white-space:nowrap}
.wj-cw-id small{font-size:12px;opacity:.85}
.wj-cw-icon{display:grid;place-items:center;flex:none;width:34px;height:34px;margin:0;padding:0;border:0;border-radius:50%;background:transparent;color:inherit;cursor:pointer;opacity:.85}
.wj-cw-icon:hover{background:color-mix(in srgb,var(--cw-ink) 16%,transparent);opacity:1}
.wj-cw-icon.on{opacity:1}
.wj-cw-body{position:relative;display:flex;flex-direction:column;flex:1;min-height:0;background:rgb(246,248,251)}
.wj-cw-scroll{flex:1;min-height:0;overflow-y:auto;padding:16px 14px 8px;overscroll-behavior:contain}
.wj-cw-msg{display:flex;flex-direction:column;align-items:flex-start;max-width:84%;margin:0 0 8px}
.wj-cw-msg.out{align-items:flex-end;margin-left:auto}
.wj-cw-msg.grouped{margin-top:-4px}
.wj-cw-who{display:inline-flex;align-items:center;gap:4px;margin:0 6px 3px;font-size:12px;font-weight:700;color:rgb(100,116,139)}
.wj-cw-bubble{padding:9px 13px;border-radius:18px 18px 18px 5px;background:rgb(255,255,255);box-shadow:0 1px 2px rgba(15,23,42,.08);font-size:15px;word-break:break-word}
.wj-cw-msg.out .wj-cw-bubble{border-radius:18px 18px 5px 18px;background:var(--cw-accent);color:var(--cw-ink);box-shadow:none}
.wj-cw-bubble a{color:inherit;text-decoration:underline}
.wj-cw-msg.pending{opacity:.6}
.wj-cw-time{margin:2px 8px 0;font-size:11px;color:rgb(148,163,184)}
.wj-cw-note{margin:6px auto 12px;max-width:90%;padding:8px 12px;border-radius:12px;background:rgb(255,255,255);color:rgb(71,85,105);font-size:13px;text-align:center;box-shadow:0 0 0 1px rgba(15,23,42,.06)}
.wj-cw-note.err{background:rgb(254,242,242);color:rgb(185,28,28)}
.wj-cw-seen{display:flex;align-items:center;justify-content:flex-end;gap:3px;margin:-4px 8px 8px;font-size:11px;color:rgb(22,163,74)}
.wj-cw-dots{display:inline-flex;gap:4px;padding:12px 14px;color:rgb(100,116,139)}
.wj-cw-chips{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px;margin:4px 0 12px}
.wj-cw-chip{padding:8px 12px;border:1.5px solid color-mix(in srgb,var(--cw-accent) 55%,transparent);border-radius:999px;background:rgb(255,255,255);color:var(--cw-accent);font:inherit;font-size:13px;font-weight:600;text-align:left;cursor:pointer;transition:background .15s,color .15s,transform .15s}
.wj-cw-chip:hover{background:var(--cw-accent);color:var(--cw-ink);transform:translateY(-1px)}
.wj-cw-who-form{display:grid;gap:10px;margin-top:8px;padding:14px;border-radius:16px;background:rgb(255,255,255);box-shadow:0 1px 3px rgba(15,23,42,.08)}
.wj-cw-who-form .wj-cw-msg{margin-bottom:0}
.wj-cw-ask{margin:0;font-size:14px;font-weight:700}
.wj-cw-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.wj-cw-who-form label{display:grid;gap:4px;font-size:12px;font-weight:600;color:rgb(71,85,105)}
.wj-cw-who-form input:not([type=checkbox]),.wj-cw-who-form textarea{width:100%;min-height:40px;padding:8px 11px;border:1px solid rgb(203,213,225);border-radius:12px;background:rgb(255,255,255);color:rgb(15,23,42);font:inherit;font-size:15px;outline:0;resize:none}
.wj-cw-who-form input:focus,.wj-cw-who-form textarea:focus{border-color:var(--cw-accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--cw-accent) 20%,transparent)}
.wj-cw-check{display:flex!important;grid-template-columns:none;align-items:flex-start;gap:8px!important;font-weight:500!important}
.wj-cw-check input{flex:none;width:17px;height:17px;margin:1px 0 0;accent-color:var(--cw-accent)}
.wj-cw-check a{color:var(--cw-accent)}
.wj-cw-me{display:flex;align-items:center;gap:10px;padding:10px;border-radius:12px;background:rgb(246,248,251)}
.wj-cw-me span:last-child{display:grid;min-width:0}
.wj-cw-me small{overflow:hidden;color:rgb(100,116,139);text-overflow:ellipsis}
.wj-cw-go{height:44px;border:0;border-radius:12px;background:var(--cw-accent);color:var(--cw-ink);font:inherit;font-weight:700;cursor:pointer;transition:filter .15s,transform .15s}
.wj-cw-go:hover{filter:brightness(1.06)}
.wj-cw-go:active{transform:scale(.98)}
.wj-cw-go:disabled{opacity:.6;cursor:wait}
.wj-cw-link{padding:0;border:0;background:none;color:var(--cw-accent);font:inherit;font-weight:600;cursor:pointer;text-decoration:underline}
.wj-cw-or{margin:0;font-size:13px;color:rgb(100,116,139);text-align:center}
.wj-cw-err{margin:0;font-size:13px;color:rgb(220,38,38)}
.wj-cw-err:empty{display:none}
.wj-cw-extra:empty{display:none}
.wj-cw-extra{padding:0 14px 8px}
.wj-cw-human{display:block;margin:0 auto;padding:7px 14px;border:1px solid rgb(203,213,225);border-radius:999px;background:rgb(255,255,255);color:rgb(51,65,85);font:inherit;font-size:13px;font-weight:600;cursor:pointer}
.wj-cw-rate{display:flex;align-items:center;justify-content:center;gap:8px;font-size:13px;color:rgb(71,85,105)}
.wj-cw-rate button{width:38px;height:38px;border:1px solid rgb(226,232,240);border-radius:50%;background:rgb(255,255,255);font-size:18px;cursor:pointer;transition:transform .15s}
.wj-cw-rate button:hover{transform:scale(1.12)}
.wj-cw-rate+.wj-cw-human{margin-top:8px}
.wj-cw-thanks{margin:0;text-align:center;color:rgb(22,163,74);font-weight:700}
.wj-cw-compose{display:flex;align-items:flex-end;gap:8px;padding:10px 10px 10px 14px;border-top:1px solid rgb(226,232,240);background:rgb(255,255,255)}
.wj-cw-compose[hidden]{display:none}
.wj-cw-compose textarea{flex:1;min-height:40px;max-height:120px;padding:9px 0;border:0;background:none;color:rgb(15,23,42);font:inherit;font-size:15px;outline:0;resize:none}
.wj-cw-compose button{display:grid;place-items:center;flex:none;width:40px;height:40px;border:0;border-radius:50%;background:var(--cw-accent);color:var(--cw-ink);cursor:pointer;transition:transform .15s}
.wj-cw-compose button:active{transform:scale(.92)}
.wj-cw-brand{margin:0;padding:6px;background:rgb(255,255,255);font-size:11px;color:rgb(148,163,184);text-align:center}
.wj-cw-brand a{color:inherit;font-weight:700;text-decoration:none}
.wj-cw-teaser{position:absolute;right:0;bottom:76px;width:min(330px,calc(100vw - 32px));padding:14px 14px 12px;border-radius:20px;background:rgb(255,255,255);box-shadow:0 24px 60px -18px rgba(15,23,42,.45),0 0 0 1px rgba(15,23,42,.06);transform-origin:bottom right;animation:wj-cw-pop .45s cubic-bezier(.34,1.56,.64,1)}
.wj-cw-teaser[hidden]{display:none}
@keyframes wj-cw-pop{from{opacity:0;transform:translateY(12px) scale(.9)}to{opacity:1;transform:none}}
.wj-cw-tmsg{display:flex;align-items:flex-start;gap:10px;padding-right:22px}
.wj-cw-tmsg p{margin:4px 0 0;font-size:15px;font-weight:600}
.wj-cw-teaser .wj-cw-chips{justify-content:flex-start;margin:10px 0 0}
.wj-cw-tx{position:absolute;top:8px;right:8px;display:grid;place-items:center;width:28px;height:28px;border:0;border-radius:50%;background:rgb(241,245,249);color:rgb(71,85,105);cursor:pointer}
@media (max-width:520px){
 .wj-cw:not(.is-frame).is-open .wj-cw-panel{position:fixed;inset:0;width:auto;height:auto;border-radius:0}
 .wj-cw:not(.is-frame).is-open .wj-cw-launcher{display:none}
}
@media (prefers-reduced-motion:reduce){.wj-cw *{animation:none!important;transition:none!important}}
/* Dentro del iframe de la web del centro: fondo transparente; la página de fuera da el tamaño. */
html.wj-cw-frame-html,html.wj-cw-frame-html body,body.wj-cw-frame-body{background:transparent!important}
body.wj-cw-frame-body #app,body.wj-cw-frame-body #boot{display:none!important}
.wj-cw.is-frame{right:12px;bottom:12px}
.wj-cw.is-frame .wj-cw-panel{position:fixed;top:10px;left:10px;right:10px;bottom:84px;width:auto;height:auto}
.wj-cw.is-frame .wj-cw-teaser{position:fixed;left:10px;right:10px;width:auto;bottom:84px}
@media (max-width:520px){.wj-cw.is-frame.is-open .wj-cw-panel{inset:0;border-radius:0}.wj-cw.is-frame.is-open .wj-cw-launcher{display:none}}
.wj-board-trend-sum{display:flex;flex-wrap:wrap;gap:6px 18px;margin:2px 0 10px;font-size:13px;color:var(--muted)}
.wj-board-trend-sum b{color:var(--text);font-size:16px;font-variant-numeric:tabular-nums}

/* Recomienda Uelta: botón de arriba y página (programa de recomendación) */
.wj-ref-top{display:inline-flex;align-items:center;gap:7px;height:38px;padding:0 14px 0 12px;border:1px solid rgba(34,197,94,.45);border-radius:999px;background:linear-gradient(135deg,rgba(34,197,94,.18),rgba(22,119,255,.14));color:var(--text);font:inherit;font-size:13px;font-weight:700;white-space:nowrap;cursor:pointer;transition:transform .15s,box-shadow .15s}
.wj-ref-top svg{color:rgb(34,197,94)}
.wj-ref-top:hover{transform:translateY(-1px);box-shadow:0 8px 22px -10px rgba(34,197,94,.6)}
@media (max-width:1180px){.wj-ref-top span{display:none}.wj-ref-top{width:38px;padding:0;justify-content:center}}
.wj-ref{display:grid;gap:16px;max-width:1100px}
.wj-ref-hero{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:22px;align-items:center;padding:26px;border-radius:20px;background:linear-gradient(135deg,rgb(11,27,63),rgb(22,119,255) 140%);color:rgb(255,255,255)}
.wj-ref-kicker{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;background:rgba(255,255,255,.14);font-size:13px;font-weight:700}
.wj-ref-hero h2{margin:12px 0 8px;font-size:26px;line-height:1.2;color:inherit}
.wj-ref-hero p{margin:0;color:rgba(255,255,255,.82);line-height:1.5}
.wj-ref-linkbox{display:grid;gap:10px;padding:16px;border-radius:16px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18)}
.wj-ref-linkbox label{font-size:13px;font-weight:700;color:rgba(255,255,255,.8)}
.wj-ref-copyrow{display:flex;gap:8px}
.wj-ref .wj-ref-copyrow .wj-input{flex:1;min-width:0;background:rgba(255,255,255,.95);color:rgb(15,23,42);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px}
.wj-ref-code{display:flex;align-items:center;gap:10px;font-size:13px;color:rgba(255,255,255,.8)}
.wj-ref-code b{padding:3px 10px;border-radius:8px;background:rgba(255,255,255,.16);color:rgb(255,255,255);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.06em}
.wj-ref-code .wj-btn{color:rgb(255,255,255)}
.wj-ref-wait{grid-template-columns:auto 1fr;align-items:center}
.wj-ref-wait p{margin:0;color:rgb(255,255,255)}
.wj-ref-share{display:flex;flex-wrap:wrap;gap:8px}
.wj-ref-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:0;padding:0;list-style:none}
.wj-ref-steps li{display:flex;gap:12px}
.wj-ref-steps li>span{display:grid;place-items:center;flex:none;width:30px;height:30px;border-radius:50%;background:var(--accent);color:rgb(255,255,255);font-weight:800}
.wj-ref-steps p{margin:3px 0 0}
.wj-ref-invited{display:flex;gap:12px;align-items:flex-start}
.wj-ref-invited>svg{flex:none;margin-top:2px;color:rgb(34,197,94)}
.wj-ref-invited p{margin:3px 0 0}
.wj-ref-code-form{display:flex;gap:8px;max-width:440px}
.wj-ref-code-form .wj-input{flex:1;text-transform:uppercase;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
.wj-ref-legal{margin:0}
@media (max-width:860px){.wj-ref-hero{grid-template-columns:1fr;padding:20px}.wj-ref-hero h2{font-size:22px}.wj-ref-steps{grid-template-columns:1fr}.wj-ref-copyrow{flex-direction:column}}

/* Reservas → enlace público con su QR al lado */
.wj-res-link{display:flex;align-items:center;gap:14px}
.wj-res-link .wj-copy-row{flex:1;min-width:0}
.wj-res-qr{display:grid;justify-items:center;gap:4px;flex:none;padding:6px 6px 5px;border:1px solid var(--border);border-radius:16px;background:rgb(255,255,255);color:rgb(71,85,105);font:inherit;cursor:zoom-in;transition:transform .15s,box-shadow .15s}
.wj-res-qr:hover{transform:translateY(-1px);box-shadow:0 10px 24px -14px rgba(0,0,0,.6)}
.wj-res-qr svg{display:block;width:84px;height:84px}
.wj-res-qr small{font-size:11px;font-weight:700;line-height:1}
.wj-qr-acts{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:6px}
@media (max-width:699px){.wj-res-link{flex-direction:column;align-items:stretch}.wj-res-qr{align-self:center}}

/* RRHH · Personal: tabla, tablero, filtros y ficha */
.wj-staff-stats{display:flex;flex-wrap:wrap;gap:6px 18px;margin:0 0 14px;color:var(--muted);font-size:13px}
.wj-staff-stat b{color:var(--text);font-size:15px;font-variant-numeric:tabular-nums}
.wj-staff-stat.ok b{color:var(--ok)}.wj-staff-stat.warn b{color:var(--warn)}.wj-staff-stat.danger b{color:var(--danger)}
.wj-staff-toolbar{flex-wrap:wrap;gap:8px}
.wj-staff-toolbar .wj-search{flex:1 1 240px;min-width:0}
.wj-staff-toolbar [data-staff-filters]{display:contents}
.wj-sfilter{position:relative}
.wj-sfilter-btn{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.wj-sfilter-btn.on{border-color:var(--accent);color:var(--accent);background:var(--primary-weak)}
.wj-sfilter-pop{position:absolute;z-index:40;top:calc(100% + 6px);left:0;display:grid;gap:2px;min-width:220px;max-height:320px;overflow:auto;padding:8px;border:1px solid var(--border);border-radius:16px;background:var(--surface);box-shadow:var(--shadow-float,0 18px 40px -16px rgba(0,0,0,.35))}
.wj-sfilter-pop[hidden]{display:none}
.wj-sfilter-pop .wj-check{padding:6px 8px;border-radius:8px}
.wj-sfilter-pop .wj-check:hover{background:var(--surface2)}
.wj-staff-table{display:grid;border:1px solid var(--border);border-radius:16px;background:var(--surface);overflow:hidden}
.wj-staff-row{display:grid;grid-template-columns:34px minmax(200px,1.6fr) minmax(150px,1.1fr) minmax(120px,1fr) minmax(110px,.9fr) minmax(150px,1.2fr) minmax(140px,1fr) 24px;align-items:center;gap:12px;padding:10px 14px;border-top:1px solid var(--border);cursor:pointer;animation:wj-staff-in .42s cubic-bezier(.22,1.2,.36,1) both;animation-delay:calc(var(--i,0) * 55ms)}
.wj-staff-row:hover{background:var(--surface2)}
.wj-staff-row.head{border-top:0;cursor:default;animation:none;background:var(--surface2);color:var(--muted);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.wj-staff-row.head:hover{background:var(--surface2)}
@keyframes wj-staff-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.wj-staff-check{display:grid;place-items:center}
.wj-staff-who{display:flex;align-items:center;gap:10px;min-width:0}
.wj-staff-who>span:last-child,.wj-staff-state>span:last-child{display:grid;min-width:0}
.wj-staff-who b,.wj-staff-who small,.wj-staff-state small,.wj-staff-mail{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wj-staff-who small,.wj-staff-state small,.wj-staff-vac small{color:var(--muted);font-size:12px}
.wj-staff-state{display:flex;align-items:center;gap:8px;min-width:0}
.wj-dot{flex:none;width:8px;height:8px;border-radius:50%;background:var(--text-3)}
.wj-dot.ok{background:var(--ok)}.wj-dot.warn{background:var(--warn)}.wj-dot.danger{background:var(--danger)}
.wj-staff-chips{display:flex;flex-wrap:wrap;gap:4px;min-width:0}
.wj-chip-sm{display:inline-flex;align-items:center;max-width:140px;height:22px;padding:0 8px;border-radius:999px;background:var(--surface2);color:var(--muted);font-size:12px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wj-chip-sm.role{background:var(--primary-weak);color:var(--accent)}
.wj-staff-mail{color:var(--muted);font-size:13px}
.wj-staff-vac{display:grid;gap:4px}
.wj-staff-bar{display:block;height:6px;border-radius:999px;background:var(--surface3);overflow:hidden}
.wj-staff-bar i{display:block;height:100%;border-radius:inherit;background:var(--ok)}
.wj-staff-bar.warn i{background:var(--warn)}
.wj-staff-go{color:var(--text-3)}
.wj-staff-who .wj-avatar,.wj-staff-who .wj-avatar-media,.wj-staff-card .wj-avatar,.wj-staff-card .wj-avatar-media{flex:none;width:36px;height:36px;font-size:13px}
.wj-staff-head .wj-avatar,.wj-staff-head .wj-avatar-media{flex:none;width:72px;height:72px;font-size:24px}
.wj-floatbar{position:fixed;left:50%;bottom:22px;z-index:60;display:flex;align-items:center;gap:10px;padding:8px 10px 8px 18px;border-radius:999px;background:rgba(15,23,42,.86);color:rgb(255,255,255);box-shadow:0 18px 40px -14px rgba(0,0,0,.55);backdrop-filter:blur(14px);transform:translateX(-50%);animation:wj-float-in .3s cubic-bezier(.22,1.2,.36,1)}
.wj-floatbar[hidden]{display:none}
.wj-floatbar .wj-btn.ghost{color:rgb(255,255,255)}
@keyframes wj-float-in{from{opacity:0;transform:translate(-50%,16px)}to{opacity:1;transform:translateX(-50%)}}
.wj-staff-boardbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:0 0 12px}
.wj-staff-board{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(250px,1fr);gap:12px;overflow-x:auto;padding-bottom:8px}
.wj-staff-col{display:flex;flex-direction:column;min-height:180px;padding:10px;border:1px solid var(--border);border-radius:16px;background:var(--surface2);transition:border-color .15s,background .15s}
.wj-staff-col.drop{border-color:var(--accent);background:var(--primary-weak)}
.wj-staff-col header{display:flex;align-items:center;gap:8px;margin:0 0 10px;padding:0 4px}
.wj-staff-col header i{width:9px;height:9px;border-radius:50%}
.wj-staff-col header small{margin-left:auto;color:var(--muted);font-weight:700}
.wj-staff-cards{display:grid;gap:8px;align-content:start;flex:1}
.wj-staff-card{position:relative;display:flex;align-items:center;gap:10px;padding:10px;border:1px solid var(--border);border-radius:16px;background:var(--surface);cursor:grab;touch-action:none;user-select:none;animation:wj-staff-in .42s cubic-bezier(.22,1.2,.36,1) both;animation-delay:calc(var(--i,0) * 55ms)}
.wj-staff-card>span{display:grid;min-width:0}
.wj-staff-card b,.wj-staff-card small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wj-staff-card small{color:var(--muted);font-size:12px}
.wj-staff-card em{position:absolute;top:-6px;right:-6px;display:grid;place-items:center;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:var(--warn);color:rgb(255,255,255);font-size:11px;font-style:normal;font-weight:800}
.wj-staff-card.dragging{position:fixed;z-index:80;margin:0;cursor:grabbing;transform:rotate(2deg) scale(1.03);box-shadow:0 24px 50px -18px rgba(0,0,0,.5);animation:none;pointer-events:none}
.wj-staff-ph{border:2px dashed var(--border-strong);border-radius:16px}
.wj-staff-colempty{margin:6px 4px}
.wj-staff-detail{display:grid;gap:16px}
.wj-staff-head{display:flex;align-items:center;gap:16px}
.wj-staff-head h2{margin:0;font-size:24px}
.wj-staff-head p{margin:2px 0 8px;color:var(--muted)}
.wj-staff-headchips{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.wj-staff-headchips small{color:var(--muted);font-size:12px}
.wj-staff-tabs{overflow-x:auto}
.wj-staff-block{margin:0 0 18px;padding:16px;border:1px solid var(--border);border-radius:16px;background:var(--surface)}
.wj-staff-block h3{margin:0 0 12px;font-size:15px}
.wj-staff-kv{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px 18px;margin:0}
.wj-staff-kv div{display:grid;gap:2px;min-width:0}
.wj-staff-kv dt{color:var(--muted);font-size:12px;font-weight:700}
.wj-staff-kv dd{margin:0;overflow-wrap:anywhere}
.wj-staff-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 12px}
.wj-staff-sticky{position:sticky;bottom:0;z-index:5;display:flex;justify-content:flex-end;gap:8px;padding:12px 0;background:linear-gradient(to top,var(--surface-canvas,var(--bg)) 70%,transparent)}
.wj-staff-grid{display:grid;border:1px solid var(--border);border-radius:16px;background:var(--surface);overflow:hidden}
.wj-staff-grid>div{display:grid;align-items:center;gap:12px;padding:10px 14px;border-top:1px solid var(--border)}
.wj-staff-grid>div:first-child{border-top:0}
.wj-staff-grid .head{background:var(--surface2);color:var(--muted);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.wj-staff-grid .row small{display:block;color:var(--muted);font-size:12px}
.wj-staff-grid .row.click{cursor:pointer}
.wj-staff-grid .row.click:hover{background:var(--surface2)}
.wj-staff-grid.ctr>div{grid-template-columns:minmax(130px,1.1fr) minmax(190px,1.4fr) minmax(110px,1fr) 90px minmax(110px,1fr) 90px 20px}
.wj-staff-grid.abs>div{grid-template-columns:minmax(110px,.8fr) minmax(220px,1.5fr) minmax(120px,1.2fr) minmax(110px,.9fr) minmax(150px,auto)}
.wj-staff-grid.docs>div{grid-template-columns:minmax(0,1fr) auto}
.wj-staff-rowacts{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}
.wj-staff-vacstats{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin:0 0 14px}
.wj-staff-vacstats>div{display:grid;gap:2px;padding:14px;border:1px solid var(--border);border-radius:16px;background:var(--surface)}
.wj-staff-vacstats small{color:var(--muted);font-size:12px;font-weight:700}
.wj-staff-vacstats b{font-size:26px;font-variant-numeric:tabular-nums}
.wj-staff-vacstats .ok b{color:var(--ok)}
.wj-staff-vacstats .warn b{color:var(--warn)}
.wj-staff-docs{display:grid;grid-template-columns:220px minmax(0,1fr);gap:14px}
.wj-staff-docs aside{display:grid;align-content:start;gap:4px}
.wj-staff-docs aside button{display:flex;align-items:center;gap:8px;padding:9px 10px;border:1px solid transparent;border-radius:12px;background:none;color:var(--text);font:inherit;text-align:left;cursor:pointer}
.wj-staff-docs aside button small{margin-left:auto;color:var(--muted);font-weight:700}
.wj-staff-docs aside button.on{border-color:var(--border);background:var(--surface)}
.wj-staff-file{display:flex;align-items:center;gap:10px;min-width:0}
.wj-staff-file>span{display:grid;min-width:0}
.wj-staff-file b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wj-staff-danger{margin-top:18px;padding-top:14px;border-top:1px dashed var(--border)}
@media (max-width:980px){
 .wj-staff-row{grid-template-columns:30px minmax(0,1fr) auto 18px}
 .wj-staff-row>:nth-child(4),.wj-staff-row>:nth-child(5),.wj-staff-row>:nth-child(6),.wj-staff-row>:nth-child(7){display:none}
 .wj-staff-grid.ctr>div,.wj-staff-grid.abs>div{grid-template-columns:1fr}
 .wj-staff-grid .head{display:none !important}
 .wj-staff-docs{grid-template-columns:1fr}
 .wj-staff-docs aside{grid-auto-flow:column;grid-auto-columns:max-content;overflow-x:auto}
 .wj-staff-head .wj-avatar,.wj-staff-head .wj-avatar-media{width:56px;height:56px}
 .wj-sfilter-btn span{display:none}
}
@media (prefers-reduced-motion:reduce){.wj-staff-row,.wj-staff-card,.wj-floatbar{animation:none}}

/* Roles y permisos: Lista | Matriz | Trazabilidad */
.wj-roles-switch{display:flex;justify-content:flex-end;margin:-6px 0 12px}
.wj-matrix-wrap{overflow:auto;max-height:calc(100dvh - 260px);border:1px solid var(--border);border-radius:16px;background:var(--surface)}
.wj-matrix{width:100%;border-collapse:separate;border-spacing:0;font-size:13px}
.wj-matrix th,.wj-matrix td{padding:8px 10px;border-bottom:1px solid var(--border);text-align:center;white-space:nowrap}
.wj-matrix thead th{position:sticky;top:0;z-index:2;background:var(--surface2);font-size:12px;vertical-align:bottom}
.wj-matrix thead th span{display:block;max-width:130px;margin:0 auto;overflow:hidden;text-overflow:ellipsis}
.wj-matrix thead th small{display:inline-flex;align-items:center;gap:3px;color:var(--muted);font-weight:600}
.wj-matrix thead th.locked{color:var(--text-3)}
.wj-matrix tbody th{position:sticky;left:0;z-index:1;background:var(--surface);text-align:left;font-weight:400}
.wj-matrix thead th:first-child{left:0;z-index:3;text-align:left}
.wj-matrix-area th button{display:inline-flex;align-items:center;gap:6px;border:0;background:none;color:var(--text);font:inherit;cursor:pointer}
.wj-matrix-area th button small{color:var(--muted);font-weight:700}
.wj-matrix-area th button>svg:first-child{transition:transform .18s}
.wj-matrix-area.open th button>svg:first-child{transform:rotate(90deg)}
.wj-matrix-perm th{padding-left:44px}
.wj-matrix-perm th span{display:block;font-size:13px}
.wj-matrix-perm th small{color:var(--text-3);font-family:ui-monospace,Menlo,monospace;font-size:11px}
.wj-matrix-perm td,.wj-matrix-perm th{background:var(--surface2)}
.wj-mx-cell{display:inline-grid;place-items:center;width:28px;height:28px;border:1px solid var(--border-strong);border-radius:8px;background:var(--surface);cursor:pointer;transition:transform .12s,border-color .12s}
.wj-mx-cell:hover:not([disabled]){transform:scale(1.08);border-color:var(--accent)}
.wj-mx-cell i{width:12px;height:12px;border-radius:4px}
.wj-mx-cell.full i{background:var(--accent)}
.wj-mx-cell.some i{background:linear-gradient(90deg,var(--accent) 50%,transparent 50%);border:1px solid var(--accent)}
.wj-mx-cell.locked{opacity:.5;cursor:not-allowed}
.wj-star{position:relative;height:clamp(520px,calc(100dvh - 300px),820px);border:1px solid var(--border);border-radius:20px;overflow:hidden;background:var(--surface2);background-image:radial-gradient(rgba(15,23,42,.07) 1px,transparent 1px);background-size:18px 18px;outline:none}
html[data-theme="dark"] .wj-star{background-image:radial-gradient(rgba(255,255,255,.06) 1px,transparent 1px)}
.wj-star canvas{position:absolute;inset:0}
.wj-star-dom{position:absolute;inset:0;pointer-events:none}
.wj-star-hit{position:absolute;left:0;top:0;pointer-events:auto;border:0;background:transparent;cursor:pointer;color:inherit;font:inherit;opacity:0;transition:opacity .2s}
.wj-star-hit.is-hub{display:grid;justify-items:center;align-content:center;width:0;height:0;overflow:visible}
.wj-star-hit.is-hub b{font-size:13px;white-space:nowrap;transform:translateY(-2px)}
.wj-star-hit.is-hub small{color:var(--text);font-size:22px;font-weight:800;font-variant-numeric:tabular-nums;line-height:1}
.wj-star-hit.is-dot{width:14px;height:14px;margin:-7px;border-radius:50%}
.wj-star-hit.is-dot em{position:absolute;left:18px;top:50%;padding:2px 8px;border:1px solid var(--border);border-radius:999px;background:var(--surface);font-size:12px;font-style:normal;white-space:nowrap;opacity:0;transform:translateY(-50%);transition:opacity .15s;pointer-events:none}
.wj-star-hit.is-dot:hover em{opacity:1}
.wj-star-hit.is-pill{display:flex;align-items:center;gap:8px;max-width:260px;padding:6px 12px 6px 8px;border:1px solid var(--border);border-radius:999px;background:var(--surface);box-shadow:0 4px 14px rgba(15,23,42,.08);text-align:left;transition:opacity .2s,box-shadow .15s,border-color .15s}
.wj-star-hit.is-pill:hover,.wj-star-hit.is-pill.is-current{border-color:var(--accent);box-shadow:0 0 0 3px var(--primary-weak)}
.wj-star-hit.is-pill i{flex:0 0 auto;width:10px;height:10px;border-radius:50%}
.wj-star-hit.is-pill span{display:grid;min-width:0}
.wj-star-hit.is-pill b{overflow:hidden;font-size:13px;text-overflow:ellipsis;white-space:nowrap}
.wj-star-hit.is-pill small{overflow:hidden;color:var(--muted);font-size:11px;text-overflow:ellipsis;white-space:nowrap}
.wj-star-crumbs{position:absolute;left:12px;top:12px;z-index:3;display:flex;align-items:center;gap:6px;padding:4px 6px;border:1px solid var(--border);border-radius:999px;background:var(--surface);font-size:13px;backdrop-filter:blur(12px)}
.wj-star-crumbs button{padding:4px 8px;border:0;border-radius:999px;background:transparent;color:var(--accent);font:inherit;cursor:pointer}
.wj-star-crumbs button:hover{background:var(--primary-weak)}
.wj-star-crumbs span{padding:4px 8px;font-weight:700}
.wj-star-crumbs i{color:var(--text-3);font-style:normal}
.wj-star-stats{position:absolute;right:12px;top:12px;z-index:3;display:flex;gap:14px;padding:8px 14px;border:1px solid var(--border);border-radius:16px;background:var(--surface);backdrop-filter:blur(12px)}
.wj-star-stats div{display:grid;text-align:center}
.wj-star-stats small{color:var(--muted);font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.wj-star-stats b{font-size:18px;font-variant-numeric:tabular-nums}
.wj-star-stats b.is-warn{color:var(--warn)}
.wj-star-ctl{position:absolute;right:12px;bottom:12px;z-index:3;display:flex;gap:4px;padding:4px;border:1px solid var(--border);border-radius:12px;background:var(--surface)}
.wj-star-ctl .wj-btn.is-active{background:var(--primary-weak)}
.wj-star-insight{position:absolute;right:12px;top:72px;z-index:3;width:280px;max-height:calc(100% - 140px);overflow:auto;padding:12px 14px;border:1px solid var(--border);border-radius:16px;background:var(--surface);font-size:13px;box-shadow:var(--shadow-float,0 18px 40px -16px rgba(0,0,0,.35));animation:wj-star-pop .22s cubic-bezier(.22,.8,.3,1)}
.wj-star-insight[hidden]{display:none}
@keyframes wj-star-pop{from{opacity:0;transform:translateY(6px) scale(.98)}to{opacity:1;transform:none}}
.wj-star-insight h4{margin:0;font-size:15px}
.wj-star-insight>small{color:var(--muted)}
.wj-star-insight p{margin:8px 0}
.wj-star-insight ul{display:grid;gap:4px;margin:8px 0 0;padding:0;list-style:none}
.wj-star-insight li{display:grid;padding-top:4px;border-top:1px dashed var(--border)}
.wj-star-insight li small{color:var(--text-3);font-family:ui-monospace,Menlo,monospace;font-size:11px}
@media (max-width:800px){.wj-star{height:70dvh}.wj-star-stats{display:none}.wj-star-insight{left:12px;right:12px;top:auto;bottom:56px;width:auto;max-height:45%}.wj-roles-switch{justify-content:flex-start}}
@media (prefers-reduced-motion:reduce){.wj-star-insight{animation:none}}

/* Acceso: red de constelación y botón que se vuelve ✓ */
.wj-login-neural{position:absolute;inset:0;z-index:0;width:100%;height:100%;pointer-events:none;opacity:.9}
.wj-login-art>*:not(.wj-login-neural){position:relative;z-index:1}
.wj-login-art .wj-login-art-copy{transition:opacity .35s ease,transform .45s ease}
.wj-login-art.is-burst .wj-login-art-copy{opacity:0;transform:scale(.97)}
.wj-login-submit{position:relative;overflow:hidden;transition:width .42s cubic-bezier(.2,.9,.3,1.15),height .42s cubic-bezier(.2,.9,.3,1.15),min-height .42s cubic-bezier(.2,.9,.3,1.15),border-radius .35s,box-shadow .45s,background .3s,border-color .3s,margin .42s cubic-bezier(.2,.9,.3,1.15),color .2s}
.wj-login-submit.is-orb{display:flex;width:48px!important;min-width:0;height:48px;min-height:48px;margin:18px auto 0;padding:0;border-radius:50%;color:transparent;pointer-events:none;box-shadow:0 0 0 6px rgba(22,119,255,.25),0 0 40px 8px rgba(22,119,255,.5)}
.wj-login-submit.is-orb>*:not(.wj-login-tick){opacity:0}
.wj-login-submit.is-orb::after{content:'';position:absolute;inset:0;border-radius:50%;background:radial-gradient(circle at 40% 35%,rgba(255,255,255,.9),rgb(22,119,255) 70%);transition:opacity .25s}
#login-form .wj-login-submit.is-orb.is-check{background:rgb(22,163,74)!important;border-color:rgb(22,163,74);box-shadow:0 0 0 7px rgba(22,163,74,.18),0 10px 30px rgba(22,163,74,.45);animation:wj-login-pop .5s cubic-bezier(.2,.9,.3,1.4)}
.wj-login-submit.is-orb.is-check::after{opacity:0}
.wj-login-tick{position:absolute;inset:0;z-index:1;display:grid;place-items:center;color:rgb(255,255,255);opacity:0}
.is-check .wj-login-tick{opacity:1}
.wj-login-tick svg{width:26px;height:26px}
.wj-login-tick path{stroke-dasharray:24;stroke-dashoffset:24}
.is-check .wj-login-tick path{animation:wj-login-tick .38s cubic-bezier(.3,.8,.3,1) .08s forwards}
@keyframes wj-login-tick{to{stroke-dashoffset:0}}
@keyframes wj-login-pop{0%{transform:scale(.9)}60%{transform:scale(1.12)}100%{transform:scale(1)}}
#login-form.is-success>*:not(.wj-login-submit){opacity:.4;pointer-events:none;transition:opacity .4s}
@media (prefers-reduced-motion:reduce){.wj-login-submit,.wj-login-art .wj-login-art-copy{transition:none}.wj-login-submit.is-orb.is-check{animation:none}.is-check .wj-login-tick path{animation:none;stroke-dashoffset:0}}

/* RRHH: protocolos, firma, organigrama y Fast nómina */
.wj-staff-grid.prot>div{grid-template-columns:minmax(200px,1.6fr) minmax(150px,1.2fr) minmax(150px,1fr) 110px 20px}
.wj-staff-grid.prot .row{animation:wj-staff-in .42s cubic-bezier(.22,1.2,.36,1) both;animation-delay:calc(var(--i,0) * 55ms)}
.wj-staff-grid.protme>div{grid-template-columns:minmax(0,1fr) auto auto}
.wj-staff-grid.pay>div{grid-template-columns:minmax(200px,1.4fr) minmax(170px,1fr) 150px minmax(170px,1.1fr) minmax(130px,auto) 36px}
.wj-text-warn{color:var(--warn)!important}
.wj-prot-detail{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:18px;align-items:start}
.wj-prot-text{padding:16px;border:1px solid var(--border);border-radius:16px;background:var(--surface);line-height:1.6;white-space:normal}
.wj-prot-files{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:4px 0 14px}
.wj-prot-file{display:inline-flex;align-items:center;gap:4px;padding:4px 4px 4px 10px;border:1px solid var(--border);border-radius:999px;background:var(--surface)}
.wj-prot-file a{display:inline-flex;align-items:center;gap:6px;color:var(--text);text-decoration:none}
.wj-prot-video{width:100%;max-height:420px;border-radius:16px;background:rgb(0,0,0)}
.wj-prot-side{position:sticky;top:12px;display:grid;gap:10px}
.wj-prot-people{display:grid;gap:4px;max-height:60vh;overflow:auto;padding:6px;border:1px solid var(--border);border-radius:16px;background:var(--surface)}
.wj-prot-person{display:flex;align-items:center;gap:10px;padding:6px 8px;border-radius:12px}
.wj-prot-person:hover{background:var(--surface2)}
.wj-prot-person>span:nth-child(2){display:grid;flex:1;min-width:0}
.wj-prot-person small{color:var(--muted);font-size:12px}
.wj-prot-person .wj-avatar,.wj-prot-person .wj-avatar-media{flex:none;width:32px;height:32px;font-size:12px}
.wj-prot-read{display:grid;gap:14px;max-width:820px}
.wj-prot-read header{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.wj-prot-read h2{margin:0}
.wj-prot-done{display:flex;align-items:center;gap:8px;color:var(--ok);font-weight:700}
.wj-prot-sign{display:grid;gap:10px;padding:16px;border:1px solid var(--border);border-radius:16px;background:var(--surface)}
.wj-prot-pad{position:relative;height:180px;border:1.5px dashed var(--border-strong);border-radius:16px;background:rgb(255,255,255);overflow:hidden}
.wj-prot-pad canvas{display:block;width:100%;height:100%;touch-action:none;cursor:crosshair}
.wj-prot-pad>.wj-help{position:absolute;left:12px;bottom:8px;color:rgb(148,163,184);pointer-events:none}
.wj-prot-pad>button{position:absolute;right:8px;top:8px;color:rgb(71,85,105)}
.wj-prot-sign>button[type=submit]{justify-self:start}
.wj-org{position:relative;height:clamp(520px,calc(100dvh - 220px),860px);border:1px solid var(--border);border-radius:20px;overflow:hidden;background:var(--surface2);background-image:radial-gradient(rgba(15,23,42,.07) 1px,transparent 1px);background-size:18px 18px;cursor:grab;outline:none;touch-action:none}
html[data-theme="dark"] .wj-org{background-image:radial-gradient(rgba(255,255,255,.06) 1px,transparent 1px)}
.wj-org:active{cursor:grabbing}
.wj-org-world{position:absolute;left:0;top:0;transform-origin:0 0}
.wj-org-svg{position:absolute;left:0;top:0;overflow:visible;pointer-events:none}
.wj-org-link{fill:none;stroke:var(--tone);stroke-width:2;stroke-linecap:round;opacity:.65;transition:opacity .25s}
.wj-org-link.draw{stroke-dasharray:1;stroke-dashoffset:1;animation:wj-org-draw .7s cubic-bezier(.3,.8,.3,1) forwards}
.wj-org-link.dim{opacity:.12}
@keyframes wj-org-draw{to{stroke-dashoffset:0}}
.wj-org-pulse{opacity:.85}
.wj-org-card{position:absolute;display:flex;align-items:center;gap:10px;width:190px;height:64px;padding:8px 10px;border:1px solid var(--border);border-left:4px solid var(--tone,var(--accent));border-radius:16px;background:var(--surface);box-shadow:0 6px 18px -10px rgba(15,23,42,.35);cursor:pointer;user-select:none;transition:opacity .25s,box-shadow .2s,transform .2s}
.wj-org-card>span:last-child{display:grid;min-width:0}
.wj-org-card b,.wj-org-card small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wj-org-card small{color:var(--muted);font-size:12px}
.wj-org-card .wj-avatar,.wj-org-card .wj-avatar-media{flex:none;width:34px;height:34px;font-size:12px}
.wj-org-card.is-root{border-left-color:var(--accent);background:linear-gradient(135deg,var(--primary-weak),var(--surface))}
.wj-org-logo{display:grid;place-items:center;width:34px;height:34px;border-radius:12px;background:var(--accent);color:rgb(255,255,255)}
.wj-org-card.on{box-shadow:0 0 0 3px var(--primary-weak),0 10px 24px -12px rgba(15,23,42,.45);transform:translateY(-2px)}
.wj-org-card.dim{opacity:.35}
.wj-org-card.drop{box-shadow:0 0 0 3px var(--accent)}
.wj-org.editing .wj-org-card:not(.is-root){cursor:grab;border-style:dashed}
.wj-org-card.ghost{position:fixed;z-index:90;pointer-events:none;opacity:.92;transform:rotate(2deg) scale(1.03);box-shadow:0 24px 50px -18px rgba(0,0,0,.5)}
/* Editar: la tarjeta se agarra con ratón o dedo (sin arrastre nativo de la foto, sin selección, sin menú del mantener pulsado). */
.wj-org.editing .wj-org-card:not(.is-root){touch-action:none;-webkit-user-select:none;-webkit-touch-callout:none}
.wj-org-card img{-webkit-user-drag:none;user-drag:none;pointer-events:none}
.wj-org.dragging,.wj-org.dragging .wj-org-card{cursor:grabbing}
.wj-org-card.lifting{opacity:.35}
.wj-org-card.ghost{margin:0;cursor:grabbing}
.wj-org-card.landed{animation:wj-org-landed .6s cubic-bezier(.3,.8,.3,1)}
@keyframes wj-org-landed{0%{box-shadow:0 0 0 0 var(--accent)}40%{box-shadow:0 0 0 6px var(--primary-weak)}100%{box-shadow:0 6px 18px -10px rgba(15,23,42,.35)}}
.wj-org-card.mini{position:relative;width:180px;height:56px}
.wj-org-hud{position:absolute;z-index:3;display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:6px;border:1px solid var(--border);border-radius:16px;background:color-mix(in srgb,var(--surface) 86%,transparent);backdrop-filter:blur(12px);cursor:default}
.wj-org-hud.tl{left:12px;top:12px;width:min(260px,calc(100% - 24px))}
.wj-org-hud.tl .wj-search{flex:1}
.wj-org-hud.tr{right:12px;top:12px;gap:14px;padding:8px 14px}
.wj-org-hud.tr div{display:grid;text-align:center}
.wj-org-hud.tr small{color:var(--muted);font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.wj-org-hud.tr b{font-size:18px;font-variant-numeric:tabular-nums}
.wj-org-hud.tr b.is-warn{color:var(--warn)}
.wj-org-hud.bl{left:12px;bottom:12px;max-width:min(420px,calc(100% - 24px));padding:8px 12px;font-size:12px}
.wj-org-hud.bl>span{display:inline-flex;align-items:center;gap:6px;margin-right:8px}
.wj-org-hud.bl i{width:9px;height:9px;border-radius:50%}
.wj-org-hud.br{right:12px;bottom:12px}
.wj-org-hud .wj-btn.on{background:var(--primary-weak);color:var(--accent)}
.wj-org-tray{position:absolute;right:12px;top:72px;z-index:3;display:grid;gap:8px;width:210px;max-height:calc(100% - 150px);overflow:auto;padding:10px;border:1px dashed var(--border-strong);border-radius:16px;background:color-mix(in srgb,var(--surface) 90%,transparent);backdrop-filter:blur(12px);cursor:default}
.wj-org-tray[hidden]{display:none}
.wj-org-tray>div{display:grid;gap:6px}
.wj-org-tray.drop{border-color:var(--accent);background:var(--primary-weak)}
.wj-pay-drop{display:grid;justify-items:center;gap:6px;padding:34px 16px;border:2px dashed var(--border-strong);border-radius:20px;background:var(--surface);color:var(--muted);text-align:center;cursor:pointer;transition:border-color .15s,background .15s}
.wj-pay-drop b{color:var(--text);font-size:16px}
.wj-pay-drop.over,.wj-pay-drop:hover{border-color:var(--accent);background:var(--primary-weak)}
.wj-pay-kpis{display:flex;flex-wrap:wrap;gap:6px 18px;margin:14px 0;color:var(--muted);font-size:13px}
.wj-pay-kpis b{color:var(--text);font-size:15px}
.wj-pay-kpis .ok b{color:var(--ok)}
.wj-pay-kpis .warn b{color:var(--warn)}
.wj-pay-name{overflow:hidden;color:var(--muted);font-size:13px;text-overflow:ellipsis;white-space:nowrap}
.wj-staff-grid.pay .wj-check{margin-top:4px;font-size:12px}
@media (max-width:980px){.wj-prot-detail{grid-template-columns:1fr}.wj-prot-side{position:static}.wj-staff-grid.prot>div,.wj-staff-grid.pay>div,.wj-staff-grid.protme>div{grid-template-columns:1fr}.wj-org-hud.tr{display:none}.wj-org-tray{top:auto;bottom:64px;width:auto;left:12px;max-height:none;overflow:visible;padding:8px}.wj-org-tray>div{display:flex;gap:6px;overflow-x:auto;overscroll-behavior:contain;padding-bottom:2px}.wj-org-tray .wj-org-card.mini{flex:none;width:150px;height:50px}.wj-org.editing .wj-org-hud.bl{display:none}.wj-org-hud.br{left:12px;flex-wrap:nowrap;justify-content:flex-end}.wj-org-hud.br [data-org-replay]{display:none}.wj-org-hud.bl{bottom:64px}}
@media (prefers-reduced-motion:reduce){.wj-org-link.draw{animation:none;stroke-dashoffset:0}.wj-staff-grid.prot .row{animation:none}}

/* Login en el móvil: el mismo fondo que el panel izquierdo del ordenador (degradado y la red de
   puntos que se mueve), sin las formas flotando, y el logo en blanco. */
@media(max-width:820px){
 .wj-login-v2,.wj-login-v2 .wj-login-shell,.wj-login-v2 .wj-login-panel{background:transparent}
 .wj-login-v2 .wj-login-float{display:none}
 .wj-login-v2 .wj-login-art{display:block;position:fixed;inset:0;z-index:0;padding:0;pointer-events:none}
 .wj-login-v2 .wj-login-art>*:not(.wj-login-neural){display:none}
 .wj-login-v2 .wj-login-art:before{background:linear-gradient(180deg,rgba(6,10,20,.2) 0%,rgba(6,10,20,.45) 40%,rgba(6,10,20,.78) 100%)}
 .wj-login-v2 .wj-login-panel{position:relative;z-index:1;color-scheme:dark;--text:rgb(241,245,249);--muted:rgba(226,232,240,.78);--text-3:rgba(226,232,240,.6);--border:rgba(255,255,255,.18);--border-strong:rgba(255,255,255,.3);--surface:rgba(15,23,42,.55);--surface2:rgba(15,23,42,.55);--surface3:rgba(30,41,59,.6);color:var(--text)}
 .wj-login-v2 .wj-login-panel input{background:rgba(15,23,42,.82);border-color:rgba(255,255,255,.18);color:rgb(241,245,249)}
 .wj-login-v2 .wj-login-panel a{color:rgba(226,232,240,.85)}
}

/* Cuenta demo: aviso fijo arriba del panel, barra de la tienda y tarjeta de prueba al pagar. */
.wj-demo-banner{background:linear-gradient(90deg,rgba(245,158,11,.2),rgba(245,158,11,.08));border-bottom-color:rgba(245,158,11,.35)}
.wj-demo-banner .wj-trial-badge{background:rgb(245,158,11);color:rgb(23,23,23)}
.wj-shop-testbar.is-demo{background:rgb(37,99,235);color:rgb(255,255,255);font-weight:600}
.wj-demo-card{margin:0 0 14px;padding:14px 16px;border-radius:12px;border:1px dashed rgb(37,99,235);background:rgba(37,99,235,.06);color:rgb(15,23,42);display:grid;gap:10px}
.wj-demo-card strong{display:flex;align-items:center;gap:8px;font-size:15px}
.wj-demo-card dl{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr);gap:10px;margin:0}
.wj-demo-card dt{font-size:12px;color:rgb(71,85,105);margin:0 0 2px}
.wj-demo-card dd{margin:0}
.wj-demo-card code{font-size:15px;font-weight:700;letter-spacing:.04em;white-space:nowrap;user-select:all}
.wj-demo-card small{color:rgb(71,85,105);font-size:13px}
@media(max-width:480px){.wj-demo-card dl{grid-template-columns:1fr 1fr}.wj-demo-card dl>div:first-child{grid-column:1/-1}}

/* Configuración → General y marca: un formulario con un solo «Guardar» y logos que dicen dónde salen. */
.wj-gen-body{display:grid;gap:16px}
.wj-gen-form{display:grid;gap:14px}
.wj-gen-head{display:flex;gap:12px;align-items:flex-start}
.wj-gen-head h3{margin:0 0 3px}
.wj-gen-ico{flex:none;width:36px;height:36px;border-radius:12px;display:grid;place-items:center;background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent)}
.wj-gen-savebar{display:flex;align-items:center;justify-content:flex-end;gap:14px;padding:10px 12px 10px 16px;border:1px solid var(--border);border-radius:16px;background:var(--surface-raised,var(--surface))}
.wj-gen-savebar .wj-btn{min-width:180px}
.wj-gen-form.is-dirty .wj-gen-savebar{position:sticky;bottom:12px;z-index:5;border-color:color-mix(in srgb,var(--accent) 45%,var(--border));box-shadow:var(--shadow-float,0 12px 30px rgba(0,0,0,.25))}
.wj-gen-form.is-dirty [data-gen-state]{color:var(--accent);font-weight:700}
.wj-brand-grid{align-items:stretch}
.wj-brand-slot{display:grid;gap:10px;align-content:start}
.wj-brand-slot-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.wj-brand-slot-head h3{margin:0}
.wj-brand-stage{position:relative;height:150px;border-radius:16px;border:1px solid var(--border);display:grid;place-items:center;overflow:hidden;cursor:pointer;transition:border-color .2s,box-shadow .2s}
.wj-brand-stage img{max-width:78%;max-height:70%;object-fit:contain}
.wj-brand-stage.square img{max-width:96px;max-height:96px;border-radius:20px}
.wj-brand-stage.light{background:rgb(255,255,255)}
.wj-brand-stage.dark{background:rgb(17,24,39)}
.wj-brand-stage.checker{background-color:rgb(241,245,249);background-image:linear-gradient(45deg,rgb(226,232,240) 25%,transparent 25%,transparent 75%,rgb(226,232,240) 75%),linear-gradient(45deg,rgb(226,232,240) 25%,transparent 25%,transparent 75%,rgb(226,232,240) 75%);background-size:16px 16px;background-position:0 0,8px 8px}
.wj-brand-stage.is-fallback img{opacity:.45}
.wj-brand-stage:hover,.wj-brand-stage.dragging{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 25%,transparent)}
.wj-brand-empty{display:grid;justify-items:center;gap:6px;color:rgb(100,116,139);font-size:13px}
.wj-brand-stage.dark .wj-brand-empty{color:rgb(148,163,184)}
.wj-brand-slot.is-busy .wj-brand-stage{opacity:.5;pointer-events:none}
.wj-brand-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.wj-brand-actions small{margin-left:auto}
.wj-brand-mocks{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.wj-brand-mock{height:64px;border-radius:12px;display:flex;align-items:center;justify-content:space-between;padding:0 18px;border:1px solid var(--border)}
.wj-brand-mock.light{background:rgb(255,255,255);color:rgb(15,23,42)}
.wj-brand-mock.dark{background:rgb(11,18,32);color:rgb(241,245,249)}
.wj-brand-mock-logo{display:flex;align-items:center;height:36px;max-width:60%}
.wj-brand-mock-logo img{max-height:36px;max-width:100%;object-fit:contain}
.wj-brand-mock-nav{display:flex;gap:6px}
.wj-brand-mock-nav i{width:26px;height:8px;border-radius:4px;background:currentColor;opacity:.18}
@media(max-width:699px){.wj-brand-mocks{grid-template-columns:1fr}.wj-gen-savebar{justify-content:space-between}.wj-gen-savebar .wj-btn{min-width:0}.wj-brand-actions small{margin-left:0;width:100%}}

/* Tienda: el logo del cliente se ve a la primera (más grande en la cabecera y en el pie). */
.wj-shop-head .wj-public-logo{height:72px;max-width:300px}
html.wj-head-compact .wj-shop-head .wj-public-logo{height:52px}
.wj-shop-foot-brand .wj-public-logo{height:72px;max-width:260px}
@media(max-width:720px){.wj-shop-head .wj-public-logo{height:52px;max-width:200px}html.wj-head-compact .wj-shop-head .wj-public-logo{height:40px}.wj-shop-foot-brand .wj-public-logo{height:56px;max-width:200px}}
html.wj-shop-embed .wj-shop-head .wj-public-logo,html.wj-head-compact.wj-shop-embed .wj-shop-head .wj-public-logo{height:40px;max-width:180px}
/* Sesión caducada: aviso en la pantalla de entrada. */
.wj-login-card-head .wj-login-expired,.wj-login-expired{margin:12px 0 0;padding:10px 12px;border-radius:10px;background:rgba(245,158,11,.16);color:rgb(245,158,11)!important;font-size:13.5px;font-weight:600}

/* Centros → Horarios: dirección, teléfono y ficha de Google (lo que se ve en «Horarios» de la tienda). */
.wj-center-where{display:grid;gap:10px;padding:14px;border:1px solid var(--border);border-radius:16px;background:var(--surface2)}
.wj-center-where h4{display:flex;align-items:center;gap:8px;margin:0;font-size:15px}
.wj-center-where .wj-help{margin:0}
.wj-center-google{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
/* Tienda: con la foto del cliente, el botón de la cuenta es su foto (redonda, sin fondo de color). */
.wj-shop-userbtn.on:has(.wj-shop-avatar.has-photo){padding:0;background:transparent;border-color:rgba(255,255,255,.35);overflow:hidden}
.wj-shop-userbtn .wj-shop-avatar.has-photo{border-radius:inherit;overflow:hidden}
.wj-shop-userbtn .wj-shop-avatar.has-photo img{width:100%;height:100%;object-fit:cover;display:block}

/* Carga de pantallas: barra de progreso fina arriba (indeterminada) y filas de espera que brillan. */
.wj-nav-progress{position:fixed;top:0;left:0;right:0;height:3px;z-index:9999;overflow:hidden;pointer-events:none;opacity:0;transition:opacity .2s}
.wj-nav-progress.on{opacity:1}
.wj-nav-progress i{position:absolute;top:0;bottom:0;left:-40%;width:40%;border-radius:0 3px 3px 0;background:linear-gradient(90deg,transparent,var(--accent),var(--accent));box-shadow:0 0 10px var(--accent);animation:wj-nav-progress 1.1s cubic-bezier(.4,0,.2,1) infinite}
.wj-nav-progress.done i{left:0;width:100%;animation:none;transition:width .3s}
@keyframes wj-nav-progress{0%{left:-40%;width:40%}60%{left:45%;width:45%}100%{left:105%;width:30%}}
.wj-loading-head{display:flex;align-items:center;gap:10px;margin:2px 0 16px;color:var(--muted);font-size:14px;font-weight:600}
.wj-skeleton{background:linear-gradient(90deg,color-mix(in srgb,var(--text) 7%,transparent) 25%,color-mix(in srgb,var(--text) 16%,transparent) 50%,color-mix(in srgb,var(--text) 7%,transparent) 75%);background-size:200% 100%;animation:shimmer 1.1s linear infinite}
@media (prefers-reduced-motion:reduce){.wj-nav-progress i{animation:none;left:0;width:60%}.wj-skeleton{animation:none}}

/* Selección que se desliza (app.js · syncPills): la pastilla va detrás de los botones del menú. */
.wj-pill-host{position:relative}
.wj-pill-host>*:not(.wj-pill){position:relative;z-index:1}
.wj-pill{position:absolute;top:0;left:0;z-index:0;pointer-events:none;will-change:transform;transition:transform .46s cubic-bezier(.34,1.45,.64,1),width .46s cubic-bezier(.34,1.45,.64,1),height .46s cubic-bezier(.34,1.45,.64,1),opacity .2s}
.wj-pill.no-anim{transition:none}
[data-pill-on]{background:transparent!important;background-image:none!important;box-shadow:none!important}
.wj-tabs.wj-pill-host .wj-tab,.wj-sidebar .wj-nav.wj-pill-host .wj-nav-btn{transition:color .25s ease}
@media (prefers-reduced-motion:reduce){.wj-pill{transition:none}}

/* Gráficas estilo app financiera (app.js · wjChart): curva suave con degradado, área que se desvanece,
   punto que recorre la curva y lo que queda por delante atenuado. */
:root{--wj-chart-1-end:rgb(167,139,250);--wj-chart-2-end:rgb(203,213,225);--wj-chart-3-end:rgb(244,114,182)}
.wj-chart-plot{position:relative;cursor:crosshair;touch-action:pan-y;-webkit-user-select:none;user-select:none}
.wj-chart-plot svg{display:block;width:100%;height:210px;overflow:visible}
.wj-chart-grid{stroke:var(--border);stroke-dasharray:3 5;opacity:.7}
.wj-chart-line{fill:none;stroke-width:3px;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 6px 10px color-mix(in srgb,var(--wj-chart-1) 30%,transparent))}
.wj-chart-line.minor{stroke-width:2px;filter:none}
.wj-chart-line.dim{opacity:.22;filter:none}
.wj-chart-area{pointer-events:none}
.wj-chart-axis{position:relative;height:18px;margin-top:6px;pointer-events:none}
.wj-chart-axis span{position:absolute;top:0;transform:translateX(-50%);font-size:11px;line-height:18px;color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums}
.wj-chart-max{opacity:.8}
.wj-chart-dot{position:absolute;left:0;top:0;width:14px;height:14px;margin:-7px 0 0 -7px;border-radius:50%;background:var(--dot);border:3px solid var(--surface);box-shadow:0 0 0 6px color-mix(in srgb,var(--dot) 22%,transparent),0 4px 14px color-mix(in srgb,var(--dot) 50%,transparent);pointer-events:none;opacity:0;z-index:2;will-change:transform}
.wj-chart-dot.minor{width:10px;height:10px;margin:-5px 0 0 -5px;border-width:2px;box-shadow:0 0 0 4px color-mix(in srgb,var(--dot) 18%,transparent)}
.wj-chart-guide{position:absolute;left:0;top:0;bottom:0;width:0;margin-left:0;border-left:1px dashed color-mix(in srgb,var(--text) 28%,transparent);background:none;opacity:0;pointer-events:none}
.wj-chart-tip{top:4px;border-radius:16px;box-shadow:0 12px 32px rgba(0,0,0,.28);backdrop-filter:blur(12px);transition:left .18s cubic-bezier(.34,1.3,.64,1)}
.wj-chart-vol{height:44px;margin-top:6px;column-gap:3px}
.wj-chart-vol-bar i{width:62%;max-width:10px;border-radius:999px;background:color-mix(in srgb,var(--wj-chart-1) 26%,transparent);transition:height .4s cubic-bezier(.34,1.3,.64,1),opacity .2s,background .2s}
.wj-chart .wj-chart-vol-bar.on i{opacity:1;background:linear-gradient(to top,var(--wj-chart-1),var(--wj-chart-1-end));box-shadow:0 4px 12px color-mix(in srgb,var(--wj-chart-1) 45%,transparent)}
.wj-chart figcaption i{border-radius:50%}
@media (max-width:699px){.wj-chart-plot svg{height:180px}.wj-chart-tip{min-width:130px;padding:8px 10px}}

/* Reservas de hoy: cada fila abre la ficha de la reserva (la misma de la caja). */
.wj-today-row[data-today-open]{cursor:pointer;transition:background .15s,border-color .15s}
.wj-today-row[data-today-open]:hover{background:color-mix(in srgb,var(--accent) 6%,var(--surface));border-color:color-mix(in srgb,var(--accent) 30%,var(--border))}
.wj-today-sheet{max-width:880px}

/* Entrada (acceso y launchpad): la misma composición. Izquierda, la red de estrellas; derecha, un
   azul noche con dos luces que se mueven despacio, una malla de puntos y la tarjeta de cristal. */
.wj-login-v2 .wj-login-art{background-image:linear-gradient(165deg,rgb(44,78,148) 0%,rgb(23,37,84) 46%,rgb(8,12,26) 100%)}
@media(min-width:821px){.wj-login-v2 .wj-login-panel{background:rgb(9,12,22);overflow:hidden;isolation:isolate}}
.wj-auth-deco{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.wj-auth-deco:before{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(148,163,184,.16) 1px,transparent 1.4px);background-size:24px 24px;-webkit-mask-image:radial-gradient(ellipse 70% 60% at 50% 50%,rgb(0,0,0) 0%,transparent 75%);mask-image:radial-gradient(ellipse 70% 60% at 50% 50%,rgb(0,0,0) 0%,transparent 75%)}
.wj-auth-deco i{position:absolute;border-radius:50%;filter:blur(70px);opacity:.55;animation:wj-auth-drift 22s ease-in-out infinite alternate}
.wj-auth-deco i:nth-child(1){width:420px;height:420px;right:-140px;top:-120px;background:rgb(37,99,235)}
.wj-auth-deco i:nth-child(2){width:360px;height:360px;left:-160px;bottom:-140px;background:rgb(124,58,237);animation-duration:26s;animation-delay:-8s;opacity:.4}
.wj-auth-deco i:nth-child(3){width:180px;height:180px;right:18%;bottom:12%;background:rgb(14,165,233);animation-duration:18s;animation-delay:-4s;opacity:.18}
@keyframes wj-auth-drift{0%{transform:translate(0,0) scale(1)}50%{transform:translate(-40px,30px) scale(1.08)}100%{transform:translate(20px,-24px) scale(.96)}}
.wj-login-v2 .wj-login-panel>*:not(.wj-auth-deco){position:relative;z-index:1}
.wj-login-v2 .wj-login-stack{width:min(460px,100%)}
.wj-auth-card,.wj-login-v2 .wj-login-card{position:relative;width:100%;padding:34px 32px 30px;border-radius:24px;background:linear-gradient(180deg,rgba(255,255,255,.06),rgba(255,255,255,.025));border:1px solid rgba(255,255,255,.09);box-shadow:0 40px 90px -40px rgba(0,0,0,.85),inset 0 1px 0 rgba(255,255,255,.06);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}
.wj-auth-card:before,.wj-login-v2 .wj-login-card:before{content:"";position:absolute;left:12%;right:12%;top:-1px;height:1px;background:linear-gradient(90deg,transparent,rgba(147,197,253,.85),rgba(196,181,253,.7),transparent)}
.wj-login-v2 .wj-login-card .wj-input{background:rgba(2,6,23,.55);border-color:rgba(255,255,255,.1)}
.wj-login-v2 .wj-login-card .wj-input:focus{border-color:rgba(96,165,250,.7);box-shadow:0 0 0 4px rgba(59,130,246,.18)}
.wj-auth-trust{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 16px;list-style:none;margin:20px 0 0;padding:0;color:rgba(203,213,225,.62);font-size:12px}
.wj-auth-trust li{display:inline-flex;align-items:center;gap:5px}
.wj-auth-trust svg{color:rgb(74,222,128)}
.wj-login-v2 .wj-login-legal{margin-top:10px}
/* Launchpad: novedades a la izquierda (como la portada del acceso) y destinos en la tarjeta. */
.wj-lp-copy{gap:14px}
.wj-lp-slides{display:grid}
.wj-lp-slide{grid-area:1/1;display:grid;gap:12px;align-content:start;opacity:0;transform:translateY(10px);transition:opacity .5s ease,transform .6s cubic-bezier(.2,.9,.3,1.1);pointer-events:none}
.wj-lp-slide.on{opacity:1;transform:none;pointer-events:auto}
.wj-lp-ico{display:grid;place-items:center;width:58px;height:58px;border-radius:16px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.16);color:rgb(147,197,253)}
.wj-lp-slide h1{margin:0}
.wj-lp-slide p{margin:0}
.wj-lp-dots{display:flex;gap:8px;margin-top:6px}
.wj-lp-dots button{width:34px;height:4px;border:0;border-radius:4px;background:rgba(255,255,255,.28);cursor:pointer;padding:0;transition:background .3s,width .3s}
.wj-lp-dots button.on{background:rgb(255,255,255);width:48px}
.wj-lp-hello{display:flex;align-items:center;gap:14px;margin-bottom:22px}
.wj-lp-hello .wj-avatar,.wj-lp-hello .wj-avatar-media{width:52px;height:52px;flex:none;border-radius:50%;font-size:18px;box-shadow:0 0 0 3px rgba(96,165,250,.35)}
.wj-lp-hello h1{margin:0 0 2px;font-size:clamp(24px,2.6vw,32px);letter-spacing:-.03em;line-height:1.1}
.wj-lp-hello .wj-hub-sub{margin:0}
.wj-launchpad .wj-hub-grid{grid-template-columns:1fr;gap:12px}
.wj-launchpad .wj-hub-card{padding:16px 18px;align-items:center;border-radius:16px;background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.08);box-shadow:none}
.wj-launchpad a.wj-hub-card:hover{background:rgba(59,130,246,.12);border-color:rgba(96,165,250,.55);box-shadow:0 16px 40px -18px rgba(37,99,235,.6)}
.wj-launchpad .wj-hub-card-copy strong{font-size:16px}
.wj-lp-tile{display:grid;place-items:center;flex:none;width:44px;height:44px;border-radius:12px;background:rgba(59,130,246,.16);color:rgb(147,197,253);border:1px solid rgba(96,165,250,.22)}
.wj-launchpad a.wj-hub-card:hover .wj-lp-tile{background:rgb(37,99,235);color:rgb(255,255,255)}
.wj-launchpad .wj-hub-card.is-off .wj-lp-tile{background:rgba(148,163,184,.12);color:rgb(148,163,184);border-color:rgba(148,163,184,.2)}
.wj-lp-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:20px;padding-top:16px;border-top:1px solid rgba(255,255,255,.08)}
.wj-lp-who{margin:0;color:var(--muted);font-size:12px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wj-lp-signout{flex:none;display:inline-flex;align-items:center;gap:6px;border:0;background:none;color:rgb(147,197,253);font:inherit;font-size:13px;font-weight:700;cursor:pointer;padding:6px 0}
.wj-lp-signout:hover{color:rgb(255,255,255)}
@media(max-width:820px){
 .wj-auth-deco{display:none}
 .wj-auth-card,.wj-login-v2 .wj-login-card{padding:26px 20px 22px;border-radius:20px;background:rgba(15,23,42,.6)}
 .wj-lp-foot{flex-direction:column-reverse;align-items:flex-start}
}
@media(prefers-reduced-motion:reduce){.wj-auth-deco i{animation:none}.wj-lp-slide{transition:none}}

/* Acceso: los anuncios de la izquierda se turnan (mismo hueco, uno encima de otro). */
.wj-ad-deck{display:grid;gap:14px;max-width:560px}
.wj-ad{grid-area:1/1;display:grid;gap:10px;align-content:start;opacity:0;visibility:hidden;transform:translateY(14px);transition:opacity .55s ease,transform .7s cubic-bezier(.2,.9,.3,1.1),visibility 0s linear .55s}
.wj-ad.on{opacity:1;visibility:visible;transform:none;transition:opacity .55s ease .1s,transform .7s cubic-bezier(.2,.9,.3,1.1) .1s,visibility 0s}
.wj-ad-dots{grid-area:2/1;margin-top:2px}
/* Maqueta del chat en vivo. */
.wj-lsc-web{position:absolute;left:18px;top:22px;width:62%;height:250px;border-radius:12px;background:rgb(255,255,255);box-shadow:0 18px 40px rgba(2,6,23,.35);overflow:hidden}
.wj-lsc-bar{display:flex;align-items:center;gap:5px;height:26px;padding:0 10px;background:rgb(241,245,249);border-bottom:1px solid rgb(226,232,240)}
.wj-lsc-bar i{width:7px;height:7px;border-radius:50%;background:rgb(203,213,225)}
.wj-lsc-bar span{margin-left:8px;padding:2px 10px;border-radius:6px;background:rgb(255,255,255);color:rgb(100,116,139);font-size:11px}
.wj-lsc-page{display:grid;gap:7px;padding:16px}
.wj-lsc-page b{display:block;width:55%;height:12px;border-radius:4px;background:rgb(30,41,59)}
.wj-lsc-page span{display:block;height:7px;border-radius:4px;background:rgb(226,232,240)}
.wj-lsc-page span.short{width:60%}
.wj-lsc-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:8px}
.wj-lsc-tiles em{display:block;height:62px;border-radius:8px;background:linear-gradient(135deg,rgb(219,234,254),rgb(237,233,254))}
.wj-lsc-chat{position:absolute;right:18px;top:40px;width:230px;border-radius:16px;background:rgb(255,255,255);box-shadow:0 22px 50px rgba(2,6,23,.45);overflow:hidden}
.wj-lsc-head{display:flex;align-items:center;gap:8px;padding:10px 12px;background:rgb(37,99,235);color:rgb(255,255,255)}
.wj-lsc-head strong{font-size:12px}
.wj-lsc-head small{display:flex;align-items:center;gap:4px;font-size:11px;opacity:.9}
.wj-lsc-head small i{width:6px;height:6px;border-radius:50%;background:rgb(74,222,128)}
.wj-lsc-av{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:rgba(255,255,255,.22);font-size:11px;font-weight:800}
.wj-lsc-msgs{display:grid;gap:7px;padding:12px}
.wj-lsc-msgs p{margin:0;max-width:84%;padding:7px 10px;border-radius:12px;font-size:11px;line-height:1.4}
.wj-lsc-msgs p.in{justify-self:start;background:rgb(241,245,249);color:rgb(30,41,59);border-bottom-left-radius:4px}
.wj-lsc-msgs p.out{justify-self:end;background:rgb(37,99,235);color:rgb(255,255,255);border-bottom-right-radius:4px}
.wj-lsc-book{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;border:1px solid rgb(226,232,240);border-radius:12px}
.wj-lsc-book span{display:block;color:rgb(100,116,139);font-size:11px}
.wj-lsc-msgs p.typing{display:flex;gap:3px;padding:9px 11px}
.wj-lsc-msgs p.typing i{width:5px;height:5px;border-radius:50%;background:rgb(148,163,184);animation:wj-lsc-type 1.2s infinite}
.wj-lsc-msgs p.typing i:nth-child(2){animation-delay:.15s}.wj-lsc-msgs p.typing i:nth-child(3){animation-delay:.3s}
@keyframes wj-lsc-type{0%,60%,100%{transform:none;opacity:.5}30%{transform:translateY(-3px);opacity:1}}
.wj-lsc-toast{position:absolute;left:34px;bottom:20px;display:flex;align-items:center;gap:8px;padding:9px 12px;border-radius:12px;background:rgb(255,255,255);box-shadow:0 12px 28px rgba(2,6,23,.35)}
.wj-lsc-toast span{display:block;color:rgb(100,116,139);font-size:11px}
.wj-lsc-dot{width:9px;height:9px;border-radius:50%;background:rgb(34,197,94);box-shadow:0 0 0 4px rgba(34,197,94,.2)}
/* Maqueta del chat con IA. */
.wj-lsa-panel{position:absolute;right:28px;top:22px;width:300px;border-radius:16px;background:rgb(255,255,255);box-shadow:0 22px 50px rgba(2,6,23,.45);padding:12px;display:grid;gap:9px}
.wj-lsa-head{display:flex;align-items:center;gap:8px;padding-bottom:9px;border-bottom:1px solid rgb(241,245,249)}
.wj-lsa-head strong{font-size:12px}
.wj-lsa-head small{display:block;color:rgb(100,116,139);font-size:11px}
.wj-lsa-spark{display:grid;place-items:center;width:28px;height:28px;border-radius:8px;background:linear-gradient(135deg,rgb(59,130,246),rgb(168,85,247));color:rgb(255,255,255)}
.wj-lsa-q{justify-self:end;margin:0;max-width:80%;padding:7px 10px;border-radius:12px;border-bottom-right-radius:4px;background:rgb(37,99,235);color:rgb(255,255,255);font-size:11px;line-height:1.4}
.wj-lsa-a{position:relative;justify-self:start;max-width:92%;padding:9px 11px;border-radius:12px;border-bottom-left-radius:4px;background:linear-gradient(rgb(248,250,252),rgb(248,250,252)) padding-box,linear-gradient(135deg,rgb(96,165,250),rgb(192,132,252)) border-box;border:1.5px solid transparent}
.wj-lsa-a p{margin:4px 0 0;color:rgb(30,41,59);font-size:11px;line-height:1.45}
.wj-lsa-tag{display:inline-flex;align-items:center;gap:3px;padding:2px 6px;border-radius:5px;background:rgb(243,232,255);color:rgb(126,34,206);font-size:11px;font-weight:800}
.wj-lsa-chips{display:flex;flex-wrap:wrap;gap:6px}
.wj-lsa-chips span{padding:5px 9px;border-radius:999px;border:1px solid rgb(191,219,254);color:rgb(29,78,216);font-size:11px;font-weight:700}
.wj-lsa-float{position:absolute;display:inline-flex;align-items:center;gap:5px;padding:7px 10px;border-radius:12px;background:rgb(255,255,255);color:rgb(30,41,59);font-size:11px;font-weight:700;box-shadow:0 12px 28px rgba(2,6,23,.35)}
.wj-lsa-float svg{color:rgb(37,99,235)}
.wj-lsa-float.one{left:18px;top:96px}
.wj-lsa-float.two{left:18px;top:140px}
@media(max-width:1180px){.wj-lsc-toast,.wj-lsa-float{display:none}.wj-lsc-web{width:70%}.wj-lsa-panel{right:auto;left:50%;margin-left:-150px}}
@media(max-height:760px){.wj-lsc-web{height:200px}.wj-lsc-chat{top:24px}}
@media(prefers-reduced-motion:reduce){.wj-ad,.wj-ad.on{transition:none}.wj-lsc-msgs p.typing i{animation:none}}

/* Reservas de hoy → ficha: tarjeta de llegada encima del detalle de la reserva. */
.wj-checkin-card{margin:0 0 18px;padding:16px 18px;border:1px solid var(--border);border-radius:16px;background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 9%,var(--surface)),var(--surface))}
.wj-checkin-card.done{background:linear-gradient(135deg,color-mix(in srgb,var(--ok) 12%,var(--surface)),var(--surface));border-color:color-mix(in srgb,var(--ok) 35%,var(--border))}
.wj-checkin-head{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.wj-checkin-ico{display:grid;place-items:center;width:44px;height:44px;flex:none;border-radius:16px;background:color-mix(in srgb,var(--accent) 16%,transparent);color:var(--accent)}
.wj-checkin-card.done .wj-checkin-ico{background:color-mix(in srgb,var(--ok) 18%,transparent);color:var(--ok)}
.wj-checkin-copy{flex:1;min-width:180px;display:grid;gap:2px}
.wj-checkin-copy strong{font-size:16px}
.wj-checkin-copy small{color:var(--muted);font-size:13px}
.wj-checkin-go{min-height:42px;padding-inline:18px}
.wj-checkin-steps{list-style:none;margin:14px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px}
.wj-checkin-steps li{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;background:var(--surface2,var(--surface));border:1px solid var(--border)}
.wj-checkin-steps li div{display:grid;gap:1px;min-width:0}
.wj-checkin-steps strong{font-size:13px}
.wj-checkin-steps small{color:var(--muted);font-size:12px}
.wj-checkin-mark{display:grid;place-items:center;width:26px;height:26px;flex:none;border-radius:50%}
.wj-checkin-steps li.ok .wj-checkin-mark{background:color-mix(in srgb,var(--ok) 18%,transparent);color:var(--ok)}
.wj-checkin-steps li.warn .wj-checkin-mark{background:color-mix(in srgb,var(--warn) 18%,transparent);color:var(--warn)}
@media(max-width:600px){.wj-checkin-go{width:100%;justify-content:center}}

/* Chat en vivo: luces de estado (verde en línea, ámbar ausente, gris desconectado), menú de estado,
   franja del horario, equipo y el editor de la semana. */
.wj-light{display:inline-block;width:9px;height:9px;flex:none;border-radius:50%;background:rgb(148,163,184);box-shadow:0 0 0 2px var(--surface)}
.wj-light.online{background:var(--ok);box-shadow:0 0 0 2px var(--surface),0 0 0 5px color-mix(in srgb,var(--ok) 22%,transparent);animation:wj-light-pulse 2.4s ease-in-out infinite}
.wj-light.away{background:var(--warn)}
.wj-light.offline{background:rgb(148,163,184)}
@keyframes wj-light-pulse{0%,100%{box-shadow:0 0 0 2px var(--surface),0 0 0 3px color-mix(in srgb,var(--ok) 30%,transparent)}50%{box-shadow:0 0 0 2px var(--surface),0 0 0 7px color-mix(in srgb,var(--ok) 0%,transparent)}}
.wj-chat-status{position:relative}
.wj-chat-status-btn{display:inline-flex;align-items:center;gap:8px;padding:7px 12px;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--text);font:inherit;font-size:13px;font-weight:700;cursor:pointer}
.wj-chat-status-btn svg{transform:rotate(90deg);color:var(--muted)}
.wj-chat-status-btn:hover{border-color:var(--border-strong)}
.wj-chat-status-menu{position:absolute;left:0;top:calc(100% + 6px);z-index:30;width:280px;padding:6px;border:1px solid var(--border);border-radius:16px;background:var(--surface);box-shadow:0 18px 40px -12px rgba(2,6,23,.35);display:grid;gap:2px}
.wj-chat-status-menu button{display:flex;align-items:flex-start;gap:10px;padding:9px 10px;border:0;border-radius:12px;background:none;color:var(--text);font:inherit;text-align:left;cursor:pointer}
.wj-chat-status-menu button .wj-light{margin-top:5px}
.wj-chat-status-menu button:hover,.wj-chat-status-menu button[aria-checked="true"]{background:var(--surface2)}
.wj-chat-status-menu strong{display:block;font-size:14px}
.wj-chat-status-menu small{display:block;color:var(--muted);font-size:12px;line-height:1.4}
.wj-chat-hoursbar{display:flex;align-items:center;gap:8px;margin:0 12px 8px;padding:8px 10px;border-radius:12px;font-size:13px;line-height:1.35}
.wj-chat-hoursbar.is-open{background:color-mix(in srgb,var(--ok) 10%,transparent);color:var(--text)}
.wj-chat-hoursbar.is-closed{background:var(--surface2);color:var(--muted)}
.wj-chat-hoursbar span{flex:1;min-width:0}
.wj-chat-hoursbar .wj-inline-link{font-size:12px;white-space:nowrap}
.wj-chat-team{display:flex;align-items:center;gap:10px;padding:0 14px 8px;overflow-x:auto;scrollbar-width:none}
.wj-chat-team:empty{display:none}
.wj-chat-team-label{font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--text-3)}
.wj-chat-mate{display:inline-flex;flex-direction:column;align-items:center;gap:3px;min-width:38px}
.wj-chat-mate em{font-style:normal;font-size:11px;color:var(--muted);max-width:56px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wj-chat-mate-ava{position:relative;display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:color-mix(in srgb,var(--accent) 16%,var(--surface));color:var(--text);font-size:12px;font-weight:800}
.wj-chat-mate-ava .wj-light{position:absolute;right:-1px;bottom:-1px;width:10px;height:10px}
.wj-chat-week{display:grid;gap:8px}
.wj-chat-day{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:10px 12px;border:1px solid var(--border);border-radius:12px;background:var(--surface)}
.wj-chat-day-name{display:flex;align-items:center;gap:10px;min-width:150px;cursor:pointer}
.wj-chat-day-time{display:flex;align-items:center;gap:8px}
.wj-chat-day-time .wj-input{width:118px}
.wj-chat-day-time em{font-style:normal;color:var(--muted)}
.wj-chat-day-closed{display:none;color:var(--text-3);font-size:13px}
.wj-chat-day.is-off .wj-chat-day-time{display:none}
.wj-chat-day.is-off .wj-chat-day-closed{display:inline}
.wj-chat-day.is-off strong{color:var(--muted)}
.wj-chat-teamlist{display:grid;gap:6px}
.wj-chat-teamrow{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:12px;background:var(--surface2)}
.wj-chat-teamrow strong{flex:1;font-size:14px}
.wj-chat-teamstate{font-size:12px;font-weight:700}
.wj-chat-teamstate.online{color:var(--ok)}
.wj-chat-teamstate.away{color:var(--warn)}
.wj-chat-teamstate.offline{color:var(--text-3)}
@media (prefers-reduced-motion:reduce){.wj-light.online{animation:none}}

/* Atajo al chat en la barra de arriba (junto al TPV), con el número de mensajes sin leer. */
.wj-chat-launcher{position:relative;text-decoration:none}
.wj-chat-launcher-dot{position:absolute;top:-3px;right:-3px;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--danger);color:rgb(255,255,255);font-size:11px;font-weight:800;line-height:18px;text-align:center;box-shadow:0 0 0 2px var(--surface)}
.wj-chat-launcher.has-unread{animation:wj-chat-launcher-ping 1.6s ease-out 2}
@keyframes wj-chat-launcher-ping{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--danger) 45%,transparent)}100%{box-shadow:0 0 0 12px transparent}}
@media (prefers-reduced-motion:reduce){.wj-chat-launcher.has-unread{animation:none}}

/* Buscador de arriba: al pulsarlo, solo la cápsula se marca (borde de acento y un halo suave);
   el campo de dentro no lleva su propio marco azul. */
.wj-global-search input,.wj-global-search input:focus,.wj-global-search input:focus-visible{outline:none!important;box-shadow:none!important;border:0!important;background:transparent}
.wj-global-search:focus-within{box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 16%,transparent)}

/* ===================================================================
   Incidencias (interfaz portada): filtros-icono y selector de fechas, lista por meses
   y calendario, ficha a página completa, descripción física con ilustración, QR y
   página pública del cliente, hoja imprimible y borradores recuperados.
   =================================================================== */
/* Galería de fotos adjuntas */
.wj-mnt-gallery{display:grid;gap:8px}
.wj-mnt-gallery-main{display:block;border-radius:16px;overflow:hidden;border:1px solid var(--hairline,var(--border));background:var(--surface2)}
.wj-mnt-gallery-main img{width:100%;max-height:360px;object-fit:contain;display:block}
.wj-mnt-gallery-thumbs{display:flex;gap:6px;overflow-x:auto;padding-bottom:2px}
.wj-mnt-gallery-thumbs button{flex:0 0 64px;width:64px;height:64px;border-radius:12px;overflow:hidden;border:2px solid transparent;padding:0;background:var(--surface2);cursor:pointer}
.wj-mnt-gallery-thumbs button.on{border-color:var(--accent)}
.wj-mnt-gallery-thumbs img{width:100%;height:100%;object-fit:cover;display:block}
/* Incidencias: historial con notas, correcciones tachadas y enlace al vídeo */
.wj-event-note{margin:6px 0 4px;padding:8px 12px;border-left:3px solid var(--accent);background:var(--surface2);border-radius:0 10px 10px 0;font-size:13px;line-height:1.5;white-space:pre-wrap;color:var(--text)}
.wj-event.is-superseded strong,.wj-event.is-superseded .wj-event-note{text-decoration:line-through;opacity:.55}
.wj-event.is-superseded .wj-event-dot{opacity:.45}
.wj-event-video{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:var(--accent);margin:2px 0 4px;word-break:break-all}
.wj-link-btn{border:0;background:transparent;padding:0;color:var(--accent);font:inherit;font-size:12px;cursor:pointer;display:inline-flex;align-items:center;gap:3px}
.wj-link-btn:hover{text-decoration:underline}
/* Filtros como cajones-icono */
.wj-exp-dot{width:10px;height:10px;border-radius:50%;background:var(--muted)}
.wj-exp-filter{position:relative;flex:none}
.wj-exp-filter-btn{display:flex;align-items:center;height:42px;min-width:42px;max-width:42px;padding:0;border:1px solid var(--border);border-radius:12px;background:var(--surface);color:var(--muted);font:inherit;overflow:hidden;cursor:pointer;transition:max-width .28s cubic-bezier(.22,.8,.3,1),border-color .15s,box-shadow .15s}
.wj-exp-filter-btn>i{flex:none;width:40px;height:40px;display:grid;place-items:center}
.wj-exp-filter-btn>span{min-width:0;padding-right:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text);opacity:0;transition:opacity .18s}
.wj-exp-filter.is-open .wj-exp-filter-btn,.wj-exp-filter.has-value .wj-exp-filter-btn,.wj-exp-filter:focus-within .wj-exp-filter-btn{max-width:min(280px,72vw)}
.wj-exp-filter.is-open .wj-exp-filter-btn>span,.wj-exp-filter.has-value .wj-exp-filter-btn>span,.wj-exp-filter:focus-within .wj-exp-filter-btn>span{opacity:1}
.wj-exp-filter.has-value .wj-exp-filter-btn,.wj-exp-filter.is-open .wj-exp-filter-btn{border-color:var(--accent);color:var(--accent)}
.wj-exp-filter.is-open .wj-exp-filter-btn{box-shadow:0 0 0 3px var(--primary-weak)}
.wj-exp-filter-menu{display:none;position:absolute;top:100%;left:0;z-index:30;padding-top:6px;min-width:230px;max-width:min(340px,88vw)}
.wj-exp-filter-menu>div{display:grid;gap:2px;padding:6px;max-height:min(340px,60vh);overflow:auto;border:1px solid var(--border);border-radius:16px;background:var(--surface);box-shadow:0 18px 40px rgba(15,23,42,.18);animation:wj-exp-drop .2s cubic-bezier(.22,.8,.3,1)}
.wj-exp-filter-menu button{display:flex;align-items:center;gap:8px;min-height:40px;padding:8px 10px;border:0;border-radius:8px;background:transparent;color:var(--text);font:inherit;text-align:left;cursor:pointer}
.wj-exp-filter-menu button:hover,.wj-exp-filter-menu button:focus-visible{background:var(--surface2)}
.wj-exp-filter-menu button.is-active{background:var(--primary-weak);color:var(--accent);font-weight:600}
.wj-exp-filter-menu button small{display:block;color:var(--muted);font-weight:400}
.wj-exp-filter.is-open .wj-exp-filter-menu{display:block}
@media(hover:hover){.wj-exp-filter:hover .wj-exp-filter-btn{max-width:min(280px,72vw)}.wj-exp-filter:hover .wj-exp-filter-btn>span{opacity:1}.wj-exp-filter:hover:not(.is-picked) .wj-exp-filter-menu{display:block}}
@keyframes wj-exp-drop{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.wj-exp-filter-btn,.wj-exp-filter-menu>div{transition:none;animation:none}}
/* Borrador recuperado */
.wj-draft-bar{display:flex;align-items:center;gap:8px;grid-column:1/-1;margin:0 0 10px;padding:8px 12px;border-radius:12px;background:var(--primary-weak);color:var(--accent);font-size:13px}
.wj-draft-bar span{flex:1;min-width:0}.wj-draft-bar .wj-link-btn{color:var(--accent);font-weight:600;background:none;border:0;cursor:pointer;font:inherit;text-decoration:underline}
/* Incidencias · estilo Gastos fijos */
.wj-inc-toolbar{flex-wrap:wrap;gap:8px;align-items:center}.wj-inc-toolbar .wj-date-range-filter{position:relative}.wj-inc-view{margin-left:auto}
.wj-exp-filter-check{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:8px;cursor:pointer}.wj-exp-filter-check:hover{background:var(--surface2)}.wj-exp-filter-check small{display:block;color:var(--muted)}
.wj-exp-filter-foot{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:6px 4px 2px;border-top:1px solid var(--border);margin-top:4px}
.wj-inc-body.is-in{animation:wj-inc-in .18s ease}
.wj-inc-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0 0 14px}.wj-inc-kpi{border:1px solid var(--border);border-radius:16px;background:var(--surface);padding:10px 14px;display:flex;align-items:baseline;justify-content:space-between;gap:8px}.wj-inc-kpi span{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.wj-inc-kpi b{font-size:20px}.wj-inc-kpi.is-danger b{color:rgb(220,38,38)}
.wj-inc-group{display:grid;gap:6px;margin-bottom:14px}.wj-inc-group>h3{margin:0;font-size:13px;text-transform:capitalize;color:var(--muted);display:flex;gap:8px;align-items:center}.wj-inc-group>h3 small{font-weight:600}
.wj-inc-list{display:grid;gap:6px}
.wj-inc-row{display:grid;grid-template-columns:10px minmax(0,1.6fr) minmax(0,1fr) auto auto auto auto auto 16px;gap:12px;align-items:center;padding:9px 14px;border:1px solid var(--border);border-radius:12px;background:var(--surface);font:inherit;color:var(--text);text-align:left;cursor:pointer;opacity:1;transform:none;transition:opacity .24s ease,transform .28s cubic-bezier(.22,.8,.3,1),border-color .12s;transition-delay:calc(var(--i,0) * 30ms)}
.wj-inc-row:hover{border-color:var(--accent)}.wj-inc-row>svg:last-child{color:var(--muted)}
.wj-inc-sev{width:10px;height:10px;border-radius:50%;background:rgb(148,163,184)}.sev-leve .wj-inc-sev,.wj-inc-cal-ev.sev-leve{background:rgb(22,163,74)}.sev-moderada .wj-inc-sev,.wj-inc-cal-ev.sev-moderada{background:rgb(217,119,6)}.sev-grave .wj-inc-sev,.wj-inc-cal-ev.sev-grave{background:rgb(220,38,38)}
.wj-inc-main{min-width:0;display:grid}.wj-inc-main strong{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wj-inc-main small{color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wj-inc-who{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:13px}.wj-inc-who em{font-style:normal;font-size:11px;color:var(--muted)}
.wj-inc-center,.wj-inc-date{white-space:nowrap;font-size:12px;color:var(--muted);display:inline-flex;align-items:center;gap:4px}
@media(max-width:900px){.wj-inc-row{grid-template-columns:10px minmax(0,1fr) auto 16px}.wj-inc-row .wj-inc-who,.wj-inc-row .wj-inc-center,.wj-inc-row .wj-inc-date,.wj-inc-row .wj-badge:not(:last-of-type){display:none}.wj-inc-kpis{grid-template-columns:repeat(2,1fr)}}
.wj-inc-sevpick .wj-sched-daychip.sev-leve.on{background:rgb(22,163,74);border-color:rgb(22,163,74)}.wj-inc-sevpick .wj-sched-daychip.sev-moderada.on{background:rgb(217,119,6);border-color:rgb(217,119,6)}.wj-inc-sevpick .wj-sched-daychip.sev-grave.on{background:rgb(220,38,38);border-color:rgb(220,38,38)}
#incident-form .wj-sched-daychip{cursor:pointer}
@keyframes wj-inc-in{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
/* calendario de incidencias */
.wj-inc-cal{display:grid;gap:10px}.wj-inc-cal-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.wj-inc-cal-nav{display:flex;align-items:center;gap:8px}.wj-inc-cal-nav strong{text-transform:capitalize;min-width:160px;text-align:center}
.wj-inc-cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.wj-inc-cal-dow{font-size:11px;font-weight:800;color:var(--muted);text-align:center;padding:4px 0}
.wj-inc-cal-cell{min-height:92px;border:1px solid var(--border);border-radius:12px;background:var(--surface);padding:6px;display:grid;gap:3px;align-content:start}.wj-inc-cal-cell.is-pad{border:0;background:transparent}.wj-inc-cal-cell.has{cursor:pointer}.wj-inc-cal-cell.has:hover{border-color:var(--accent)}.wj-inc-cal-cell.today .wj-inc-cal-n{background:var(--accent);color:rgb(255,255,255)}
.wj-inc-cal-n{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;font-size:12px;font-weight:700}
.wj-inc-cal-ev{border:0;border-radius:6px;padding:2px 6px;font:inherit;font-size:11px;color:rgb(255,255,255);text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;background:rgb(148,163,184)}
.wj-inc-cal-cell small{color:var(--muted);font-size:11px}
@media(max-width:699px){.wj-inc-cal-cell{min-height:56px;padding:4px}.wj-inc-cal-ev{font-size:0;height:6px;padding:0;border-radius:3px}}
/* página de incidencia */
.wj-inc-page{display:grid;gap:14px;max-width:1000px}.wj-inc-page .wj-drawer-head:empty{display:none}
.wj-inc-share{display:grid;gap:8px;padding:12px 14px;border:1px solid var(--border);border-radius:12px;background:var(--primary-weak)}.wj-inc-share-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.wj-inc-share-row .wj-input{flex:1 1 260px}
.wj-inc-approve-box{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:10px;padding:8px 10px;border-radius:12px;background:var(--success-weak,var(--primary-weak))}.wj-inc-approve-box .wj-input{flex:1 1 240px}
/* Barra de herramientas de incidencias: todos los controles a 40 px, separados, misma esquina */
.wj-inc-toolbar{gap:8px!important;align-items:center!important}
.wj-inc-toolbar .wj-search input,.wj-inc-toolbar .wj-btn,.wj-inc-toolbar .wj-select,.wj-inc-toolbar>input,.wj-range-btn,.wj-exp-filter-btn,.wj-inc-toolbar .wj-status-tabs{min-height:40px;height:40px;box-sizing:border-box}
.wj-exp-filter-btn{height:40px!important;min-width:40px!important;border-radius:12px}.wj-exp-filter-btn>i{width:38px!important;height:38px!important}
.wj-exp-filter:not(:hover):not(.is-open):not(.has-value):not(.is-picked) .wj-exp-filter-btn{max-width:40px!important}
.wj-inc-toolbar .wj-search{margin-right:6px}
.wj-range-wrap{display:inline-flex;align-items:center;gap:2px}
.wj-range-btn{display:inline-flex;align-items:center;gap:8px;padding:0 12px;border-radius:12px;white-space:nowrap;font-weight:600}.wj-range-btn>span{text-transform:capitalize}.wj-range-btn.has-value{border-color:var(--accent);color:var(--accent)}.wj-range-btn>svg:last-child{color:var(--muted)}
.wj-range-clear{width:28px;height:28px;border:0;border-radius:50%;background:transparent;color:var(--muted);font-size:16px;cursor:pointer}.wj-range-clear:hover{background:var(--surface2);color:var(--text)}
.wj-inc-toolbar .wj-status-tabs{padding:3px;display:inline-flex;align-items:center}.wj-inc-toolbar .wj-status-tabs .wj-status-tab{min-height:32px;padding:0 12px}
.wj-inc-page{max-width:none}
.wj-inc-share-row .wj-btn{white-space:nowrap}
/* Hoja imprimible de incidencia (solo al imprimir) */
#wj-print{display:none}
@media print{
 body.is-printing>*:not(#wj-print){display:none!important}
 #wj-print{display:block!important;position:static;margin:0}
 @page{size:A4;margin:14mm}
 .wj-pr{font:11.5px/1.45 -apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;color:rgb(15 23 42)}
 .wj-pr-head{display:flex;align-items:center;gap:14px;border-bottom:3px solid rgb(26 109 255);padding-bottom:10px;margin-bottom:12px}
 .wj-pr-logo{height:34px;width:auto;max-width:150px;object-fit:contain}.wj-pr-title{flex:1}.wj-pr-title h1{margin:0;font-size:18px;letter-spacing:.01em}.wj-pr-title small{color:rgb(100 116 139);font-size:11px}
 .wj-pr-ref{text-align:right}.wj-pr-ref b{display:block;font-size:14px}.wj-pr-ref small{color:rgb(100 116 139)}
 .wj-pr h2{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:rgb(26 109 255);margin:12px 0 6px;padding-bottom:3px;border-bottom:1px solid rgb(226 232 240);break-after:avoid}
 .wj-pr-grid{display:grid;gap:6px}.wj-pr-4{grid-template-columns:repeat(4,1fr)}.wj-pr-3{grid-template-columns:repeat(3,1fr)}
 .wj-pr-cell{border:1px solid rgb(226 232 240);border-radius:6px;padding:6px 9px;break-inside:avoid}.wj-pr-cell b{display:block;font-size:9.5px;font-weight:700;color:rgb(100 116 139);text-transform:uppercase;letter-spacing:.04em;margin-bottom:2px}.wj-pr-cell span{font-size:11.5px}
 .wj-pr-sev{font-style:normal;display:inline-block;padding:1px 9px;border-radius:999px;font-weight:700;border:1px solid rgb(203 213 225)}.wj-pr-sev.sev-leve{background:rgb(220 252 231);border-color:rgb(134 239 172)}.wj-pr-sev.sev-moderada{background:rgb(254 243 199);border-color:rgb(252 211 77)}.wj-pr-sev.sev-grave{background:rgb(254 226 226);border-color:rgb(252 165 165)}
 .wj-pr-box{border:1px solid rgb(226 232 240);border-radius:6px;padding:8px 10px;min-height:38px;break-inside:avoid}.wj-pr-box b{display:block;margin-bottom:3px}.wj-pr-box p{margin:0;white-space:pre-wrap}.wj-pr-box small{display:block;margin-top:4px;color:rgb(100 116 139)}
 .wj-pr-photos{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.wj-pr-photos img{width:100%;height:150px;object-fit:cover;border:1px solid rgb(226 232 240);border-radius:6px}
 .wj-pr-hist{width:100%;border-collapse:collapse;font-size:10.5px}.wj-pr-hist td{padding:4px 6px;border-bottom:1px solid rgb(238 242 247);vertical-align:top}.wj-pr-hist td:first-child{white-space:nowrap;color:rgb(100 116 139)}
 .wj-pr-sign{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;margin-top:16px;break-inside:avoid}.wj-pr-sign>div{border:1px solid rgb(203 213 225);border-radius:6px;padding:8px 10px;min-height:64px}.wj-pr-sign b{display:block;font-size:9.5px;font-weight:700;color:rgb(100 116 139);text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px}.wj-pr-sign em{color:rgb(148 163 184)}
 .wj-pr-stamp span{font-size:10px;color:rgb(51 65 85)}
 .wj-pr-foot{margin-top:14px;font-size:9.5px;color:rgb(148 163 184);text-align:center}
}
/* Página de incidencia: dos columnas (datos a la izquierda, estado/firmas/historial a la derecha) */
.wj-inc-page{padding-bottom:84px}
.wj-ip{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:18px;align-items:start}
.wj-ip-main,.wj-ip-side{display:flex;flex-direction:column;gap:14px;min-width:0}
.wj-ip-side{position:sticky;top:12px}
.wj-ip-badges{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.wj-ip-card,.wj-ip-main .wj-section{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:16px 18px;box-shadow:var(--shadow-soft);margin:0}
.wj-ip-card>h3,.wj-ip-main .wj-section>h3{display:flex;align-items:center;gap:8px;margin:0 0 12px;font-size:13px;font-weight:700;letter-spacing:.02em;text-transform:uppercase;color:var(--muted)}
.wj-ip-card>h3 svg{color:var(--accent)}
.wj-ip-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px 18px}
.wj-ip-kv{display:flex;flex-direction:column;gap:2px;min-width:0}
.wj-ip-kv>span{font-size:12px;font-weight:600;color:var(--muted)}
.wj-ip-kv>b{font-weight:600;font-size:14px;overflow-wrap:anywhere}.wj-ip-kv>b small{display:block;font-weight:500;color:var(--muted);font-size:12px}
.wj-ip-text{margin-top:12px;padding:12px 14px;border-radius:12px;background:var(--surface2)}
.wj-ip-text>span{display:block;font-size:12px;font-weight:600;color:var(--muted);margin-bottom:4px}
.wj-ip-text>p{margin:0;white-space:pre-wrap;line-height:1.55}
.wj-ip-grid+.wj-ip-text,.wj-ip-text+.wj-ip-grid{margin-top:12px}
.wj-ip-steps{list-style:none;margin:0 0 12px;padding:0;display:flex;gap:4px}
.wj-ip-steps li{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--muted);position:relative}
.wj-ip-steps li i{width:26px;height:26px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-style:normal;font-size:12px;background:var(--surface2);border:2px solid var(--border)}
.wj-ip-steps li:not(:last-child):after{content:"";position:absolute;top:13px;left:calc(50% + 15px);right:calc(-50% + 15px);height:2px;background:var(--border)}
.wj-ip-steps li.done i,.wj-ip-steps li.done:after{background:var(--accent);border-color:var(--accent);color:rgb(255 255 255)}
.wj-ip-steps li.current{color:var(--text)}.wj-ip-steps li.current i{border-color:var(--accent);color:var(--accent);background:var(--surface)}
.wj-ip-statusform,.wj-ip-approve,.wj-ip-notebox{display:flex;flex-direction:column;gap:8px;margin-top:10px}
.wj-ip-approve{flex-direction:row}.wj-ip-approve .wj-input{flex:1;min-width:0}
.wj-ip-notebox{margin:0 0 12px}.wj-ip-notebox .wj-btn{align-self:flex-end}
.wj-ip-side .wj-ip-kv+.wj-ip-kv{margin-top:10px}
.wj-ip-side .wj-timeline{max-height:420px;overflow:auto}
.wj-inc-foot{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
@media(max-width:1100px){.wj-ip{grid-template-columns:1fr}.wj-ip-side{position:static}}
@media(max-width:640px){.wj-ip-card{padding:14px;border-radius:16px}.wj-ip-grid{grid-template-columns:1fr 1fr}.wj-inc-foot{flex-wrap:nowrap;justify-content:stretch}.wj-inc-foot .wj-btn:not(.primary){flex:0 0 44px;width:44px;padding:0;justify-content:center;font-size:0;gap:0}.wj-inc-foot .wj-btn:not(.primary) svg{width:18px;height:18px}.wj-inc-foot .wj-btn.primary{flex:1 1 auto}.wj-inc-foot .wj-subpage-back-bottom{font-size:0}}
/* Incidencias: columnas fijas para que todas las filas queden alineadas */
.wj-inc-row{grid-template-columns:10px minmax(0,1.6fr) minmax(140px,.9fr) 150px 140px 92px 86px 26px 16px;gap:10px}
.wj-inc-row .wj-inc-center,.wj-inc-row .wj-inc-date{overflow:hidden;text-overflow:ellipsis}
.wj-inc-cell{display:flex;align-items:center;justify-content:center;min-width:0}.wj-inc-cell .wj-badge{width:100%;justify-content:center;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wj-inc-cell .wj-badge.is-empty{opacity:.35}.wj-inc-apr .wj-badge{width:26px;padding:0}
@media(max-width:1200px){.wj-inc-row{grid-template-columns:10px minmax(0,1.6fr) minmax(120px,.8fr) 130px 128px 86px 80px 26px 16px}}
@media(max-width:900px){.wj-inc-row{grid-template-columns:10px minmax(0,1fr) 80px 16px}.wj-inc-row .wj-inc-who,.wj-inc-row .wj-inc-center,.wj-inc-row .wj-inc-date,.wj-inc-row .wj-inc-sevb,.wj-inc-row .wj-inc-apr{display:none}}
/* ===== Incidencias: descripción física, maniquí, QR del cliente, página pública; pedidos: cabeceras ordenables ===== */
.wj-inc-ap-grid{display:grid;grid-template-columns:minmax(0,1fr) 170px;gap:16px;align-items:start}
.wj-inc-ap-fields{display:grid;gap:12px;min-width:0}
.wj-inc-ap-row{display:grid;gap:6px}.wj-inc-ap-row>span{font-size:12px;font-weight:700;color:var(--muted)}
.wj-inc-chips{display:flex;flex-wrap:wrap;gap:6px}
.wj-inc-chip{border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;font-size:13px;font-weight:600;padding:7px 12px;border-radius:999px;cursor:pointer;transition:border-color .15s,background .15s,transform .12s}
.wj-inc-chip:hover{border-color:var(--accent)}.wj-inc-chip.on{background:var(--accent);border-color:var(--accent);color:rgb(255 255 255)}
.wj-inc-chip[hidden]{display:none}
.wj-inc-colors{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.wj-inc-swatch{width:26px;height:26px;border-radius:50%;border:2px solid var(--surface);box-shadow:0 0 0 1px var(--border);cursor:pointer;padding:0;transition:transform .12s,box-shadow .12s;position:relative;display:grid;place-items:center;font:inherit}
.wj-inc-swatch:hover{transform:scale(1.1)}.wj-inc-swatch.on{box-shadow:0 0 0 2px var(--accent);transform:scale(1.12)}
.wj-inc-swatch.is-custom{background:conic-gradient(rgb(255 80 80),rgb(255 220 60),rgb(80 220 120),rgb(80 150 255),rgb(200 80 255),rgb(255 80 80));color:rgb(255 255 255);font-weight:800;font-size:14px;line-height:1}
.wj-inc-swatch.is-custom input{position:absolute;inset:0;opacity:0;width:100%;height:100%;cursor:pointer}
.wj-inc-ap-color{display:grid;gap:4px;margin-top:2px}.wj-inc-ap-color>small{font-size:11px;color:var(--text-3)}
.wj-inc-other{max-width:360px}
.wj-inc-ap-height{display:flex;align-items:center;gap:10px}.wj-inc-ap-height input[type=range]{flex:1;max-width:260px;accent-color:var(--accent)}.wj-inc-ap-height b{min-width:56px;font-variant-numeric:tabular-nums}
.wj-inc-ap-man{display:grid;justify-items:center;gap:6px;padding:10px 8px 8px;border:1px solid var(--border);border-radius:16px;background:radial-gradient(circle at 50% 30%,color-mix(in srgb,var(--accent) 10%,var(--surface2)),var(--surface2));position:sticky;top:8px}
.wj-inc-man-stage{width:100%;aspect-ratio:120/200;max-height:280px;display:grid;place-items:center;cursor:grab;touch-action:pan-y;user-select:none}.wj-inc-man-stage:active{cursor:grabbing}
.wj-inc-man{width:100%;height:100%;display:block;transition:none}
.wj-inc-man-ctl{display:flex;gap:4px;align-items:center}.wj-inc-man-ctl [data-man-left] svg{transform:rotate(180deg)}.wj-inc-man-ctl .wj-btn.is-active{background:var(--primary-weak);border-color:var(--accent);color:var(--accent)}
.wj-inc-ap-man .wj-help{font-size:11px}
.wj-inc-apview{display:grid;grid-template-columns:150px minmax(0,1fr);gap:16px;align-items:start}
.wj-inc-apcard .wj-inc-ap-man{position:static}
.wj-inc-sums{display:flex;flex-wrap:wrap;gap:8px}
.wj-inc-sum{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border:1px solid var(--border);border-radius:12px;background:var(--surface2);font-size:13px}.wj-inc-sum small{color:var(--muted);font-weight:700;text-transform:uppercase;font-size:11px;letter-spacing:.04em}.wj-inc-sum b{font-weight:600}
.wj-inc-dot{width:12px;height:12px;border-radius:50%;box-shadow:0 0 0 1px rgb(15 23 42 / .15) inset;flex:0 0 auto}
.wj-inc-pending{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-top:12px;padding:10px 12px;border-radius:12px;background:var(--warn-weak,rgb(254 243 199));color:var(--warn,rgb(180 83 9));font-size:13px;font-weight:600}.wj-inc-pending span{display:inline-flex;align-items:center;gap:6px}
.wj-inc-signed{display:grid;gap:8px;margin-top:12px;padding:10px 12px;border-radius:12px;background:color-mix(in srgb,var(--ok,rgb(22 163 74)) 10%,var(--surface));color:var(--ok,rgb(22 163 74));font-size:13px;font-weight:600}.wj-inc-signed span{display:inline-flex;align-items:center;gap:6px}
.wj-inc-sig{max-width:260px;max-height:110px;background:rgb(255 255 255);border:1px solid var(--border);border-radius:12px;padding:6px}
.wj-inc-qrbox .wj-inc-qr{display:grid;justify-items:center;gap:6px;padding:14px;background:rgb(255 255 255);border:1px solid var(--border);border-radius:16px;width:max-content;margin:0 auto}.wj-inc-qr b{color:rgb(15 23 42);font-size:12px;letter-spacing:.04em}
.wj-inc-onsite-note{border-style:dashed}
.wj-public-section{display:grid;gap:10px;padding:16px 0;border-top:1px solid var(--border)}.wj-public-section:first-of-type{border-top:0}.wj-public-section h2{margin:0;font-size:17px}.wj-public-section h2 small{font-weight:500;color:var(--muted);font-size:12.5px}
.wj-inc-pub .wj-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.wj-inc-pub .wj-span-2{grid-column:1/-1}
.wj-inc-pub .wj-inc-ap-grid{grid-template-columns:minmax(0,1fr) 150px}
.wj-inc-pub-legal{padding:10px 12px;border-radius:12px;background:var(--surface2);font-size:12px;line-height:1.5}
.wj-public-submit{width:100%;min-height:48px;font-size:15px}
.wj-inc-pub-done{text-align:center}.wj-inc-pub-ok{width:64px;height:64px;margin:0 auto 12px;border-radius:50%;background:rgb(22 163 74);color:rgb(255 255 255);display:grid;place-items:center}
@media(max-width:720px){.wj-inc-ap-grid,.wj-inc-pub .wj-inc-ap-grid{grid-template-columns:1fr}.wj-inc-ap-man{position:static;max-width:220px;margin:0 auto}.wj-inc-apview{grid-template-columns:1fr}.wj-inc-apview .wj-inc-ap-man{max-width:200px;margin:0 auto}.wj-inc-pub .wj-form-grid{grid-template-columns:1fr}}
/* ===== Descripción física v2: color único por parte, silueta plana; permisos plegables ===== */
.wj-inc-ap-line{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.wj-inc-skins{display:flex;gap:6px}
.wj-inc-color{position:relative;display:inline-flex;align-items:center;gap:6px;padding:4px 8px 4px 4px;border:1px dashed var(--border);border-radius:999px;font-size:12px;color:var(--muted);cursor:pointer;overflow:hidden}
.wj-inc-color.has{border-style:solid;color:var(--text)}
.wj-inc-color i{width:22px;height:22px;border-radius:50%;background:conic-gradient(rgb(255 80 80),rgb(255 220 60),rgb(80 220 120),rgb(80 150 255),rgb(200 80 255),rgb(255 80 80));box-shadow:0 0 0 1px rgb(15 23 42 / .15) inset;flex:0 0 auto}
.wj-inc-color input[type=color]{position:absolute;inset:0;opacity:0;width:100%;height:100%;cursor:pointer;border:0;padding:0}
.wj-inc-color-x{position:relative;z-index:1;border:0;background:var(--surface2);color:var(--muted);width:18px;height:18px;border-radius:50%;font:inherit;font-size:12px;line-height:1;cursor:pointer;display:grid;place-items:center}
.wj-inc-man-stage{aspect-ratio:200/414;max-height:320px;cursor:default}
/* ===== Incidencias: secciones plegables del formulario, ficha de persona con ilustración ===== */
.wj-fold>.wj-fold-head{display:flex;align-items:center;gap:12px;width:100%;border:0;background:transparent;padding:0;font:inherit;color:inherit;text-align:left;cursor:pointer}
.wj-fold-title{display:grid;flex:1;min-width:0}.wj-fold-title strong{font-size:14px}.wj-fold-title small{color:var(--muted);font-size:12px}
.wj-fold-state{font-size:12px;font-weight:700;color:var(--accent);padding:4px 10px;border-radius:999px;background:var(--primary-weak)}
.wj-fold>.wj-fold-head>svg{transform:rotate(90deg);transition:transform .18s;color:var(--muted)}
.wj-fold.is-closed>.wj-fold-head>svg{transform:rotate(0)}
.wj-fold>.wj-fold-body{display:grid;grid-template-rows:1fr;transition:grid-template-rows .26s cubic-bezier(.22,.8,.3,1)}
.wj-fold>.wj-fold-body>*{min-width:0}
.wj-fold.is-closed>.wj-fold-body{display:none}
.wj-fold:not(.is-closed)>.wj-fold-head{margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--border)}
.wj-inc-ap-fields{gap:10px}.wj-inc-ap-row{gap:5px}.wj-inc-chip{padding:6px 11px;font-size:12px}
.wj-inc-person-grid{display:grid;grid-template-columns:minmax(0,1fr) 128px;gap:16px;align-items:start}
.wj-inc-person-data{min-width:0}
.wj-inc-person-traits{margin-top:12px;padding-top:12px;border-top:1px dashed var(--border)}
.wj-inc-person-fig{display:grid;gap:6px;justify-items:center}
.wj-inc-person-fig .wj-inc-ap-man{position:static;width:100%;padding:8px 6px 6px}
.wj-inc-person-fig.is-empty .wj-inc-ap-man{background:var(--surface2);border-style:dashed}
.wj-inc-person-fig .wj-inc-man-stage{max-height:240px}
@media(max-width:720px){.wj-inc-person-grid{grid-template-columns:1fr}.wj-inc-person-fig{order:-1}.wj-inc-person-fig .wj-inc-ap-man{max-width:160px}}

/* ===== Incidencias: tarjeta de descripción física en la columna derecha ===== */
.wj-inc-person-grid.is-single{grid-template-columns:1fr}
.wj-inc-figcard>h3 .wj-inc-fig-edit{margin-left:auto;text-transform:none;letter-spacing:0}
.wj-inc-figwrap{display:grid;grid-template-columns:118px minmax(0,1fr);gap:12px;align-items:start}
.wj-inc-figwrap .wj-inc-ap-man{position:static;padding:6px 4px 4px}.wj-inc-figwrap .wj-inc-man-stage{max-height:230px}
.wj-inc-figcard.is-empty .wj-inc-ap-man{background:var(--surface2);border-style:dashed}
.wj-inc-figwrap .wj-inc-sums{gap:6px}.wj-inc-figwrap .wj-inc-sum{padding:5px 8px;font-size:12px}
.wj-inc-traits-panel .wj-inc-ap-grid{grid-template-columns:minmax(0,1fr) 150px}
.wj-inc-man.is-unknown{opacity:.9}
/* Incidencias en el móvil: la barra no cabe en una fila; el buscador ocupa la suya y los filtros bajan. */
@media(max-width:820px){.wj-toolbar.wj-toolbar-fit.wj-inc-toolbar,.wj-toolbar.wj-inc-toolbar{flex-wrap:wrap}.wj-inc-toolbar>.wj-search{flex:1 1 100%!important;width:auto!important;max-width:none!important;min-width:0!important}.wj-inc-toolbar .wj-inc-view{margin-left:auto}}
html[data-layout="mobile"] .wj-toolbar.wj-inc-toolbar{flex-wrap:wrap}
html[data-layout="mobile"] .wj-inc-toolbar>.wj-search{flex:1 1 100%!important;width:auto!important;max-width:none!important;min-width:0!important}
.wj-inc-toolbar .wj-inc-view{width:auto!important;flex:0 0 auto!important}.wj-inc-view .wj-status-tab{display:inline-flex;align-items:center;gap:5px;flex:0 0 auto;white-space:nowrap}
@media(max-width:820px){.wj-inc-toolbar .wj-inc-view{margin-left:0}.wj-inc-toolbar #create-incident{margin-left:auto}}

/* ===== Mantenimiento 1.6.12 (traído de worldjump-platform): flujo, datos, historial con fotos, resumen del
   gerente, conversación y selector de fotos. Todo con prefijo propio para no cambiar otras pantallas. ===== */
.wj-photo-pick{display:grid;gap:10px}
.wj-photo-actions{display:flex;gap:8px;flex-wrap:wrap}
.wj-photo-actions .wj-btn{display:inline-flex;align-items:center;gap:6px}
.wj-photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px}
.wj-photo-thumb{position:relative;margin:0;aspect-ratio:1;border-radius:12px;overflow:hidden;border:1px solid var(--hairline,var(--border))}
.wj-photo-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.wj-photo-thumb button{position:absolute;top:4px;right:4px;width:24px;height:24px;border-radius:50%;border:0;background:rgba(0,0,0,.6);color:rgb(255,255,255);display:grid;place-items:center;cursor:pointer}
.wj-photo-thumb.is-file{display:grid;place-items:center;background:var(--surface2)}
.wj-photo-file{display:grid;justify-items:center;gap:4px;color:var(--muted);font-size:11px;text-align:center;padding:4px}
.wj-photo-grid>.wj-help{grid-column:1/-1;margin:0}
.wj-mnt-flow{list-style:none;margin:0 0 12px;padding:0;display:flex;gap:0}
.wj-mnt-flow li{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;position:relative;font-size:12px;font-weight:700;color:var(--muted);text-align:center}
.wj-mnt-flow li:not(:last-child)::after{content:"";position:absolute;top:12px;left:calc(50% + 14px);right:calc(-50% + 14px);border-top:2px dashed var(--hairline,var(--border))}
.wj-mnt-flow-n{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:var(--surface2);border:2px solid var(--hairline,var(--border));font-size:11px;font-weight:800}
.wj-mnt-flow li.active{color:var(--text)}.wj-mnt-flow li.active .wj-mnt-flow-n{background:var(--accent);border-color:var(--accent);color:var(--on-accent,rgb(255,255,255))}
.wj-mnt-flow li.done{color:var(--accent)}.wj-mnt-flow li.done .wj-mnt-flow-n{background:color-mix(in srgb,var(--accent) 22%,transparent);border-color:var(--accent);color:var(--accent)}.wj-mnt-flow li.done::after{border-top-style:solid;border-color:var(--accent)}
.wj-mnt-flow.is-bad li.active .wj-mnt-flow-n{background:rgb(214,69,69);border-color:rgb(214,69,69);color:rgb(255,255,255)}
.wj-mnt-flow-note{margin:0 0 12px;padding:8px 12px;border-radius:12px;background:color-mix(in srgb,var(--danger) 10%,var(--surface));color:var(--danger);font-size:13px;display:flex;gap:6px;align-items:center}
.wj-mnt-facts{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;margin:0 0 14px}
.wj-mnt-facts div{padding:10px 12px;border:1px solid var(--hairline,var(--border));border-radius:12px;background:var(--surface-raised,var(--surface))}
.wj-mnt-facts dt{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.wj-mnt-facts dd{margin:3px 0 0;font-size:14px;font-weight:600}
.wj-mnt-hphotos{margin-top:8px;display:grid;gap:4px}
.wj-mnt-hphotos-label{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.wj-mnt-hphotos-grid{display:flex;flex-wrap:wrap;gap:6px}
.wj-mnt-hthumb{width:64px;height:64px;border-radius:12px;overflow:hidden;border:1px solid var(--hairline,var(--border));background:var(--surface2);display:block}
.wj-mnt-hthumb img{width:100%;height:100%;object-fit:cover;display:block}
.wj-mnt-hfile{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:12px;border:1px solid var(--hairline,var(--border));font-size:13px;font-weight:600;color:var(--text);text-decoration:none;background:var(--surface-raised,var(--surface))}
.wj-mnt-timeline .wj-event.is-purchase .wj-event-dot{background:rgb(224,164,0)}
.wj-mnt-page .wj-row-meta>span{white-space:nowrap}
.wj-mnt-purchase{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 12px;border-radius:12px;background:rgba(224,164,0,.14);border:1px solid rgba(224,164,0,.45);margin:0 0 14px;font-size:14px}
.wj-mnt-purchase small{color:var(--muted);flex-basis:100%}
.wj-mnt-starpick{display:flex;gap:6px}.wj-mnt-starpick button{border:0;background:transparent;color:var(--muted);cursor:pointer;padding:6px}.wj-mnt-starpick button.on{color:rgb(224,164,0)}.wj-mnt-starpick button.on svg{fill:currentColor}
.wj-mnt-stars{display:inline-flex;gap:1px;color:var(--muted);vertical-align:middle}.wj-mnt-stars i{display:inline-flex}.wj-mnt-stars i.on{color:rgb(224,164,0)}.wj-mnt-stars i.on svg{fill:currentColor}
.wj-mnt-stats{margin:0 0 14px;padding:14px 16px;border:1px solid var(--hairline,var(--border));border-radius:16px;background:var(--surface-raised,var(--surface));display:grid;gap:12px}
.wj-mnt-stats-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.wj-mnt-stats-head h2{margin:0;font-size:18px;font-weight:800}
.wj-mnt-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px}
.wj-mnt-stat{padding:12px 14px;border-radius:12px;background:var(--surface2);display:grid;gap:2px}
.wj-mnt-stat span{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.wj-mnt-stat strong{font-size:24px;line-height:1.1;font-variant-numeric:tabular-nums}
.wj-mnt-stat small{font-size:12px;color:var(--muted)}
.wj-field.is-locked .wj-select,.wj-field.is-locked select{opacity:.55;background:var(--surface2);cursor:not-allowed;pointer-events:none}.wj-field.is-locked>span{color:var(--muted)}.wj-field.is-locked .wj-help{display:flex;align-items:center;gap:4px;margin-top:4px}
.wj-mnt-disc h3{display:flex;align-items:center;gap:8px}.wj-mnt-disc h3 .wj-badge{margin-left:auto}
.wj-mnt-disc-people{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:0 0 10px}
.wj-mnt-disc-chip{display:inline-flex;align-items:center;padding:3px 9px;border-radius:999px;background:var(--primary-weak);color:var(--accent);font-size:12px;font-weight:600}.wj-mnt-disc-chip.is-ext{background:var(--surface2);color:var(--muted)}
.wj-mnt-chat{display:flex;flex-direction:column;gap:8px;max-height:360px;overflow:auto;padding:12px;border:1px solid var(--border);border-radius:16px;background:var(--surface2)}
.wj-mnt-msg{display:flex}.wj-mnt-msg.mine{justify-content:flex-end}
.wj-mnt-bubble{max-width:82%;padding:8px 12px;border-radius:14px 14px 14px 4px;background:var(--surface);border:1px solid var(--border);font-size:14px;line-height:1.4}
.wj-mnt-bubble b{display:block;font-size:12px;color:var(--accent);margin-bottom:2px}.wj-mnt-bubble p{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}.wj-mnt-bubble small{display:block;margin-top:3px;font-size:11px;color:var(--muted);text-align:right}
.wj-mnt-msg.mine .wj-mnt-bubble{background:var(--accent);border-color:var(--accent);color:var(--on-accent,rgb(255,255,255));border-radius:14px 14px 4px 14px}.wj-mnt-msg.mine .wj-mnt-bubble small{color:rgba(255,255,255,.8)}
.wj-mnt-compose{display:flex;gap:8px;align-items:flex-end;margin-top:10px}.wj-mnt-compose textarea{flex:1;min-height:44px}
.wj-mnt-disc-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-top:10px}
.wj-disc-people{display:grid;gap:4px;max-height:260px;overflow:auto;padding:4px;border:1px solid var(--border);border-radius:12px;margin-top:8px}
.wj-disc-person{padding:6px 8px;border-radius:8px}.wj-disc-person:hover{background:var(--surface2)}.wj-disc-person span{display:grid}.wj-disc-person small{color:var(--muted)}
.wj-disc-close{display:flex;gap:8px;align-items:center;flex-wrap:wrap;width:100%;margin-top:8px;padding:8px 10px;border-radius:12px;background:var(--primary-weak)}.wj-disc-close .wj-input{flex:1 1 220px}
.wj-disc-page .wj-disc-cols{display:grid;grid-template-columns:1fr 1fr;gap:18px}.wj-disc-page h3{margin:0 0 8px;font-size:14px}
.wj-mnt-list .wj-inc-list{margin-top:6px}
.wj-inc-row.wj-mnt-row{grid-template-columns:10px minmax(0,1.7fr) minmax(0,1fr) 120px 110px 130px 16px}
.wj-mnt-row.tone-ok .wj-inc-sev{background:var(--ok)}.wj-mnt-row.tone-warn .wj-inc-sev{background:var(--warn)}.wj-mnt-row.tone-danger .wj-inc-sev{background:var(--danger)}.wj-mnt-row.tone-info .wj-inc-sev{background:var(--accent)}.wj-mnt-row.tone-neutral .wj-inc-sev{background:var(--muted)}
.wj-mnt-row .wj-mnt-turn{min-width:0}.wj-mnt-row .wj-inc-cell{display:flex;justify-content:flex-start}
.wj-mnt-row .wj-inc-who{display:inline-flex;align-items:center;gap:4px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wj-mnt-settings>*{grid-column:1/-1}
@media(max-width:900px){.wj-inc-row.wj-mnt-row{grid-template-columns:10px minmax(0,1fr) auto 16px}.wj-mnt-row .wj-inc-who,.wj-mnt-row .wj-inc-date,.wj-mnt-row .wj-mnt-turn{display:none}.wj-disc-page .wj-disc-cols{grid-template-columns:1fr}}
@media(max-width:760px){.wj-mnt-stats{padding:12px}.wj-mnt-stats-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.wj-mnt-stat{padding:10px 12px}.wj-mnt-stat strong{font-size:20px}.wj-mnt-stat small{display:none}.wj-mnt-stats-head h2{font-size:15px}.wj-mnt-flow li>span:last-child{font-size:11px}.wj-toolbar.wj-mnt-toolbar{flex-wrap:wrap}.wj-mnt-toolbar>.wj-search{flex:1 1 100%!important;width:auto!important;max-width:none!important;min-width:0!important}.wj-mnt-toolbar #create-maint{margin-left:auto}}
@media(max-width:760px){.wj-mnt-toolbar .wj-range-wrap{flex:1 1 0;min-width:0}.wj-mnt-toolbar .wj-range-btn{min-width:0;flex:1 1 auto;overflow:hidden}.wj-mnt-toolbar .wj-range-btn>span{min-width:0;overflow:hidden;text-overflow:ellipsis}}

/* Alineación visual (revisión con medidas):
   · botones con icono + texto en pestañas y segmentos: en una línea, centrados;
   · gráficas con pocos días con datos: columnas finas en vez de picos;
   · pasos de la tienda en pantallas estrechas: solo el texto del paso actual (todos a la misma altura);
   · celdas de datos vacías con «—». */
.wj-tab:has(> svg),.wj-seg button:has(> svg){display:inline-flex;align-items:center;justify-content:center;gap:6px}
.wj-tab:has(> svg)>svg,.wj-seg button:has(> svg)>svg{flex:none}
@media (max-width:480px){
 .wj-shop-steps li:not(.active) .wj-shop-step-l{display:none}
 .wj-shop-steps li.active .wj-shop-step-l{white-space:nowrap}
 .wj-shop-steps li{gap:4px}
}
/* Pasos de la tienda: los círculos siempre en la misma línea, aunque un texto ocupe dos líneas o esté oculto. */
.wj-shop-steps{align-items:flex-start}
/* Barra de arriba en el móvil: el título se acorta con «…» en vez de empujar los botones fuera de la
   pantalla; en pantallas muy estrechas el calendario se queda en el menú. */
@media (max-width:699px){
 .wj-topbar{min-width:0;overflow:hidden}
 .wj-topbar .wj-title-wrap{min-width:0;overflow:hidden}
 .wj-topbar #page-title{font-size:22px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 .wj-top-actions{gap:6px}
}
@media (max-width:400px){.wj-topbar .wj-top-actions .wj-calendar-launcher{display:none!important}}

/* ---------- chat.<dominio>: app propia de chat en vivo ----------
   Marco propio (no el del panel): barra lateral con marca y secciones, barra superior con búsqueda,
   ayuda, avisos y cuenta; la bandeja en tres paneles redondeados separados (lista · conversación ·
   ficha del visitante). En el móvil: cajón lateral + barra inferior. */
.uc-app{display:grid;grid-template-columns:252px minmax(0,1fr);height:100dvh;background:var(--bg);color:var(--text)}
.uc-side{display:flex;flex-direction:column;min-height:0;padding:18px 14px 14px;border-right:1px solid var(--border);background:var(--surface);overflow-y:auto;scrollbar-width:thin}
.uc-brand{display:flex;align-items:center;gap:11px;padding:2px 8px 14px}
.uc-brand-mark{display:grid;place-items:center;flex:none;width:38px;height:38px;border-radius:12px;background:linear-gradient(135deg,var(--accent),color-mix(in srgb,var(--accent) 55%,rgb(139,92,246)));box-shadow:0 8px 18px -6px color-mix(in srgb,var(--accent) 60%,transparent)}
.uc-brand-mark img{filter:brightness(0) invert(1)}
.uc-brand-txt{display:flex;flex:1;flex-direction:column;min-width:0;line-height:1.2}
.uc-brand-txt strong{font-size:16.5px;font-weight:800;letter-spacing:-.01em}
.uc-brand-txt em{font-style:normal;color:var(--accent)}
.uc-brand-txt small{overflow:hidden;color:var(--muted);font-size:12px;text-overflow:ellipsis;white-space:nowrap}
.uc-side-close{display:none;place-items:center;width:34px;height:34px;border:0;border-radius:12px;background:none;color:var(--muted);cursor:pointer}
.uc-nav{display:flex;flex:1;flex-direction:column;gap:2px}
.uc-kicker{padding:16px 10px 6px;color:var(--muted);font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.uc-nav-btn{display:flex;align-items:center;gap:11px;width:100%;height:40px;padding:0 10px;border:0;border-radius:12px;background:none;color:var(--muted);font:inherit;font-size:14px;font-weight:600;line-height:1;text-align:left;text-decoration:none;cursor:pointer;transition:background .15s,color .15s}
.uc-nav-btn:hover{background:var(--surface2);color:var(--text)}
.uc-nav-btn.active{background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--accent)}
.uc-nav-btn:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.uc-nav-ico{display:grid;place-items:center;flex:none;width:20px;height:20px}
.uc-nav-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.uc-nav-count{flex:none;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:rgb(239,68,68);color:rgb(255,255,255);font-size:11px;font-weight:700;line-height:20px;text-align:center}
.uc-nav-count[hidden]{display:none}
.uc-side-foot{display:flex;flex-direction:column;gap:10px;margin-top:12px;padding-top:12px;border-top:1px solid var(--border)}
.uc-side-foot .wj-theme-switch{align-self:flex-start;margin-left:6px}
.uc-me{display:flex;align-items:center;gap:10px;min-height:52px;padding:8px 10px;border-radius:12px;background:var(--surface2)}
.uc-me:empty{display:none}
.uc-me-ava{position:relative;display:inline-grid;flex:none}
.uc-me-ava .wj-light{position:absolute;right:-1px;bottom:-1px}
.uc-me-txt{display:flex;flex-direction:column;min-width:0;line-height:1.25}
.uc-me-txt strong{overflow:hidden;font-size:14px;text-overflow:ellipsis;white-space:nowrap}
.uc-me-txt small{color:var(--muted);font-size:12px}
.uc-back{color:var(--muted)}
.uc-scrim{display:none}
.uc-main{display:flex;flex-direction:column;min-width:0;min-height:0}
.uc-top{position:relative;display:flex;align-items:center;gap:16px;flex:none;height:68px;padding:0 24px;border-bottom:1px solid var(--border);background:var(--surface)}
.uc-burger{display:none;place-items:center;flex:none;width:40px;height:40px;border:0;border-radius:12px;background:none;color:var(--text);cursor:pointer}
.uc-title{display:flex;flex-direction:column;justify-content:center;min-width:0;line-height:1.2}
.uc-eyebrow{overflow:hidden;color:var(--muted);font-size:12px;text-overflow:ellipsis;white-space:nowrap}
.uc-page-title{margin:0;overflow:hidden;font-size:20px;font-weight:750;letter-spacing:-.015em;text-overflow:ellipsis;white-space:nowrap}
.uc-search{display:flex;align-items:center;gap:8px;flex:0 1 400px;height:40px;margin-left:auto;padding:0 10px 0 12px;border:1px solid var(--border);border-radius:12px;background:var(--bg);color:var(--muted);transition:border-color .15s,box-shadow .15s}
.uc-search:focus-within{border-color:color-mix(in srgb,var(--accent) 55%,var(--border));box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 14%,transparent)}
.uc-search input{flex:1;min-width:0;height:100%;border:0;background:none;color:var(--text);font:inherit;font-size:14px;outline:0}
.uc-search kbd{display:grid;place-items:center;flex:none;width:22px;height:22px;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--muted);font:600 12px/1 inherit}
.uc-search:focus-within kbd{display:none}
.uc-top-acts{display:flex;align-items:center;gap:6px;flex:none}
.uc-top .wj-top-avatar{position:relative}
.uc-ava-light{position:absolute;right:0;bottom:0}
.uc-top .wj-nav-progress{position:absolute;left:0;right:0;bottom:-1px}
.uc-content{flex:1;min-height:0;overflow-y:auto;padding:22px 24px 28px}
.uc-on-inbox .uc-content{overflow:hidden;padding:16px}

/* Bandeja: tres paneles separados, como una app de soporte. */
.uc-app .wj-chat{height:100%;min-height:0;grid-template-columns:minmax(290px,350px) minmax(0,1fr) minmax(260px,310px);gap:16px;border:0;border-radius:0;background:none;overflow:visible}
.uc-app .wj-chat-list,.uc-app .wj-chat-main,.uc-app .wj-chat-side{min-height:0;border:1px solid var(--border);border-radius:20px;background:var(--surface);overflow:hidden;box-shadow:0 1px 2px rgba(15,23,42,.04)}
.uc-app .wj-chat-side{overflow-y:auto;padding:16px}
.uc-app .wj-chat-top{padding:14px 16px 10px}
.uc-app .wj-chat-search{display:none}
.uc-app .wj-chat-filters{gap:20px;margin:0 0 8px;padding:0 16px;border-bottom:1px solid var(--border);overflow-x:auto}
.uc-app .wj-chat-filters button{position:relative;padding:12px 0 11px;border:0;border-radius:0;background:none;color:var(--muted)}
.uc-app .wj-chat-filters button.on{background:none;color:var(--accent)}
.uc-app .wj-chat-filters button.on::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;border-radius:2px;background:var(--accent)}
.uc-app .wj-chat-filters b{background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--accent)}
.uc-app .wj-chat-items{padding:4px 10px 14px}
.uc-app .wj-chat-row{padding:11px 10px;border-radius:12px}
.uc-app .wj-chat-row.active{background:color-mix(in srgb,var(--accent) 8%,transparent);box-shadow:inset 3px 0 0 var(--accent)}
.uc-app .wj-chat-ava{width:42px;height:42px}
.uc-app .wj-chat-head{min-height:68px;padding:12px 18px}
.uc-app .wj-chat-msgs{padding:22px 22px 10px;background:var(--bg)}
.uc-app .wj-chat-msg.in .wj-chat-bubble{border-radius:4px 16px 16px 16px;background:var(--surface);box-shadow:0 0 0 1px var(--border)}
.uc-app .wj-chat-msg.out .wj-chat-bubble{border-radius:16px 4px 16px 16px}
.uc-app .wj-chat-meta{margin-top:4px;font-size:12px}
.uc-app .wj-chat-compose{margin:0;padding:12px 14px 14px;border-top:1px solid var(--border);background:var(--surface)}
.uc-app .wj-chat-compose textarea{border-radius:16px;background:var(--bg)}
.uc-app .wj-chat-card{border-radius:16px}
.uc-app .wj-chat-card-id{padding-bottom:6px}
.uc-app .wj-chat-pick{height:100%}

@media (max-width:1180px){.uc-app .wj-chat{grid-template-columns:minmax(270px,320px) minmax(0,1fr)}}
@media (max-width:900px){
 .uc-app{grid-template-columns:minmax(0,1fr)}
 .uc-side{position:fixed;top:0;bottom:0;left:0;z-index:60;width:min(300px,86vw);box-shadow:0 20px 60px -10px rgba(2,6,23,.45);transform:translateX(-102%);transition:transform .25s cubic-bezier(.2,.8,.2,1)}
 .uc-menu-open .uc-side{transform:none}
 .uc-scrim{position:fixed;inset:0;z-index:59;display:block;background:rgba(2,6,23,.45);opacity:0;pointer-events:none;transition:opacity .2s}
 .uc-menu-open .uc-scrim{opacity:1;pointer-events:auto}
 .uc-side-close{display:grid}
 .uc-burger{display:grid}
 .uc-top{gap:10px;height:60px;padding:0 12px}
 .uc-eyebrow{display:none}
 .uc-page-title{font-size:18px}
 .uc-search{display:none}
 .uc-top-acts{margin-left:auto}
 .uc-help{display:none}
 .uc-main{padding-bottom:calc(64px + env(safe-area-inset-bottom))}
 .uc-content{padding:14px 12px 20px}
 .uc-on-inbox .uc-content{padding:10px}
 .uc-app .wj-chat{display:block;height:100%}
 .uc-app .wj-chat-list,.uc-app .wj-chat-main{height:100%}
 .uc-app .wj-chat-search{display:flex}
 .uc-app .wj-chat-side{display:none}
 .uc-app .wj-chat-msgs{padding:16px 12px 8px}
}
.uc-dock{display:none}
@media (max-width:900px){
 .uc-dock{position:fixed;left:0;right:0;bottom:0;z-index:50;display:grid;grid-template-columns:repeat(5,1fr);padding:6px 6px calc(6px + env(safe-area-inset-bottom));border-top:1px solid var(--border);background:color-mix(in srgb,var(--surface) 88%,transparent);backdrop-filter:saturate(1.6) blur(18px);-webkit-backdrop-filter:saturate(1.6) blur(18px)}
 .uc-dock button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-width:0;height:52px;border:0;border-radius:12px;background:none;color:var(--muted);font:inherit;font-size:11px;font-weight:600;cursor:pointer}
 .uc-dock button.active{color:var(--accent)}
 .uc-dock-ico{position:relative;display:grid;place-items:center;height:24px}
 .uc-dock .uc-nav-count{position:absolute;top:-5px;left:calc(100% - 8px);min-width:17px;height:17px;padding:0 4px;font-size:11px;line-height:17px;box-shadow:0 0 0 2px var(--surface)}
}
@media (prefers-reduced-motion:reduce){.uc-side,.uc-scrim{transition:none}}
.wj-chat-side-title{margin:2px 2px 12px;font-size:16px;font-weight:750;letter-spacing:-.01em}
/* Menú por departamentos (Ventas, Operaciones, RRHH, Contabilidad): separadores más juntos para que quepan sin desplazar. */
.wj-app-rail .wj-rail-sep{margin-top:9px;margin-bottom:3px}
/* Esqueleto de la bandeja del chat (skeletonChat). */
.wj-chat-skel .wj-skeleton{display:block}
.wj-chat-skel-row{display:flex;align-items:center;gap:10px;padding:12px 14px}
.wj-chat-skel-row .ava{flex:none;width:40px;height:40px;border-radius:50%}
.wj-chat-skel-row span{display:grid;flex:1;gap:7px}
.wj-chat-skel-row .l1{width:55%;height:10px}
.wj-chat-skel-row .l2{width:85%;height:9px}
.wj-chat-skel-thread{display:flex;flex-direction:column;gap:12px;padding:22px}
.wj-chat-skel-thread .b{width:52%;height:38px;border-radius:16px}
.wj-chat-skel-thread .b.out{align-self:flex-end;width:40%}
.wj-chat-skel-thread .b.short{width:30%}
.wj-chat-skel .wj-chat-side .card{height:220px;border-radius:16px}
@media (max-width:760px){.wj-chat-skel .wj-chat-main{display:none}}
/* Fichaje · registro de jornada (estilo Sesame): píldora de estado arriba, reloj con anillo y
   contador, línea del día (trabajo / pausa), semana, equipo en directo y registros.
   Colores: verde = trabajando (--ok), ámbar = pausa (--warn), gris = fuera. Sin hexadecimales. */
.wj-light.danger{background:var(--danger)}
.wj-fj-pill{position:relative;display:inline-flex;align-items:center;gap:8px;height:38px;padding:0 14px 0 12px;border-radius:999px;border:1px solid var(--hairline,var(--border));background:var(--surface-raised,var(--surface));color:var(--text);font:inherit;font-size:13px;font-weight:750;cursor:pointer;white-space:nowrap;font-variant-numeric:tabular-nums;transition:background .2s,border-color .2s,box-shadow .2s}
.wj-fj-pill:hover{border-color:var(--border-strong)}
.wj-fj-pill .wj-light{box-shadow:none}
.wj-fj-pill.is-trabajando{background:color-mix(in srgb,var(--ok) 11%,var(--surface));border-color:color-mix(in srgb,var(--ok) 35%,transparent);color:var(--ok)}
.wj-fj-pill.is-pausa{background:color-mix(in srgb,var(--warn) 12%,var(--surface));border-color:color-mix(in srgb,var(--warn) 35%,transparent);color:var(--warn)}
.wj-fj-pill.is-fuera .wj-fj-pill-txt{color:var(--muted)}
.wj-fj-pill-dot{position:absolute;top:-2px;right:-2px;width:10px;height:10px;border-radius:50%;background:var(--danger);box-shadow:0 0 0 2px var(--surface)}
@media (max-width:699px){.wj-fj-pill{height:36px;padding:0 10px;gap:6px;font-size:13px}}
/* En el móvil la píldora es un círculo con la luz (el tiempo se ve al pulsarla): así caben la caja, el chat, los avisos y el perfil. */
@media (max-width:430px){.wj-fj-pill{width:36px;min-width:36px;padding:0;justify-content:center}.wj-fj-pill .wj-fj-pill-txt{display:none}.wj-fj-pill .wj-light{width:12px;height:12px}}

.wj-fj-clock{display:grid;gap:18px;padding:22px;border-radius:var(--radius-panel,18px);border:1px solid var(--hairline,var(--border));background:var(--surface-raised,var(--surface));box-shadow:var(--shadow-soft,var(--shadow));--fj:rgb(148,163,184)}
.wj-fj-clock.is-trabajando{--fj:var(--ok)}
.wj-fj-clock.is-pausa{--fj:var(--warn)}
.wj-fj-clock.is-loading{min-height:240px;opacity:.6}
.wj-fj-top{display:flex;align-items:center;gap:28px}
.wj-fj-dial{position:relative;flex:none;width:188px;height:188px}
.wj-fj-dial svg{width:100%;height:100%;transform:rotate(-90deg)}
.wj-fj-dial circle{fill:none;stroke-width:9}
.wj-fj-dial .track{stroke:var(--surface3,var(--border))}
.wj-fj-dial .bar{stroke:var(--fj);stroke-linecap:round;transition:stroke-dashoffset .9s ease,stroke .3s}
.wj-fj-dial-in{position:absolute;inset:0;display:grid;place-content:center;justify-items:center;gap:2px;text-align:center}
.wj-fj-dial-in small{color:var(--muted);font-size:12px;font-weight:650;text-transform:uppercase;letter-spacing:.08em}
.wj-fj-timer{font-size:34px;font-weight:800;letter-spacing:-.03em;font-variant-numeric:tabular-nums;color:var(--text);line-height:1.1}
.wj-fj-state{display:inline-flex;align-items:center;gap:7px;margin-top:4px;padding:3px 10px;border-radius:999px;background:color-mix(in srgb,var(--fj) 13%,transparent);color:var(--fj);font-size:12px;font-weight:750}
.wj-fj-clock.is-fuera .wj-fj-state{color:var(--muted)}
.wj-fj-side{min-width:0;flex:1;display:grid;gap:10px;align-content:center}
.wj-fj-side h3{margin:0;font-size:22px;letter-spacing:-.02em}
.wj-fj-side>p{margin:0;color:var(--muted);font-size:14px}
.wj-fj-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:4px}
.wj-fj-btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-width:150px;height:52px;padding:0 24px;border-radius:999px;border:0;font:inherit;font-size:16px;font-weight:800;cursor:pointer;color:rgb(255,255,255);box-shadow:0 8px 22px -10px currentColor;transition:transform .15s ease,filter .15s ease}
.wj-fj-btn:hover{filter:brightness(1.06);transform:translateY(-1px)}
.wj-fj-btn:active,.wj-fj-btn.is-pressed{transform:scale(.97)}
.wj-fj-btn.go{background:var(--ok)}
.wj-fj-btn.pause{background:var(--warn)}
.wj-fj-btn.stop{background:var(--surface);color:var(--danger);border:1.5px solid color-mix(in srgb,var(--danger) 45%,transparent);box-shadow:none}
.wj-fj-btn .wj-icon{flex:none}
.wj-fj-btn.go .wj-icon path,.wj-fj-btn.stop .wj-icon rect{fill:currentColor}
.wj-fj-btn.is-busy{opacity:.75}
.wj-fj-center{display:inline-flex;align-items:center;gap:6px;max-width:280px;color:var(--muted)}
.wj-fj-center .wj-select{min-height:36px}
.wj-fj-meta{margin:0;display:flex;align-items:center;gap:5px;color:var(--text-3,var(--muted));font-size:13px}
.wj-fj-line{display:grid;gap:6px}
.wj-fj-line-track{position:relative;height:16px;border-radius:999px;background:var(--surface2);overflow:hidden}
.wj-fj-line-track i{position:absolute;top:0;bottom:0;border-radius:999px}
.wj-fj-line-track i.work{background:var(--ok)}
.wj-fj-line-track i.pause{background:repeating-linear-gradient(135deg,var(--warn) 0 5px,color-mix(in srgb,var(--warn) 55%,var(--surface)) 5px 10px)}
.wj-fj-now{position:absolute;top:-2px;bottom:-2px;width:2px;margin-left:-1px;border-radius:2px;background:var(--text)}
.wj-fj-line-ticks{position:relative;height:14px;color:var(--text-3,var(--muted));font-size:11px;font-variant-numeric:tabular-nums}
.wj-fj-line-ticks span{position:absolute;transform:translateX(-50%)}
.wj-fj-line-ticks span:first-child{transform:none}
.wj-fj-legend{display:flex;gap:14px;color:var(--muted);font-size:12px}
.wj-fj-legend span{display:inline-flex;align-items:center;gap:5px}
.wj-fj-legend i{width:12px;height:8px;border-radius:4px;background:var(--ok)}
.wj-fj-legend i.pause{background:var(--warn)}
.wj-fj-week{display:grid;gap:8px;padding-top:14px;border-top:1px solid var(--hairline,var(--border))}
.wj-fj-week-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;font-size:13px;color:var(--muted)}
.wj-fj-week-head b{color:var(--text);font-size:15px;font-variant-numeric:tabular-nums}
.wj-fj-week-head small{color:var(--muted);font-weight:600}
.wj-fj-progress{height:6px;border-radius:999px;background:var(--surface2);overflow:hidden}
.wj-fj-progress i{display:block;height:100%;border-radius:inherit;background:var(--accent);transition:width .6s ease}
.wj-fj-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;margin-top:4px}
.wj-fj-days>span{display:grid;justify-items:center;gap:4px;font-size:11px;color:var(--muted)}
.wj-fj-days em{position:relative;display:block;width:100%;max-width:34px;height:58px;border-radius:8px;background:var(--surface2);overflow:hidden}
.wj-fj-days em i{position:absolute;left:0;right:0;bottom:0;border-radius:8px;background:color-mix(in srgb,var(--ok) 70%,var(--surface))}
.wj-fj-days .is-today em i{background:var(--ok)}
.wj-fj-days .is-today small{color:var(--text);font-weight:800}
.wj-fj-days .is-future{opacity:.55}
.wj-fj-days b{font-size:11px;font-variant-numeric:tabular-nums;color:var(--text)}
.wj-fj-warn{display:flex;align-items:flex-start;gap:8px;padding:10px 12px;border-radius:12px;background:var(--warn-weak);color:var(--warn);font-size:13px;line-height:1.45}
.wj-fj-warn .wj-icon{flex:none;margin-top:1px}
.wj-fj-clock.is-compact{padding:4px 0 0;border:0;background:none;box-shadow:none}
.wj-fj-clock.is-compact .wj-fj-dial{width:160px;height:160px}
.wj-fj-clock.is-compact .wj-fj-timer{font-size:28px}
.wj-fj-sheet-foot{display:flex;justify-content:flex-end;margin-top:14px}
.wj-fj-mine{margin-bottom:16px}
.wj-fj-in-staff{margin-bottom:18px}
.wj-fj-recent{padding:16px 18px}
.wj-fj-recent-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}
.wj-fj-recent-head h3{margin:0;font-size:15px}
.wj-fj-daylist{display:grid}
.wj-fj-dayrow{display:grid;grid-template-columns:minmax(120px,1.2fr) 1fr 1.2fr auto auto auto 16px;align-items:center;gap:12px;padding:11px 6px;border:0;border-top:1px solid var(--hairline,var(--border));background:none;color:var(--text);font:inherit;font-size:13px;text-align:left;cursor:pointer;border-radius:8px}
.wj-fj-dayrow:first-child{border-top:0}
.wj-fj-dayrow:hover{background:var(--surface2)}
.wj-fj-dayname b{display:block;text-transform:capitalize}
.wj-fj-dayname small,.wj-fj-muted{color:var(--muted)}
.wj-fj-total{font-variant-numeric:tabular-nums;text-align:right}
.wj-fj-tag{display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:999px;background:var(--surface2);color:var(--muted);font-size:11px;font-weight:750;white-space:nowrap}
.wj-fj-tag.ok{background:var(--success-weak);color:var(--ok)}
.wj-fj-tag.warn{background:var(--danger-weak);color:var(--danger)}

/* Equipo ahora */
.wj-fj-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:14px}
.wj-fj-kpi{display:grid;grid-template-columns:auto 1fr;align-items:center;column-gap:10px;padding:14px 16px;border-radius:16px;border:1px solid var(--hairline,var(--border));background:var(--surface-raised,var(--surface));color:var(--text);font:inherit;text-align:left;cursor:pointer;transition:border-color .2s,box-shadow .2s}
.wj-fj-kpi b{font-size:28px;font-weight:800;line-height:1.1;font-variant-numeric:tabular-nums}
.wj-fj-kpi small{grid-column:2;color:var(--muted);font-size:13px;font-weight:650}
.wj-fj-kpi .wj-light{grid-row:1/3;width:12px;height:12px}
.wj-fj-kpi.on{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent)}
.wj-fj-kpi.k-trabajando b{color:var(--ok)}.wj-fj-kpi.k-pausa b{color:var(--warn)}.wj-fj-kpi.k-sinSalida b{color:var(--danger)}
.wj-fj-toolbar .wj-select{max-width:240px}
.wj-fj-updated{display:inline-flex;align-items:center;gap:5px;margin-left:auto;color:var(--text-3,var(--muted));font-size:12px}
.wj-fj-team{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}
.wj-fj-person{position:relative;display:grid;grid-template-columns:auto 1fr;gap:10px 12px;padding:16px;border-radius:16px;border:1px solid var(--hairline,var(--border));background:var(--surface-raised,var(--surface));color:var(--text);font:inherit;text-align:left;cursor:pointer;animation:wj-fj-in .35s ease both;animation-delay:calc(var(--i,0)*25ms);transition:transform .15s ease,box-shadow .2s,border-color .2s}
.wj-fj-person:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg);border-color:var(--border-strong)}
.wj-fj-person.is-trabajando{border-left:3px solid var(--ok)}
.wj-fj-person.is-pausa{border-left:3px solid var(--warn)}
.wj-fj-person.is-fuera{opacity:.86}
@keyframes wj-fj-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.wj-fj-ava{position:relative;width:44px;height:44px}
.wj-fj-ava .wj-avatar,.wj-fj-ava .wj-avatar-media{width:44px;height:44px;font-size:15px}
.wj-fj-ava .wj-light{position:absolute;right:-1px;bottom:-1px;width:13px;height:13px;box-shadow:0 0 0 2.5px var(--surface)}
.wj-fj-who{min-width:0;display:grid;align-content:center}
.wj-fj-who b,.wj-fj-who small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wj-fj-who small{color:var(--muted);font-size:12px}
.wj-fj-chip{grid-column:1/-1;justify-self:start;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:3px 10px;border-radius:999px;background:var(--surface2);color:var(--muted);font-size:12px;font-weight:700}
.wj-fj-chip.is-trabajando{background:var(--success-weak);color:var(--ok)}
.wj-fj-chip.is-pausa{background:var(--warn-weak);color:var(--warn)}
.wj-fj-today{grid-column:1/-1;display:flex;align-items:baseline;gap:8px}
.wj-fj-today-n{font-size:24px;font-weight:800;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.wj-fj-today small,.wj-fj-wk small{color:var(--muted);font-size:12px}
.wj-fj-wk{grid-column:1/-1;display:grid;gap:5px}
.wj-fj-person>.wj-fj-tag{position:absolute;top:14px;right:14px}

/* Registros */
.wj-fj-filters{align-items:flex-end}
.wj-fj-filters .wj-select{max-width:240px}
.wj-fj-date{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:13px}
.wj-fj-date .wj-input{width:auto;min-width:150px}
.wj-fj-sum{display:flex;flex-wrap:wrap;gap:6px 18px;margin:4px 0 12px;color:var(--muted);font-size:13px}
.wj-fj-sum b{color:var(--text);font-variant-numeric:tabular-nums}
.wj-fj-sum .warn b{color:var(--danger)}
.wj-fj-table{border:1px solid var(--hairline,var(--border));border-radius:var(--radius-panel,16px);background:var(--surface-raised,var(--surface));overflow:hidden}
.wj-fj-tr{display:grid;grid-template-columns:110px minmax(90px,1fr) 80px 80px 110px 100px minmax(120px,auto);align-items:center;gap:10px;width:100%;padding:11px 16px;border:0;border-top:1px solid var(--hairline,var(--border));background:none;color:var(--text);font:inherit;font-size:13px;text-align:left;cursor:pointer}
.wj-fj-table.has-person .wj-fj-tr{grid-template-columns:110px minmax(150px,1.3fr) minmax(90px,1fr) 80px 80px 110px 100px minmax(120px,auto)}
.wj-fj-tr.head{border-top:0;background:var(--surface2);color:var(--muted);font-size:12px;font-weight:750;text-transform:uppercase;letter-spacing:.04em;cursor:default}
.wj-fj-tr:not(.head):hover{background:var(--surface2)}
.wj-fj-c-day b{text-transform:capitalize}
.wj-fj-c-who{display:flex;align-items:center;gap:8px;min-width:0}
.wj-fj-c-who b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wj-fj-c-who small{display:block;color:var(--muted);font-size:12px}
.wj-fj-c-t{font-variant-numeric:tabular-nums}
.wj-fj-c-t small{display:none}
.wj-fj-c-tags{display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end}

/* Historial y correcciones */
.wj-fj-hist{display:grid;gap:16px}
.wj-fj-events{list-style:none;margin:0;padding:0;display:grid}
.wj-fj-events li{position:relative;display:grid;grid-template-columns:18px 1fr auto;gap:10px;padding:10px 0;border-top:1px solid var(--hairline,var(--border))}
.wj-fj-events li:first-child{border-top:0}
.wj-fj-ev-dot{width:12px;height:12px;margin-top:4px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 3px color-mix(in srgb,var(--ok) 18%,transparent)}
.wj-fj-events li.k-pause .wj-fj-ev-dot{background:var(--warn);box-shadow:0 0 0 3px color-mix(in srgb,var(--warn) 18%,transparent)}
.wj-fj-events li.k-out .wj-fj-ev-dot{background:var(--danger);box-shadow:0 0 0 3px color-mix(in srgb,var(--danger) 18%,transparent)}
.wj-fj-ev-main{display:grid;gap:2px;min-width:0}
.wj-fj-ev-main b{font-variant-numeric:tabular-nums;font-size:15px}
.wj-fj-ev-main small{color:var(--muted);font-size:12px}
.wj-fj-events li.is-void .wj-fj-ev-main>div{text-decoration:line-through;color:var(--muted)}
.wj-fj-events li.is-void .wj-fj-ev-dot{background:var(--text-3,var(--muted));box-shadow:none}
.wj-fj-void{color:var(--danger)!important}
.wj-fj-ev-acts{display:flex;gap:6px;align-items:flex-start}
.wj-fj-fix{display:grid;gap:12px;padding:16px}
.wj-fj-fix h4,.wj-fj-changes h4{margin:0;font-size:14px}
.wj-fj-changes ul{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:8px}
.wj-fj-changes li{padding:10px 12px;border-radius:12px;background:var(--surface2);font-size:13px;line-height:1.45}
.wj-fj-changes li small{display:block;color:var(--muted)}

/* Horas previstas */
.wj-fj-hours{display:grid;gap:16px;padding:18px}
.wj-fj-default{max-width:280px}
.wj-fj-hours-list{display:grid}
.wj-fj-hours-row{display:grid;grid-template-columns:minmax(0,1fr) auto 96px 14px;align-items:center;gap:12px;padding:10px 0;border-top:1px solid var(--hairline,var(--border))}
.wj-fj-hours-row:first-child{border-top:0}
.wj-fj-hours-row .wj-input{text-align:right}

/* Formación y protocolo (lo que cada persona lee y firma) */
.wj-proto-page{display:grid;gap:18px}
.wj-proto-hero{display:flex;align-items:center;gap:20px;padding:18px;border-radius:20px;background:var(--surface2)}
.wj-proto-ring{position:relative;width:104px;height:104px;flex:none}
.wj-proto-ring svg{width:100%;height:100%;transform:rotate(-90deg)}
.wj-proto-ring circle{fill:none;stroke:var(--hairline,var(--border));stroke-width:10}
.wj-proto-ring .wj-proto-ring-fill{stroke:var(--ok);stroke-linecap:round;transition:stroke-dashoffset .8s cubic-bezier(.3,.9,.25,1)}
.wj-proto-hero.has-pending .wj-proto-ring-fill{stroke:var(--warn)}
.wj-proto-ring>div{position:absolute;inset:0;display:grid;place-content:center;text-align:center}
.wj-proto-ring b{font-size:22px;font-variant-numeric:tabular-nums}
.wj-proto-ring span{font-size:11px;color:var(--muted)}
.wj-proto-hero-copy h2{margin:0 0 6px;font-size:18px}
.wj-proto-hero-copy .wj-help{margin:0}
.wj-proto-group{display:grid;gap:8px}
.wj-proto-group h3{margin:0;font-size:13px;color:var(--muted);display:flex;align-items:center;gap:6px}
.wj-proto-group h3 i{font-style:normal;padding:1px 8px;border-radius:99px;background:var(--surface2);font-size:12px}
.wj-proto-row{display:flex;align-items:center;gap:12px;width:100%;padding:12px 14px;border:1px solid var(--hairline,var(--border));border-radius:16px;background:var(--surface);color:inherit;text-align:left;cursor:pointer;font:inherit}
.wj-proto-row:hover{background:var(--surface2)}
.wj-proto-row-ic{display:grid;place-items:center;width:34px;height:34px;border-radius:12px;background:color-mix(in srgb,var(--warn) 16%,transparent);color:var(--warn);flex:none}
.wj-proto-row.is-done .wj-proto-row-ic{background:color-mix(in srgb,var(--ok) 16%,transparent);color:var(--ok)}
.wj-proto-row-copy{display:grid;gap:2px;flex:1;min-width:0}
.wj-proto-row-copy small{color:var(--muted);font-size:12px}
/* Empresas empleadoras */
.wj-emp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px;margin-bottom:16px}
.wj-emp-card{display:grid;gap:12px;padding:18px;align-content:start}
.wj-emp-card header{display:flex;align-items:center;gap:12px}
.wj-emp-card header>span:nth-child(2){display:grid;gap:2px;flex:1;min-width:0}
.wj-emp-card h3{margin:0;font-size:16px}
.wj-emp-card header small{color:var(--muted);font-size:12px}
.wj-emp-ic{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:var(--surface2);flex:none}
.wj-emp-count{display:grid;justify-items:end;font-size:22px;font-variant-numeric:tabular-nums;line-height:1}
.wj-emp-count small{font-size:11px;color:var(--muted);font-weight:500}
.wj-emp-centers{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.wj-emp-chip{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:99px;border:1px solid var(--hairline,var(--border));font-size:13px}
.wj-emp-centers small{flex-basis:100%}
.wj-emp-people{display:flex;flex-wrap:wrap;gap:6px}
.wj-emp-person{padding:4px 10px;border-radius:99px;background:var(--surface2);font-size:13px}
.wj-emp-person i{color:var(--warn);font-style:normal}
.wj-emp-card.is-warn .wj-emp-ic{background:color-mix(in srgb,var(--warn) 16%,transparent);color:var(--warn)}
.wj-emp-empty{padding:18px}
.wj-staff-employer{display:block;margin-top:2px;color:var(--muted);font-size:12px}
.wj-staff-employer i{font-style:normal}
@media (max-width:760px){.wj-proto-hero{flex-direction:column;text-align:center}.wj-emp-grid{grid-template-columns:1fr}}

/* Presencia en el centro: pantalla, cartel QR y WiFi; acceso de la Inspección */
.wj-fj-kcenter{display:flex;align-items:center;gap:8px;max-width:320px;margin:0 0 16px}
.wj-fj-kcenter .wj-select{flex:1}
.wj-fj-kok{display:inline-flex;align-items:center;gap:6px}
.wj-fj-kgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.wj-fj-kcard{display:grid;gap:10px;padding:18px;align-content:start}
.wj-fj-kcard h3{display:flex;align-items:center;gap:8px;margin:0;font-size:16px}
.wj-fj-kcard .wj-help{margin:0}
.wj-fj-kcard .wj-switch-row{padding:10px 0;border-top:1px solid var(--hairline,var(--border))}
.wj-fj-kcard .wj-switch-row:first-of-type{border-top:0}
.wj-fj-kwall{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.wj-fj-kwall-qr{padding:8px;border-radius:12px;background:rgb(255,255,255);line-height:0}
.wj-fj-kwall-qr svg{width:110px;height:110px}
.wj-fj-knets{display:grid;gap:6px}
.wj-fj-knet-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 12px;border-radius:12px;background:var(--surface2)}
.wj-fj-knet-row>span{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0}
.wj-fj-knet-row small{color:var(--muted);font-size:12px}
.wj-fj-kask{display:grid;gap:14px}
.wj-fj-kiosk{position:fixed;inset:0;z-index:2000;display:grid;place-items:center;background:var(--bg);color:var(--text);padding:24px}
.wj-fj-kiosk-in{display:grid;justify-items:center;gap:12px;text-align:center;max-width:560px}
.wj-fj-kiosk-in h1{margin:0;font-size:clamp(28px,5vw,44px)}
.wj-fj-kiosk-in p{margin:0;color:var(--muted);font-size:18px;line-height:1.45}
.wj-fj-kiosk-qr{padding:18px;border-radius:24px;background:rgb(255,255,255);line-height:0;box-shadow:0 20px 60px rgba(0,0,0,.12)}
.wj-fj-kiosk-qr svg{width:min(340px,70vw);height:min(340px,70vw)}
.wj-fj-kiosk-clock{font-size:clamp(30px,6vw,52px);font-variant-numeric:tabular-nums;letter-spacing:.02em}
.wj-fj-kiosk-x{position:absolute;top:16px;right:16px}
.wj-fj-links{display:grid}
.wj-fj-link-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:12px 16px;border-top:1px solid var(--hairline,var(--border))}
.wj-fj-link-row:first-child{border-top:0}
.wj-fj-link-row>span{display:grid;gap:2px;min-width:0}
.wj-fj-link-row small{color:var(--muted);font-size:12px}
@media (max-width:760px){.wj-fj-kgrid{grid-template-columns:1fr}.wj-fj-link-row{grid-template-columns:minmax(0,1fr) auto}.wj-fj-link-row>.wj-btn{grid-column:1/-1;justify-self:start}}

@media (max-width:900px){
 .wj-fj-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
 .wj-fj-tr,.wj-fj-table.has-person .wj-fj-tr{grid-template-columns:1fr auto;gap:4px 10px}
 .wj-fj-tr.head{display:none}
 .wj-fj-tr>*{grid-column:1}
 .wj-fj-tr .wj-fj-total{grid-column:2;grid-row:1;font-size:15px}
 .wj-fj-tr .wj-fj-c-tags{grid-column:2;grid-row:2;justify-content:flex-end}
 .wj-fj-tr .wj-fj-c-t{display:inline-flex;gap:5px}
 .wj-fj-tr .wj-fj-c-t small{display:inline;color:var(--muted)}
 .wj-fj-dayrow{grid-template-columns:1fr auto 16px;gap:4px 10px}
 .wj-fj-dayrow>span:not(.wj-fj-dayname):not(.wj-fj-tag){grid-column:1;font-size:13px}
 .wj-fj-dayrow .wj-fj-total{grid-column:2;grid-row:1}
 .wj-fj-dayrow .wj-fj-tag{grid-column:2;justify-self:end}
 .wj-fj-dayrow>.wj-icon{grid-column:3;grid-row:1}
}
@media (max-width:640px){
 .wj-fj-clock{padding:16px}
 .wj-fj-top{flex-direction:column;align-items:stretch;gap:14px;text-align:center}
 .wj-fj-dial{align-self:center;width:176px;height:176px}
 .wj-fj-side{justify-items:center}
 .wj-fj-actions{justify-content:center;width:100%}
 .wj-fj-btn{flex:1 1 0;min-width:0;padding:0 14px}
 .wj-fj-center{max-width:100%}
 .wj-fj-kpi{padding:12px}
 .wj-fj-kpi b{font-size:22px}
 .wj-fj-updated{margin-left:0}
 .wj-fj-date{flex:1 1 140px}
 .wj-fj-date .wj-input{min-width:0;width:100%}
 .wj-fj-filters .wj-select{max-width:none;flex:1 1 100%}
 .wj-fj-events li{grid-template-columns:18px 1fr}
 .wj-fj-ev-acts{grid-column:2}
 .wj-fj-hours-row{grid-template-columns:minmax(0,1fr) 84px 14px}
 .wj-fj-hours-row>small{grid-column:1;grid-row:2}
}
@media (prefers-reduced-motion:reduce){.wj-fj-person{animation:none}.wj-fj-dial .bar{transition:none}}

/* Anuncio del login: Fichaje. */
.wj-lsf-card{position:absolute;left:22px;top:22px;width:250px;padding:14px;border-radius:16px;background:rgb(255,255,255);box-shadow:0 22px 50px rgba(2,6,23,.45);display:grid;gap:9px;justify-items:center;text-align:center}
.wj-lsf-dial{position:relative;width:132px;height:132px;display:grid;place-items:center}
.wj-lsf-dial>i{position:absolute;inset:0;border-radius:50%;background:conic-gradient(rgb(22,163,74) 0 78%,rgb(226,232,240) 78% 100%);-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 9px),rgb(0,0,0) calc(100% - 8px));mask:radial-gradient(farthest-side,transparent calc(100% - 9px),rgb(0,0,0) calc(100% - 8px))}
.wj-lsf-dial>div{display:grid;justify-items:center;gap:2px}
.wj-lsf-dial small{color:rgb(100,116,139);font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.wj-lsf-dial strong{font-size:22px;font-weight:800;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.wj-lsf-dial span{display:inline-flex;align-items:center;gap:4px;padding:2px 7px;border-radius:999px;background:rgb(220,252,231);color:rgb(21,128,61);font-size:11px;font-weight:800}
.wj-lsf-dial span b{width:6px;height:6px;border-radius:50%;background:rgb(22,163,74)}
.wj-lsf-card p{margin:0;color:rgb(100,116,139);font-size:11px}
.wj-lsf-btns{display:flex;gap:6px;width:100%}
.wj-lsf-btns em{flex:1;text-align:center;border-radius:999px;padding:7px 0}
.wj-lsf-btns em.pause{background:rgb(217,119,6)}
.wj-lsf-btns em.stop{background:rgb(255,255,255);color:rgb(220,38,38);border:1.5px solid rgb(254,202,202)}
.wj-lsf-line{position:relative;width:100%;height:9px;border-radius:999px;background:rgb(241,245,249);overflow:hidden}
.wj-lsf-line i{position:absolute;top:0;bottom:0;border-radius:999px}
.wj-lsf-line i.w{background:rgb(22,163,74)}
.wj-lsf-line i.w.one{left:12%;width:30%}
.wj-lsf-line i.p{left:42%;width:7%;background:rgb(245,158,11)}
.wj-lsf-line i.w.two{left:49%;width:26%}
.wj-lsf-team{position:absolute;right:22px;top:58px;width:200px;padding:12px;border-radius:16px;background:rgb(255,255,255);box-shadow:0 22px 50px rgba(2,6,23,.45);display:grid;gap:9px}
.wj-lsf-team strong{font-size:12px}
.wj-lsf-team>div{display:flex;align-items:center;gap:8px;font-size:11px;font-weight:700}
.wj-lsf-team small{display:block;color:rgb(100,116,139);font-size:11px;font-weight:600}
.wj-lsf-av{position:relative;flex:none;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;color:rgb(255,255,255);font-size:11px;font-weight:800}
.wj-lsf-av.a{background:rgb(37,99,235)}.wj-lsf-av.b{background:rgb(147,51,234)}.wj-lsf-av.c{background:rgb(100,116,139)}
.wj-lsf-av b{position:absolute;right:-1px;bottom:-1px;width:9px;height:9px;border-radius:50%;background:rgb(148,163,184);box-shadow:0 0 0 2px rgb(255,255,255)}
.wj-lsf-av b.on{background:rgb(22,163,74)}.wj-lsf-av b.away{background:rgb(245,158,11)}
.wj-lsf-float{left:auto;right:30px;bottom:22px}
@media(max-width:1180px){.wj-lsf-team{display:none}.wj-lsf-card{left:50%;margin-left:-125px}}
@media(max-height:760px){.wj-lsf-card{top:10px;transform:scale(.86);transform-origin:top center}.wj-lsf-team{top:30px}}
/* ===== Pedidos 1.10.7 (traído de worldjump-platform): Hacer pedidos como lista + página por pedido, Gestión con
   responsable y envío por proveedor, recepción por proveedor (albarán, factura, firma), historial por proveedor,
   pagos a proveedores, catálogo con filtros y precios, importación de productos, proveedores por centro, portal
   del proveedor y su bandeja, selector de personas y visor de PDF. Colores en rgb()/var(). ===== */
@keyframes wj-viewer-in{from{opacity:0;transform:scale(.985)}to{opacity:1;transform:none}}
@keyframes wj-portal-in{from{opacity:.35;transform:translateY(3px)}to{opacity:1;transform:none}}
.wj-viewer-frame{flex:1;width:100%;min-height:60vh;border:1px solid var(--hairline,var(--border));border-radius:12px;background:var(--surface2)}
.wj-viewer-img{flex:1;display:grid;place-items:center;overflow:auto;border:1px solid var(--hairline,var(--border));border-radius:12px;background:var(--surface2)}
.wj-viewer-img img{max-width:100%;max-height:75vh;object-fit:contain}
.wj-product-media-drop{position:relative;cursor:pointer;border:2px dashed transparent;transition:border-color .15s,background .15s}
.wj-product-media-drop:hover,.wj-product-media-drop:focus-visible{border-color:var(--accent);outline:none}
.wj-product-media-drop.dragging{border-color:var(--accent);background:rgba(26,109,255,.10)}
.wj-product-media-hint{position:absolute;left:50%;bottom:10px;transform:translateX(-50%);display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;background:rgba(15,23,42,.72);color:rgb(255,255,255);font-size:12px;white-space:nowrap;max-width:calc(100% - 24px);overflow:hidden;text-overflow:ellipsis;opacity:0;transition:opacity .15s;pointer-events:none}
.wj-product-media-drop:hover .wj-product-media-hint,.wj-product-media-drop.dragging .wj-product-media-hint,.wj-product-media-drop:not(:has(img)) .wj-product-media-hint,.wj-product-media-drop.has-pending .wj-product-media-hint{opacity:1}
.wj-product-media-drop.has-pending::after{content:'';position:absolute;inset:0;border:2px solid var(--accent);border-radius:inherit;pointer-events:none}
html[data-layout="mobile"] .wj-product-media-hint{opacity:1}
body.wj-viewer-open{overflow:hidden}
#viewer-root .wj-viewer-layer{position:fixed;inset:0;z-index:120;display:flex;flex-direction:column;background:rgb(17,24,39);color:rgb(255,255,255);animation:wj-viewer-in .18s ease}
.wj-viewer-head{display:flex;align-items:center;gap:10px;padding:calc(8px + env(safe-area-inset-top,0px)) 12px 8px;background:rgba(255,255,255,.06);border-bottom:1px solid rgba(255,255,255,.1)}
.wj-viewer-head .wj-btn.icon{background:rgba(255,255,255,.1);border-color:transparent;color:rgb(255,255,255);width:40px;height:40px;min-width:40px}
.wj-viewer-head .wj-btn.icon:hover{background:rgba(255,255,255,.2)}
.wj-viewer-close{border-radius:12px}
.wj-viewer-title{flex:1;min-width:0;display:grid;line-height:1.2}
.wj-viewer-title strong{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wj-viewer-title small{color:rgba(255,255,255,.65);font-size:12px}
.wj-viewer-tools{display:flex;gap:6px}
.wj-viewer-body{flex:1;min-height:0;overflow:auto;-webkit-overflow-scrolling:touch}
.wj-viewer-body .wj-viewer-img{height:100%;display:grid;place-items:center;padding:12px;border:0;background:transparent}
.wj-viewer-body .wj-viewer-img img{max-width:100%;max-height:100%;object-fit:contain;border-radius:8px}
.wj-viewer-body .wj-viewer-frame{width:100%;height:100%;min-height:100%;border:0;border-radius:0;background:rgb(255,255,255)}
.wj-pdf-pages{display:grid;gap:14px;padding:12px;justify-items:center;min-height:100%}
.wj-pdf-page{margin:0;display:grid;gap:4px;justify-items:center}
.wj-pdf-page canvas{display:block;background:rgb(255,255,255);border-radius:6px;box-shadow:0 8px 30px rgba(0,0,0,.35);max-width:100%}
.wj-pdf-page figcaption{font-size:11px;color:rgba(255,255,255,.55)}
.wj-viewer-loading{display:grid;justify-items:center;gap:10px;padding:60px 0;color:rgba(255,255,255,.7)}
.wj-env-timeline{list-style:none;margin:0;padding:0 0 0 6px;display:grid;gap:0;border-left:2px solid var(--hairline,var(--border))}
.wj-env-timeline li{position:relative;padding:0 0 16px 18px}
.wj-env-timeline li:last-child{padding-bottom:0}
.wj-env-timeline li small{display:block;color:var(--muted);font-size:12px}
.wj-env-timeline li p{margin:4px 0 0;font-size:13px}
.wj-env-tl-dot{position:absolute;left:-8px;top:4px;width:12px;height:12px;border-radius:50%;background:var(--muted);border:2px solid var(--surface)}
.wj-env-timeline li.is-store .wj-env-tl-dot{background:rgb(245,158,11)}
.wj-env-timeline li.is-transit .wj-env-tl-dot{background:rgb(37,99,235)}
.wj-env-timeline li.is-done .wj-env-tl-dot{background:rgb(22,163,74)}
.wj-env-timeline li.is-incident .wj-env-tl-dot{background:rgb(220,38,38)}
.wj-sup-contacts{display:flex;gap:6px;justify-content:center;margin:4px 0}
.wj-sup-contact{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--hairline,var(--border));background:var(--surface);color:var(--accent);text-decoration:none}
.wj-sup-contact:hover{background:var(--accent);color:rgb(255,255,255)}
.wj-sup-contact.wa{color:rgb(22,163,74)}
.wj-sup-contact.wa:hover{background:rgb(22,163,74);color:rgb(255,255,255)}
.wj-sup-block{display:grid;gap:6px;margin:12px 0}
.wj-sup-subtitle{margin:0;font-size:13px;display:flex;align-items:center;gap:6px}
.wj-sup-subtitle small{color:var(--muted);font-weight:500}
.wj-sup-line{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:12px;background:var(--surface2);color:var(--text);text-decoration:none}
a.wj-sup-line[href="#"]{pointer-events:none}
.wj-sup-line>span{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--surface);color:var(--accent)}
.wj-sup-line small{display:block;color:var(--muted);font-size:11px}
.wj-sup-line b{font-size:14px;word-break:break-word}
.wj-sup-prod-list{margin:0;padding-left:18px;display:grid;gap:3px;font-size:13px}
.wj-sup-prod-list small{color:var(--muted)}
.wj-sup-prod{cursor:pointer;gap:10px}
.wj-sup-prod input{width:18px;height:18px;accent-color:var(--accent)}
.wj-sup-auto{align-items:flex-start}
.wj-sup-auto small{display:block;color:var(--muted);font-weight:400}
.wj-sup-prod{display:flex;align-items:center;text-align:left;justify-content:flex-start}
.wj-sup-prod>div{text-align:left}
.wj-sup-prod .wj-row-meta{justify-content:flex-start}
.wj-sup-head{display:flex;align-items:center;gap:12px;margin:0 0 6px}
.wj-sup-head strong{display:block;font-size:16px}
.wj-sup-head small{color:var(--muted);font-size:12px}
.wj-sup-head-logo{width:56px;height:56px;flex:none;border-radius:16px;border:1px solid var(--hairline,var(--border));background:rgb(255,255,255);display:grid;place-items:center;overflow:hidden;color:var(--muted)}
.wj-sup-head-logo img{width:100%;height:100%;object-fit:contain;padding:6px}
.wj-sendpv-group{border:1px solid var(--border);border-radius:16px;background:var(--surface);overflow:hidden}
.wj-sendpv-group.is-off{opacity:.6}
.wj-sendpv-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;padding:10px 14px;background:var(--surface2);border-bottom:1px solid var(--hairline,var(--border))}
.wj-sendpv-title strong{display:block;font-size:14px}
.wj-sendpv-title small{color:var(--muted);font-size:12px}
.wj-sendpv-mail{display:flex;align-items:center;gap:8px;flex:1 1 280px;max-width:420px}
.wj-sendpv-mail>input[type=checkbox]{width:18px;height:18px;accent-color:var(--accent)}
.wj-sendpv-mail>span{color:var(--accent);display:grid}
.wj-sendpv-mail .wj-input{flex:1;min-height:36px}
.wj-sendpv-items{list-style:none;margin:0;padding:6px 14px 10px;display:grid;gap:2px}
.wj-sendpv-items li{display:grid;grid-template-columns:56px minmax(0,1fr) auto;gap:8px;align-items:center;padding:5px 0;border-bottom:1px dashed var(--hairline,var(--border));font-size:14px}
.wj-sendpv-items li:last-child{border-bottom:0}
.wj-sendpv-qty{font-weight:800;color:var(--accent);font-variant-numeric:tabular-nums}
.wj-sendpv-items small{color:var(--muted)}
.wj-sendpv-steps{display:flex;gap:6px;font-size:12px;font-weight:700}
.wj-sendpv-steps span{padding:4px 10px;border-radius:999px;background:var(--surface2);color:var(--muted)}
.wj-sendpv-steps span.on{background:var(--accent);color:rgb(255,255,255)}
.wj-sendpv-foot{position:sticky;bottom:0;display:flex;justify-content:space-between;gap:10px;padding:12px 0 4px;margin-top:12px;background:var(--surface);border-top:1px solid var(--hairline,var(--border));z-index:2}
.wj-sendpv-foot [data-sendpv-back] svg{transform:rotate(180deg)}
.wj-pay-tabs{margin-bottom:12px}
.wj-pay-tabs b{margin-left:4px;font-size:11px;opacity:.75}
.wj-pay-list{display:grid;gap:8px}
.wj-pay-card{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;align-items:center;padding:12px 14px;border:1px solid var(--border);border-left-width:5px;border-radius:16px;background:var(--surface);text-align:left;font:inherit;color:var(--text);cursor:pointer}
.wj-pay-card:hover{box-shadow:0 8px 20px rgba(15,23,42,.08)}
.wj-pay-card.is-pendiente_factura{border-left-color:rgb(245,158,11)}
.wj-pay-card.is-pendiente_pago{border-left-color:rgb(37,99,235)}
.wj-pay-card.is-pagado{border-left-color:rgb(22,163,74)}
.wj-pay-main{min-width:0}
.wj-pay-main strong{display:block}
.wj-pay-main small{color:var(--muted);font-size:12px}
.wj-pay-amt{text-align:right;font-weight:800;font-variant-numeric:tabular-nums}
.wj-pay-amt small{display:block;font-weight:500;color:var(--muted);font-size:11px}
.wj-pay-badge{padding:3px 9px;border-radius:999px;font-size:11px;font-weight:800;white-space:nowrap}
.wj-pay-badge.is-pendiente_factura{background:rgb(254,243,199);color:rgb(146,64,14)}
.wj-pay-badge.is-pendiente_pago{background:rgb(219,234,254);color:rgb(30,64,175)}
.wj-pay-badge.is-pagado{background:rgb(220,252,231);color:rgb(21,101,52)}
.wj-pay-head{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:6px}
.wj-pay-head small{color:var(--muted)}
.wj-pay-dl{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px;margin:0 0 8px}
.wj-pay-dl div{padding:8px 10px;border-radius:12px;background:var(--surface2)}
.wj-pay-dl dt{font-size:11px;color:var(--muted)}
.wj-pay-dl dd{margin:0;font-size:14px}
.wj-pay-step{display:grid;grid-template-columns:32px minmax(0,1fr);gap:12px;padding:12px 0;border-top:1px solid var(--hairline,var(--border))}
.wj-pay-step-n{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--accent);color:rgb(255,255,255);font-weight:800}
.wj-pay-step-body{display:grid;gap:10px;min-width:0}
.wj-pay-step-body h3{margin:4px 0 0;font-size:14px}
.wj-pay-confirm{padding:10px 12px;border-radius:12px;background:rgb(254,249,195);font-weight:700}
@media(max-width:640px){.wj-pay-card{grid-template-columns:minmax(0,1fr) auto}
.wj-pay-badge{grid-column:1/-1;justify-self:start}}
.wj-prod-filter-n{display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--accent);color:rgb(255,255,255);font-size:11px}
.wj-prod-filter-empty{grid-column:1/-1;padding:18px;text-align:center}
.wj-prod-filterbar{display:grid;gap:10px;margin:-4px 0 14px;padding:12px;border:1px solid var(--border);border-radius:16px;background:var(--surface)}
.wj-prod-filterbar-head{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.wj-prod-filterbar-search{position:relative;flex:1 1 220px;min-width:0;max-width:none}
.wj-prod-filterbar-search>span{position:absolute;left:11px;top:50%;transform:translateY(-50%);display:grid;color:var(--muted);pointer-events:none}
.wj-prod-filterbar-search .wj-input{padding-left:32px;min-height:38px}
.wj-prod-filterbar-head .wj-select{flex:0 1 220px;min-height:38px}
.wj-prod-filterbar-chips{display:flex;flex-wrap:wrap;gap:6px;max-height:156px;overflow:auto}
.wj-fchip{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border:1px solid var(--border);border-radius:999px;background:var(--surface2);font-size:13px;cursor:pointer;user-select:none}
.wj-fchip input{width:15px;height:15px;accent-color:var(--accent);margin:0}
.wj-fchip small{color:var(--muted);font-size:11px}
.wj-fchip.on{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--surface));color:var(--accent);font-weight:700}
.wj-mg-tag{flex:none;display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border-radius:999px;font-size:12px;font-weight:600;background:var(--surface2);color:var(--muted);white-space:nowrap}
.wj-mg-tag.dup{background:rgb(254,226,226);color:rgb(153,27,27)}
.wj-mg-tag.warn{background:rgb(254,243,199);color:rgb(146,64,14)}
.wj-mg-tag.ok{background:rgb(220,252,231);color:rgb(21,101,52)}
.wj-fd-drop{display:grid;justify-items:center;gap:6px;padding:38px 20px;border:2px dashed var(--border);border-radius:20px;background:var(--surface);text-align:center;cursor:pointer;transition:border-color .15s,background .15s}
.wj-fd-drop:hover,.wj-fd-drop.is-over{border-color:var(--accent);background:var(--primary-weak)}
.wj-fd-drop strong{font-size:18px}
.wj-fd-drop small{color:var(--muted)}
.wj-fd-drop-icon{display:grid;place-items:center;width:56px;height:56px;border-radius:50%;background:var(--primary-weak);color:var(--accent)}
body.wj-fd-dragging .wj-fd-drop{border-color:var(--accent);background:var(--primary-weak)}
.wj-imp-top{display:grid;gap:10px}
.wj-imp-map{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:8px;padding:10px;border:1px dashed var(--border);border-radius:12px}
.wj-imp-summary{display:flex;align-items:center;gap:16px;flex-wrap:wrap;font-size:14px;color:var(--muted)}
.wj-imp-summary b{color:var(--text)}
.wj-imp-summary .ok b{color:rgb(21,101,52)}
.wj-imp-actions{margin-left:auto;display:flex;gap:6px}
.wj-imp-table{display:grid;gap:4px;max-height:52vh;overflow:auto;border:1px solid var(--border);border-radius:12px;padding:6px}
.wj-imp-row{display:grid;grid-template-columns:28px minmax(0,2.2fr) minmax(0,1fr) 110px 90px 170px;gap:8px;align-items:center;padding:4px 6px;border-radius:8px}
.wj-imp-row.is-head{position:sticky;top:-6px;z-index:1;background:var(--surface2);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.wj-imp-row .wj-input{height:34px;min-height:34px;padding:0 8px;font-size:13px;min-width:0}
.wj-imp-row.is-existing{opacity:.75}
.wj-imp-row.is-done{background:rgb(240,253,244)}
.wj-imp-row.is-error{background:rgb(254,242,242)}
.wj-imp-drop{padding:30px 20px}
.wj-cat-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}
.wj-cat-head h3{margin:0;font-size:18px}
.wj-cat-head p{margin:4px 0 0}
.wj-cat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.wj-cat-card{display:grid;justify-items:center;gap:6px;padding:14px 10px;border:1px solid var(--border);border-radius:16px;background:var(--surface);font:inherit;color:var(--text);text-align:center;cursor:pointer}
.wj-cat-card:hover{border-color:var(--accent)}
.wj-cat-card.is-off{opacity:.55}
.wj-cat-card small{color:var(--muted)}
.wj-cat-thumb{display:grid;place-items:center;width:64px;height:64px;border-radius:16px;background:var(--surface2);color:var(--muted);overflow:hidden}
.wj-cat-thumb img{width:100%;height:100%;object-fit:cover}
.wj-cat-thumb.lg{width:84px;height:84px}
.wj-cat-pick{display:flex;align-items:center;gap:14px}
.wj-cat-pick>div{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.wj-cat-chip{display:inline-flex;align-items:center;gap:4px;margin-left:6px;padding:1px 7px 1px 2px;border-radius:999px;background:var(--surface2);font-size:11px;vertical-align:middle}
.wj-cat-chip img{width:18px;height:18px;border-radius:50%;object-fit:cover}
@media(max-width:900px){.wj-imp-row{grid-template-columns:28px minmax(0,1fr) 90px}
.wj-imp-row [data-imp-f=sku],.wj-imp-row [data-imp-f=unit],.wj-imp-row.is-head span:nth-child(3),.wj-imp-row.is-head span:nth-child(5){display:none}
.wj-imp-row .wj-imp-state{grid-column:2/-1}}
.wj-imp-sheets{display:flex;gap:6px;flex-wrap:wrap}
.wj-imp-sheets small{opacity:.7;margin-left:3px}
.wj-imp-unknown{padding:8px 12px;border-radius:12px;background:rgb(254,243,199);color:rgb(146,64,14);font-size:13px}
.wj-imp-mapwrap summary{cursor:pointer;color:var(--muted);font-size:13px}
.wj-imp-mapwrap[open] summary{margin-bottom:6px}
.wj-detail-page .wj-imp-table{max-height:none}
.wj-imp-summary .warn b{color:rgb(180,83,9)}
.wj-imp-filebar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;color:var(--muted);font-size:13px}
.wj-imp-filebar b{color:var(--text)}
.wj-imp-filebar .wj-link-btn{margin-left:auto}
.wj-imp-supcell{position:relative;min-width:0}
.wj-imp-supbtn{display:flex;align-items:center;gap:4px;width:100%;min-height:34px;padding:3px 6px;border:1px solid var(--border);border-radius:8px;background:var(--surface);font:inherit;color:var(--text);text-align:left;cursor:pointer;overflow:hidden}
.wj-imp-supbtn.is-empty{border-style:dashed}
.wj-imp-supbtn>svg{margin-left:auto;flex:none;color:var(--muted);transform:rotate(90deg)}
.wj-imp-supph{color:var(--muted);font-size:13px}
.wj-imp-supchip{display:inline-flex;align-items:center;gap:4px;padding:1px 7px 1px 2px;border-radius:999px;background:var(--primary-weak);color:var(--accent);font-size:12px;font-weight:600;white-space:nowrap;max-width:140px;overflow:hidden;text-overflow:ellipsis}
.wj-imp-supchip b{display:inline-grid;place-items:center;width:16px;height:16px;border-radius:50%;background:var(--accent);color:rgb(255,255,255);font-size:11px}
.wj-imp-supchip.is-new{background:rgb(254,243,199);color:rgb(146,64,14)}
.wj-imp-suppop{position:absolute;top:100%;left:0;z-index:50;width:max(260px,100%);margin-top:4px;border:1px solid var(--border);border-radius:12px;background:var(--surface);box-shadow:0 16px 36px rgba(15,23,42,.2)}
.wj-imp-suppop-list{max-height:260px;overflow:auto;padding:6px}
.wj-imp-supopt{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:8px;cursor:pointer}
.wj-imp-supopt:hover{background:var(--surface2)}
.wj-imp-supopt.on{background:var(--primary-weak)}
.wj-imp-supopt span{flex:1}
.wj-imp-supopt small{color:var(--accent);font-weight:600}
.wj-imp-suppop-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px;border-top:1px solid var(--border)}
.wj-imp-suppop-foot small{color:var(--muted)}
.wj-imp-unknown .wj-btn{margin:2px 4px 2px 0}
.wj-imp-row{grid-template-columns:28px minmax(0,2fr) minmax(170px,1.2fr) 100px 90px 170px}
@media(max-width:900px){.wj-imp-row{grid-template-columns:28px minmax(0,1fr) 90px}
.wj-imp-row .wj-imp-supcell{grid-column:2/-1}}
.wj-managed-page{display:grid;gap:14px}
.wj-managed-page .wj-table-wrap{max-height:none}
.wj-managed-page .wj-table td,.wj-managed-page .wj-table th{white-space:normal}
.wj-managed-page .wj-table .wj-select{min-width:180px}
.wj-managed-page .wj-table .wj-input[type=number]{width:96px}
.wj-detail-page .wj-sendpv{max-width:900px}
.wj-sup-logo-field{display:flex;align-items:center;gap:14px}
.wj-sup-logo-field .wj-supplier-logo{width:64px;height:64px;flex:none}
.wj-sup-logo-pick{flex:1;min-width:0}
.wj-portal{display:grid;gap:16px}
.wj-portal-head h1{margin:4px 0 6px;font-size:24px}
.wj-portal-orders{display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}
.wj-portal-order{display:grid;gap:8px;padding:14px;border:1px solid var(--border);border-radius:16px;background:var(--surface);cursor:pointer}
.wj-portal-order:hover{border-color:var(--accent)}
.wj-portal-order-main{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.wj-portal-order-main small{display:block;color:var(--muted);font-size:12px}
.wj-portal-order-meta{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:12px;color:var(--muted)}
.wj-portal-change{display:flex;justify-content:space-between;gap:12px;align-items:center}
.wj-portal-change>div:first-child{min-width:0}
.wj-portal-change small{color:var(--muted)}
.wj-portal-inbox .wj-pchat{max-height:260px}
.wj-price-log-bar{flex-wrap:wrap;gap:8px}
.wj-price-log-bar .wj-date-range-filter{position:relative}
.wj-sup-portal{padding:10px 12px;border:1px dashed var(--accent);border-radius:12px;background:var(--primary-weak)}
.wj-sup-portal small{display:block;color:var(--muted);font-weight:400}
.wj-portal-order-meta span{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}
.wj-sup-sec,.wj-sup-center{border:1px solid var(--border);border-radius:16px;background:var(--surface);overflow:hidden}
.wj-sup-sec>summary,.wj-sup-center>summary{display:flex;align-items:center;gap:10px;padding:12px 14px;cursor:pointer;list-style:none;user-select:none}
.wj-sup-sec>summary::-webkit-details-marker,.wj-sup-center>summary::-webkit-details-marker{display:none}
.wj-sup-sec>summary small,.wj-sup-center-name small{display:block;color:var(--muted);font-size:12px;font-weight:400}
.wj-sup-sec>summary>strong{flex:none}
.wj-sup-sec>summary>small{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wj-sup-sec>summary>svg,.wj-sup-center>summary>svg{flex:none;color:var(--muted);transform:rotate(90deg);transition:transform .15s}
.wj-sup-sec[open]>summary>svg,.wj-sup-center[open]>summary>svg{transform:rotate(-90deg)}
.wj-sup-sec>.wj-form-grid,.wj-sup-center-body{padding:4px 14px 14px;display:grid;gap:12px}
.wj-sup-center-name{flex:1;min-width:0}
.wj-sup-center-toggle{display:flex;align-items:center}
.wj-sup-center:not(.active){opacity:.72}
.wj-sup-center:not(.active)>summary{background:var(--surface2)}
.wj-sup-center.active{border-color:var(--accent)}
.wj-sup-sched{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.wj-sup-sched .wj-sched-daychips{display:flex;gap:4px}
.wj-sup-sched .wj-sched-daychip{min-width:34px;padding:6px 0;text-align:center}
.wj-sup-sched-time{display:flex;align-items:center;gap:6px}
.wj-sup-sched-time .wj-input{width:104px}
.wj-sup-center-tools{display:flex;justify-content:flex-end}
.wj-portal-centers{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0 0 10px}
.wj-portal-centers .wj-sched-daychip b{font-weight:800;margin-left:4px}
.wj-portal-order.wj-portal-c0{border-left:4px solid var(--pc0)}
.wj-portal-order.wj-portal-c1{border-left:4px solid var(--pc1)}
.wj-portal-order.wj-portal-c2{border-left:4px solid var(--pc2)}
.wj-portal-order.wj-portal-c3{border-left:4px solid var(--pc3)}
.wj-portal-order.wj-portal-c4{border-left:4px solid var(--pc4)}
.wj-portal-order.wj-portal-c5{border-left:4px solid var(--pc5)}
.wj-portal-center-tag{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;margin-bottom:2px}
.wj-portal-c0 .wj-portal-center-tag,.wj-badge.wj-portal-c0{color:var(--pc0)}
.wj-portal-c1 .wj-portal-center-tag,.wj-badge.wj-portal-c1{color:var(--pc1)}
.wj-portal-c2 .wj-portal-center-tag,.wj-badge.wj-portal-c2{color:var(--pc2)}
.wj-portal-c3 .wj-portal-center-tag,.wj-badge.wj-portal-c3{color:var(--pc3)}
.wj-portal-c4 .wj-portal-center-tag,.wj-badge.wj-portal-c4{color:var(--pc4)}
.wj-portal-c5 .wj-portal-center-tag,.wj-badge.wj-portal-c5{color:var(--pc5)}
.wj-portal-head{display:grid;gap:12px}
.wj-portal-head-main{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;flex-wrap:wrap}
.wj-portal-head h1{margin:2px 0 0;font-size:22px}
.wj-portal-body.is-in{animation:wj-portal-in .18s ease}
@media(prefers-reduced-motion:reduce){.wj-portal-body.is-in{animation:none}}
.wj-portal-sec{display:grid;gap:10px}
.wj-portal-sec>h3{margin:4px 0 0;font-size:15px;display:flex;align-items:center;gap:8px}
.wj-portal-sec>h3 small{color:var(--muted);font-weight:500}
.wj-portal-orders{display:grid;gap:8px;grid-template-columns:1fr}
.wj-portal-order{display:block;padding:10px 14px;border:1px solid var(--border);border-radius:12px;background:var(--surface);cursor:pointer;transition:border-color .12s,background .12s}
.wj-portal-order:hover{border-color:var(--accent);background:var(--primary-weak)}
.wj-portal-order-main{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.wj-portal-order-main strong{font-size:14px}
.wj-portal-order-main>small{color:var(--muted)}
.wj-portal-order-main>svg:last-child{margin-left:auto;color:var(--muted);flex:none}
.wj-portal-order-meta{display:inline-flex;align-items:center;gap:10px;color:var(--muted);font-size:12px;flex-wrap:wrap}
.wj-portal-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.wj-portal-page{display:grid;gap:18px}
.wj-portal-lines td{vertical-align:middle}
.wj-portal-lines small,.wj-portal-products small{color:var(--muted)}
.wj-portal-line-act{text-align:right;white-space:nowrap}
.wj-portal-reqrow td{background:var(--primary-weak);padding:10px 12px!important}
.wj-portal-reqform{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap}
.wj-portal-reqform .wj-field{min-width:140px;flex:0 0 auto}
.wj-portal-reqform .wj-field.wj-grow{flex:1 1 220px}
.wj-portal-reqbtns{display:flex;gap:6px;align-items:center;padding-bottom:2px}
.wj-portal-list{display:grid;gap:6px}
.wj-portal-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 12px;border:1px solid var(--border);border-radius:12px;background:var(--surface)}
.wj-portal-row-main{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;min-width:0}
.wj-portal-row-main small{color:var(--muted)}
.wj-portal-toolbar{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.wj-portal-toolbar .wj-search{flex:0 0 280px}
.wj-portal-toolbar p{margin:0;flex:1;min-width:240px}
.wj-portal-profile .wj-form-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:900px){.wj-portal-profile .wj-form-grid{grid-template-columns:1fr}}
.wj-portal .wj-pchat{max-height:420px}
.wj-inbox-decide{display:flex;gap:8px;align-items:center;flex-wrap:wrap;width:100%;margin-top:8px;padding:8px 10px;border-radius:12px;background:var(--primary-weak)}
.wj-inbox-decide .wj-input{flex:1 1 220px}
.wj-sup-copy-panel{display:flex;gap:6px;align-items:center;flex-wrap:wrap;padding:8px 10px;border-radius:12px;background:var(--primary-weak)}
.wj-sup-page{display:grid;gap:14px;max-width:960px}
.wj-sup-page .wj-sup-block{display:grid;gap:6px}
.wj-ped-toolbar .wj-toolbar-spacer{flex:1}
.wj-ped-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}
.wj-ped-row{grid-template-columns:10px minmax(0,1.6fr) minmax(0,.8fr) auto auto auto 16px}
.wj-ped-row.st-open .wj-inc-sev{background:var(--muted)}
.wj-ped-row.st-pending_management .wj-inc-sev{background:var(--warn)}
.wj-ped-row.st-in_transit .wj-inc-sev{background:var(--accent)}
.wj-ped-row.st-reception_with_differences .wj-inc-sev{background:var(--danger)}
.wj-ped-row.st-completed .wj-inc-sev{background:var(--ok)}
.wj-ped-test{font-style:normal;font-size:11px;font-weight:800;letter-spacing:.06em;padding:1px 6px;border-radius:6px;background:var(--warn-weak);color:var(--warn);margin-left:6px;vertical-align:middle}
.wj-ped-page .wj-ip-card>h3 .wj-ped-addbtn{margin-left:auto;text-transform:none;letter-spacing:0}
.wj-ped-lines{display:grid;gap:8px}
.wj-ped-line{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(120px,.7fr) 36px;gap:10px;align-items:center;padding:8px 10px;border:1px solid var(--border);border-radius:12px;background:var(--surface2)}
.wj-ped-line-main{min-width:0;display:grid}
.wj-ped-line-main strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:14px}
.wj-ped-line-main small{color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wj-ped-stepper{display:inline-flex;align-items:center;gap:4px}
.wj-ped-stepper .wj-input{width:64px;text-align:center;min-height:34px;padding:0 4px}
.wj-ped-stepper .wj-btn.sm{width:34px;min-width:34px;padding:0;justify-content:center}
.wj-ped-note{min-height:34px}
.wj-ped-foot{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;align-items:center}
.wj-ped-foot .wj-ped-picker-total{margin-right:auto}
.wj-ped-managers{display:grid;gap:8px}
.wj-ped-manager{display:flex;gap:10px;align-items:center;padding:8px 10px;border:1px solid var(--border);border-radius:12px;background:var(--surface2)}
.wj-ped-manager-avatar{width:34px;height:34px;border-radius:50%;background:var(--accent);color:rgb(255 255 255);display:inline-flex;align-items:center;justify-content:center;font-weight:700;flex:none}
.wj-ped-manager>div{display:grid;min-width:0}
.wj-ped-manager small{color:var(--muted)}
.wj-ped-manager a{font-size:13px;display:inline-flex;align-items:center;gap:4px;color:var(--accent);text-decoration:none}
.wj-ped-sent{display:grid;gap:10px;text-align:center;justify-items:center}
.wj-ped-sent h3{margin:0;font-size:20px}
.wj-ped-sent p{margin:0}
.wj-ped-sent .wj-ped-managers{width:100%;text-align:left}
.wj-ped-sent .wj-form-actions{width:100%;justify-content:center}
.wj-ped-picker{padding-bottom:84px}
.wj-ped-picker-filters{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:12px}
.wj-ped-picker-filters .wj-search{flex:1;min-width:200px}
.wj-ped-new{max-width:520px}
@media(max-width:900px){.wj-ped-kpis{grid-template-columns:1fr 1fr}
.wj-ped-row{grid-template-columns:10px minmax(0,1fr) auto 16px}
.wj-ped-row .wj-inc-who,.wj-ped-row .wj-inc-center,.wj-ped-row .wj-inc-date{display:none}}
@media(max-width:640px){.wj-ped-line{grid-template-columns:minmax(0,1fr) auto 36px}
.wj-ped-note{grid-column:1/-1}}
.wj-ped-mgr{margin-bottom:14px}
.wj-ped-mgr-head h3{margin:0 0 4px;display:flex;align-items:center;gap:8px;font-size:14px}
.wj-ped-mgr-head p{margin:0 0 10px}
.wj-ped-mgr-body{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.wj-ped-mgr-body .wj-ped-manager{min-width:260px}
.wj-ped-mgr-edit{display:flex;gap:8px;align-items:center;margin-left:auto}
.wj-ped-mgr-edit .wj-select{min-width:260px}
@media(max-width:700px){.wj-ped-mgr-edit{margin-left:0;width:100%}
.wj-ped-mgr-edit .wj-select{flex:1;min-width:0}}
.wj-ped-cancel-list{margin:0;padding:0 0 0 18px;display:grid;gap:4px}
.wj-ped-cancel-list small{color:var(--muted);margin-left:6px}
.wj-hist-editbar{display:inline-flex;align-items:center;gap:10px;padding:4px 8px 4px 12px;border:1px solid var(--accent);border-radius:16px;background:var(--blue-soft)}
.wj-order-hist-list.is-editing .wj-order-hist>*:not(.wj-hist-pick){grid-column:2}
.wj-hist-pick{grid-row:1/span 3;align-self:center;display:flex;align-items:center;justify-content:center}
.wj-hist-pick input{width:18px;height:18px}
.wj-order-hist:has(.wj-hist-pick input:checked){border-color:var(--accent);background:var(--blue-soft)}
.wj-sup-portal-badge{display:inline-flex;align-items:center;gap:4px;margin-top:6px;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:700;border:1px solid var(--border)}
.wj-sup-portal-badge.is-active{background:var(--success-weak);color:var(--ok);border-color:transparent}
.wj-sup-portal-badge.is-invited{background:var(--warn-weak);color:var(--warn);border-color:transparent}
.wj-sup-portal-list{display:grid;gap:6px}
.wj-sup-portal-row{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--border);border-radius:12px}
.wj-sup-portal-row>div{display:grid;flex:1;min-width:0}
.wj-sup-portal-row small{color:var(--muted)}
.wj-sup-portal-dot{width:10px;height:10px;border-radius:50%;background:var(--warn);flex:none}
.wj-sup-portal-row.active .wj-sup-portal-dot{background:var(--ok)}
.wj-roomy .wj-search{width:min(300px,100%)!important;flex:0 1 300px!important}
.wj-roomy .wj-search input{color:inherit!important;caret-color:auto!important;cursor:text}
.wj-roomy .wj-search input::placeholder{color:var(--muted)!important}
.wj-roomy .wj-exp-filter .wj-exp-filter-btn{max-width:none!important}
.wj-hist-entries h3{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.wj-hist-entries h3 .wj-hist-editbar{display:inline-flex}
.wj-he-item{display:flex;gap:10px;align-items:flex-start;cursor:default}
.wj-hist-entries.is-editing .wj-he-item{cursor:pointer;padding:6px 8px;border-radius:12px}
.wj-hist-entries.is-editing .wj-he-item:hover{background:var(--surface2)}
.wj-he-check{width:18px;height:18px;margin-top:2px;flex:none}
.wj-he-item:has(.wj-he-check:checked){background:var(--blue-soft)}
.wj-he-item .wj-timeline-body{display:grid}
.wj-he-item small{color:var(--muted)}
.wj-toolbar.wj-hist-floating{position:fixed;bottom:0;z-index:40;margin:0;padding:10px 16px;box-sizing:border-box;border-top:1px solid var(--border);background:rgb(255 255 255 / .78);backdrop-filter:blur(14px) saturate(1.4);-webkit-backdrop-filter:blur(14px) saturate(1.4);box-shadow:0 -8px 24px rgb(15 23 42 / .08);border-radius:16px 16px 0 0}
html[data-theme="dark"] .wj-toolbar.wj-hist-floating{background:rgb(15 23 42 / .72)}
span.wj-sup-centers{display:flex;flex-wrap:wrap;gap:4px;justify-content:center;margin:4px 0}
span.wj-sup-centers i{font-style:normal;font-size:11px;padding:1px 7px;border-radius:999px;background:var(--surface2);color:var(--muted);border:1px solid var(--border)}
.wj-sup-portal-row.off .wj-sup-portal-dot{background:var(--border-strong)}
.wj-sup-portal-actions{display:inline-flex;gap:6px;flex-wrap:wrap}
@media(max-width:640px){.wj-sup-portal-row{flex-wrap:wrap}
.wj-sup-portal-actions{width:100%;justify-content:flex-end}}
.wj-roomy.wj-roomy.wj-roomy .wj-exp-filter.wj-exp-filter.wj-exp-filter .wj-exp-filter-btn{max-width:min(280px,72vw)!important}
.wj-roomy.wj-roomy.wj-roomy .wj-exp-filter.wj-exp-filter.wj-exp-filter .wj-exp-filter-btn>span{opacity:1}
.wj-ps-hidden{position:absolute!important;width:1px;height:1px;opacity:0;pointer-events:none;margin:0;padding:0;border:0}
.wj-ps-btn{display:flex;align-items:center;gap:10px;width:100%;min-height:46px;padding:6px 10px 6px 8px;border:1px solid var(--hairline,var(--border-strong));border-radius:12px;background:var(--surface);cursor:pointer;color:inherit;font:inherit;text-align:left;transition:border-color .15s,box-shadow .15s}
.wj-ps-btn:hover{border-color:var(--accent)}
.wj-ps-btn:focus-visible{outline:none;box-shadow:0 0 0 3px var(--primary-weak);border-color:var(--accent)}
.wj-ps-btn>svg:last-child{margin-left:auto;color:var(--muted);transform:rotate(90deg)}
.wj-ps-main{min-width:0;display:grid}
.wj-ps-main b{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wj-ps-main small{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wj-ps-ph{color:var(--muted);font-size:14px}
.wj-ps-btn.is-empty{border-style:dashed}
.wj-ps-stack{display:flex}
.wj-ps-stack .wj-avatar,.wj-ps-stack .wj-avatar-media{margin-right:-8px;border:2px solid var(--surface)}
.wj-pp{display:grid;gap:10px;min-height:min(60vh,520px)}
.wj-pp-toolbar{position:sticky;top:0;z-index:2;background:var(--surface);padding-bottom:4px}
.wj-pp-list{display:grid;gap:4px;max-height:min(56vh,480px);overflow:auto;overscroll-behavior:contain;padding:2px}
.wj-pp-row{display:grid;grid-template-columns:auto 40px minmax(0,1fr) auto auto;align-items:center;gap:12px;width:100%;padding:8px 12px;border:1px solid transparent;border-radius:12px;background:transparent;cursor:pointer;color:inherit;font:inherit;text-align:left;transition:background .12s}
.wj-pp-row:hover{background:var(--surface2)}
.wj-pp-row.is-picked{background:var(--primary-weak);border-color:var(--accent)}
.wj-pp-main{min-width:0;display:grid}
.wj-pp-main b{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wj-pp-main small{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wj-pp-centers{display:flex;gap:4px}
.wj-pp-centers i{font-style:normal;font-size:12px;padding:2px 8px;border-radius:999px;background:var(--surface2);border:1px solid var(--border);white-space:nowrap}
.wj-pp-check{width:20px;height:20px;border-radius:6px;border:2px solid var(--border-strong);display:grid;place-items:center;color:transparent}
.wj-pp-row.is-picked .wj-pp-check{background:var(--accent);border-color:var(--accent);color:rgb(255 255 255)}
.wj-pp-cur{color:var(--accent)}
.wj-pp-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-top:6px;border-top:1px solid var(--border)}
.wj-pp-count{font-size:13px;color:var(--muted);margin-left:auto;margin-right:10px}
.wj-pp-empty{padding:30px;text-align:center;color:var(--muted)}
@media(max-width:699px){.wj-pp-row{grid-template-columns:auto 36px minmax(0,1fr) auto}
.wj-pp-centers{display:none}
.wj-pp-list{max-height:none}
.wj-pp{min-height:0}}
.wj-pp-row{grid-template-columns:40px minmax(0,1fr) auto auto}
.wj-pp-row.is-multi{grid-template-columns:auto 40px minmax(0,1fr) auto auto}
@media(max-width:699px){.wj-pp-row{grid-template-columns:36px minmax(0,1fr) auto}
.wj-pp-row.is-multi{grid-template-columns:auto 36px minmax(0,1fr) auto}}
.wj-hist-sups{display:grid;gap:4px;margin-top:8px;padding-top:8px;border-top:1px dashed var(--border)}
.wj-hist-sup{display:grid;grid-template-columns:minmax(120px,180px) minmax(0,1fr);gap:10px;font-size:13px;align-items:baseline}
.wj-hist-sup b{display:inline-flex;align-items:center;gap:5px;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wj-hist-sup span{color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wj-hist-sup i{font-style:normal;color:var(--text);font-weight:700}
.wj-hist-sup em{font-style:normal;color:var(--accent);font-weight:700}
.wj-hist-supsec{margin:10px 0 14px}
.wj-hist-supsec h4{display:flex;align-items:center;gap:6px;margin:0 0 6px;font-size:14px}
.wj-hist-supsec h4 small{font-weight:500;color:var(--muted);margin-left:4px}
@media(max-width:699px){.wj-hist-sup{grid-template-columns:1fr}}
.wj-toolbar.wj-hist-floating,html[data-theme="dark"] .wj-toolbar.wj-hist-floating{background:rgb(15 23 42 / .86);color:rgb(255 255 255);border-top:0;border-radius:18px 18px 0 0;box-shadow:0 -12px 40px rgb(15 23 42 / .3)}
.wj-toolbar.wj-hist-floating .wj-help,.wj-toolbar.wj-hist-floating .wj-check{color:rgb(255 255 255 / .85)}
.wj-toolbar.wj-hist-floating .wj-btn{background:rgb(255 255 255 / .12);color:rgb(255 255 255);border-color:transparent}
.wj-toolbar.wj-hist-floating .wj-btn.danger{background:rgb(229 72 77)}
.wj-toolbar.wj-hist-floating .wj-search .wj-input{background:rgb(255 255 255 / .1);color:rgb(255 255 255);border-color:transparent}
.wj-th-sort{border:0;background:transparent;font:inherit;font-weight:800;color:inherit;padding:0;cursor:pointer;display:inline-flex;align-items:center;gap:4px}
.wj-th-sort i{display:inline-grid;opacity:.35;transform:rotate(90deg);transition:transform .15s,opacity .15s}
.wj-th-sort:hover i{opacity:.8}
.wj-th-sort.is-on i{opacity:1;color:var(--accent)}
.wj-th-sort.is-desc i{transform:rotate(-90deg)}
.wj-ped-rec-intro{margin:0 0 12px}
.wj-ped-sups{display:grid;gap:8px;margin-top:10px}
.wj-ped-sup{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 12px;border:1px solid var(--border);border-radius:12px;background:var(--surface2)}
.wj-ped-sup.is-done{background:color-mix(in srgb,var(--ok,rgb(22 163 74)) 8%,var(--surface))}
.wj-ped-sup-main{flex:1;min-width:160px;display:grid}
.wj-ped-sup-main b{font-size:14px}
.wj-ped-sup-main small{color:var(--muted);font-size:12px}
.wj-ped-rec-table td[data-rec-diff]{font-weight:800;text-align:center}
.wj-ped-rec-table td.is-ok{color:var(--ok,rgb(22 163 74))}
.wj-ped-rec-table td.is-warn{color:var(--warn,rgb(217 119 6))}
.wj-ped-rec-quick{display:flex;gap:14px;margin-top:8px}
.wj-ped-rec-docs{display:grid;gap:8px;margin-bottom:10px}
.wj-ped-rec-doc{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border:1px dashed var(--border);border-radius:12px}
.wj-ped-rec-doc.has{border-style:solid;border-color:var(--ok,rgb(22 163 74));background:color-mix(in srgb,var(--ok,rgb(22 163 74)) 7%,var(--surface))}
.wj-ped-rec-doc.is-later{opacity:.55}
.wj-ped-rec-doc>div{display:grid}
.wj-ped-rec-doc small{color:var(--muted);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:320px}
.wj-ped-recpage .wj-signature{width:100%;max-width:720px;height:auto;aspect-ratio:3/1;border:1px dashed var(--border);border-radius:12px;background:rgb(255 255 255);touch-action:none}
.wj-prod-prices{display:inline-flex;gap:10px;align-items:baseline}
.wj-prod-price{display:inline-flex;flex-direction:column;line-height:1.1;font-size:13px;font-weight:700;font-variant-numeric:tabular-nums}
.wj-prod-price small{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-3)}
.wj-prod-price.is-cost{color:var(--muted)}
.wj-prod-price.is-sale{color:var(--text)}
.wj-product-grid.is-list .wj-prod-prices{margin-left:auto}
.wj-product-detail-media .wj-product-media-hint{font-size:11px;padding:3px 6px}
.wj-prod-head{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--border);border-radius:16px;background:var(--surface2);margin-bottom:14px}
.wj-prod-head-copy{flex:1;min-width:0;display:grid}
.wj-prod-head-copy strong{font-size:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wj-prod-head-copy small{color:var(--muted)}
.wj-prod-head-copy small b{color:var(--text)}
.wj-prod-supbtn b{min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:var(--accent);color:rgb(255 255 255);display:inline-grid;place-items:center;font-size:11px}
.wj-pslide{overflow:hidden;margin:0 -4px;padding:0 4px}
.wj-pslide-track{display:flex;width:200%;transition:transform .34s cubic-bezier(.22,.8,.3,1)}
.wj-pslide-panel{width:50%;flex:0 0 50%;min-width:0;padding:2px 4px;box-sizing:border-box}
.wj-pslide.is-sup .wj-pslide-track{transform:translateX(-50%)}
.wj-pslide-panel[aria-hidden="true"]{visibility:hidden;max-height:60vh;overflow:hidden}
.wj-pslide-head{display:flex;align-items:flex-start;gap:12px;margin-bottom:12px}
.wj-pslide-head h3{margin:0;font-size:15px}
.wj-pslide-head .wj-btn svg{transform:rotate(180deg)}
.wj-prod-suplist .wj-card.soft{padding:12px 14px}
.wj-prod-suplist .wj-card.soft:not(.active) .wj-form-grid{display:none}
.wj-prod-suplist .wj-section-title{margin-bottom:6px}
@media(prefers-reduced-motion:reduce){.wj-pslide-track{transition:none}}
:root{--pc0:rgb(26,109,255);--pc1:rgb(124,58,237);--pc2:rgb(5,150,105);--pc3:rgb(217,119,6);--pc4:rgb(219,39,119);--pc5:rgb(8,145,178)}
.wj-sched-daychip.wj-portal-c0.on{background:var(--pc0);border-color:var(--pc0)}.wj-sched-daychip.wj-portal-c1.on{background:var(--pc1);border-color:var(--pc1)}.wj-sched-daychip.wj-portal-c2.on{background:var(--pc2);border-color:var(--pc2)}.wj-sched-daychip.wj-portal-c3.on{background:var(--pc3);border-color:var(--pc3)}.wj-sched-daychip.wj-portal-c4.on{background:var(--pc4);border-color:var(--pc4)}.wj-sched-daychip.wj-portal-c5.on{background:var(--pc5);border-color:var(--pc5)}
/* Conversación con el proveedor (portal y bandeja del equipo); el chat en vivo de clientes es .wj-chat. */
.wj-pchat{display:flex;flex-direction:column;gap:8px;max-height:360px;overflow:auto;padding:12px;border:1px solid var(--border);border-radius:16px;background:var(--surface2)}
.wj-pchat-msg{display:flex}.wj-pchat-msg.mine{justify-content:flex-end}
.wj-pchat-bubble{max-width:82%;padding:8px 12px;border-radius:14px 14px 14px 4px;background:var(--surface);border:1px solid var(--border);font-size:14px;line-height:1.4}
.wj-pchat-bubble b{display:block;font-size:12px;color:var(--accent);margin-bottom:2px}.wj-pchat-bubble p{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}.wj-pchat-bubble small{display:block;margin-top:3px;font-size:11px;color:var(--muted);text-align:right}
.wj-pchat-msg.mine .wj-pchat-bubble{background:var(--accent);border-color:var(--accent);color:rgb(255,255,255);border-radius:14px 14px 4px 14px}.wj-pchat-msg.mine .wj-pchat-bubble small{color:rgba(255,255,255,.8)}
.wj-pchat-compose{display:flex;gap:8px;align-items:flex-end;margin-top:10px}.wj-pchat-compose textarea{flex:1;min-height:44px;resize:none}
/* Clases en lugar de estilos en línea (CSP del panel). */
.wj-ped-suplabel{display:flex;align-items:center;gap:9px}
.wj-ped-grow{flex:1;min-width:0}
.wj-ped-mb{margin-bottom:10px}
/* Casillas del editor de proveedor (activar centro, acceso al portal): visibles también en oscuro. */
.wj-sup-center-toggle input,.wj-sup-portal>input,.wj-sup-auto>input{width:18px;height:18px;margin:0;accent-color:var(--accent);flex:none}
/* Historial de un pedido: entradas con casilla en modo edición. */
.wj-he-list{display:grid;gap:4px}
.wj-he-item .wj-timeline-dot{width:10px;height:10px;margin-top:5px;border-radius:50%;background:var(--accent);flex:none}
.wj-ped-rec .wj-section-title h3{margin:0}
@media(max-width:699px){.wj-ped-rec-doc{flex-wrap:wrap}.wj-ped-rec-doc small{max-width:60vw}.wj-ped-rec-table .wj-ped-stepper .wj-input{width:52px}.wj-sup-sched-time .wj-input{width:96px}.wj-portal-toolbar .wj-search{flex:1 1 100%}}
/* Anuncio del login: Pedidos y proveedores (pedido semanal, recepción firmada, portal del proveedor). */
.wj-lsp-order{position:absolute;left:22px;top:24px;width:255px;padding:13px;border-radius:16px;background:rgb(255,255,255);box-shadow:0 22px 50px rgba(2,6,23,.45);display:grid;gap:10px}
.wj-lsp-head{display:flex;align-items:center;gap:9px}
.wj-lsp-head small{display:block;color:rgb(100,116,139);font-size:11px;font-weight:600}
.wj-lsp-logo{flex:none;display:grid;place-items:center;width:30px;height:30px;border-radius:8px;background:linear-gradient(135deg,rgb(14,165,233),rgb(37,99,235));color:rgb(255,255,255);font-size:11px;font-weight:800}
.wj-lsp-order ul{margin:0;padding:0;list-style:none;display:grid;gap:6px}
.wj-lsp-order li{display:flex;justify-content:space-between;gap:8px;padding:7px 9px;border-radius:8px;background:rgb(241,245,249);font-size:11px;font-weight:600}
.wj-lsp-order li b{color:rgb(37,99,235);font-variant-numeric:tabular-nums}
.wj-lsp-foot{display:flex;align-items:center;justify-content:space-between}
.wj-lsp-foot strong{font-size:14px;font-variant-numeric:tabular-nums}
.wj-lsp-pill{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:999px;background:rgb(219,234,254);color:rgb(29,78,216);font-size:11px;font-weight:800}
.wj-lsp-recv{position:absolute;right:22px;top:70px;width:190px;padding:12px;border-radius:16px;background:rgb(255,255,255);box-shadow:0 22px 50px rgba(2,6,23,.45);display:grid;gap:7px}
.wj-lsp-recv p{display:flex;align-items:center;gap:7px;margin:0;max-width:none;color:rgb(30,41,59);font-size:11px;font-weight:700;line-height:1.3}
.wj-lsp-recv p i{flex:none;display:grid;place-items:center;width:16px;height:16px;border-radius:50%}
.wj-lsp-recv p i.ok{background:rgb(22,163,74);color:rgb(255,255,255)}
.wj-lsp-recv p i.wait{background:rgb(254,243,199);box-shadow:inset 0 0 0 2px rgb(245,158,11)}
.wj-lsp-sign{width:100%;height:34px;margin-top:2px;border-bottom:1px dashed rgb(203,213,225)}
.wj-lsp-sign path{fill:none;stroke:rgb(30,41,59);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:320;stroke-dashoffset:320;animation:wj-lsp-sign 3.2s ease-in-out infinite}
@keyframes wj-lsp-sign{0%{stroke-dashoffset:320}45%,85%{stroke-dashoffset:0}100%{stroke-dashoffset:0;opacity:0}}
.wj-lsp-stamp{justify-self:end;padding:3px 8px;border-radius:6px;border:1.5px solid rgb(22,163,74);color:rgb(21,128,61);font-size:11px;font-weight:800;transform:rotate(-4deg)}
.wj-lsp-float{left:auto;right:30px;bottom:22px}
@media (max-width:1180px){.wj-lsp-recv{display:none}.wj-lsp-order{left:50%;margin-left:-127px}}
@media (prefers-reduced-motion:reduce){.wj-lsp-sign path{animation:none;stroke-dashoffset:0}}
/* «Más» del móvil: hoja con asa; se abre entera al arrastrar hacia arriba (is-full) y se sigue al dedo. */
html[data-layout="mobile"] .wj-mobile-nav-drawer{transition:transform .28s cubic-bezier(.2,.8,.2,1),opacity .18s ease,max-height .32s cubic-bezier(.2,.8,.2,1);touch-action:pan-y}
html[data-layout="mobile"] .wj-mobile-nav-drawer.is-full{max-height:calc(100dvh - 20px)}
html[data-layout="mobile"] .wj-mobile-nav-drawer.is-dragging{transition:none}
.wj-sheet-grip{display:none}
html[data-layout="mobile"] .wj-sheet-grip{display:block;flex:none;width:38px;height:5px;margin:8px auto 0;border-radius:999px;background:color-mix(in srgb,var(--text) 22%,transparent)}
html[data-layout="mobile"] .wj-mobile-nav-drawer .wj-mobile-nav-head{padding-top:8px}
/* Centro en el cajón: un solo botón grande que abre la lista. */
.wj-venue-drawer-trigger{display:flex;align-items:center;gap:11px;width:100%;min-height:54px;padding:8px 12px;border:1px solid var(--border);border-radius:16px;background:var(--surface-sunken);color:var(--text);font:inherit;text-align:left;cursor:pointer}
.wj-venue-drawer-trigger.hq{border-color:color-mix(in srgb,var(--accent) 40%,var(--border))}
.wj-venue-drawer-ico{display:grid;place-items:center;flex:none;width:34px;height:34px;border-radius:12px;background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent)}
.wj-venue-drawer-txt{display:flex;flex:1;flex-direction:column;min-width:0;line-height:1.2}
.wj-venue-drawer-txt small{color:var(--muted);font-size:12px;font-weight:600}
.wj-venue-drawer-txt strong{overflow:hidden;font-size:15px;text-overflow:ellipsis;white-space:nowrap}
.wj-venue-drawer-cta{display:inline-flex;align-items:center;gap:3px;flex:none;color:var(--accent);font-size:13px;font-weight:700}
.wj-venue-drawer-cta svg{transform:rotate(90deg);transition:transform .2s}
.wj-venue-drawer-trigger[aria-expanded="true"] .wj-venue-drawer-cta svg{transform:rotate(-90deg)}
.wj-venue-switcher.is-drawer .wj-venue-option{min-height:46px}
.wj-venue-switcher.is-drawer .wj-venue-option>svg:last-child:not(:first-child){margin-left:auto;color:var(--accent)}
@media (prefers-reduced-motion:reduce){html[data-layout="mobile"] .wj-mobile-nav-drawer{transition:opacity .18s ease}}
/* Avisos de arriba que se recogen al bajar (html.wj-notices-hidden, ver TOP_NOTICES en app.js). */
.wj-shop-testbar,.wj-impersonation-bar{max-height:420px;overflow:hidden;transition:max-height .3s cubic-bezier(.2,.8,.2,1),padding .3s cubic-bezier(.2,.8,.2,1),opacity .2s ease,border-width .3s}
html.wj-notices-hidden .wj-shop-testbar,html.wj-notices-hidden .wj-trial-slot,html.wj-notices-hidden .wj-impersonation-bar{max-height:0;padding-top:0;padding-bottom:0;border-top-width:0;border-bottom-width:0;opacity:0}
html.wj-notices-instant,html.wj-notices-instant body{overflow-anchor:none}
html.wj-notices-instant .wj-shop-testbar,html.wj-notices-instant .wj-trial-slot,html.wj-notices-instant .wj-impersonation-bar{transition:none}
@media (prefers-reduced-motion:reduce){.wj-shop-testbar,.wj-trial-slot,.wj-impersonation-bar{transition:none}}/* ---------- Móvil: barras de filtros ----------
   El buscador va en su propia fila, a todo lo ancho; debajo, los filtros y el botón de crear, que se
   reparten la fila y bajan a otra si no caben (nada se sale de la pantalla ni se monta encima). */
html[data-layout="mobile"] .wj-toolbar,html[data-layout="mobile"] .wj-toolbar.wj-toolbar-fit{flex-wrap:wrap;align-items:center;gap:8px;overflow:visible}
html[data-layout="mobile"] .wj-toolbar>.wj-search{order:-1;flex:1 1 100%;width:100%;min-width:0;max-width:none}
html[data-layout="mobile"] .wj-toolbar>.wj-search input{width:100%;min-height:44px}
html[data-layout="mobile"] .wj-toolbar>.wj-select,html[data-layout="mobile"] .wj-toolbar>select{flex:1 1 140px;min-width:0;min-height:44px}
html[data-layout="mobile"] .wj-toolbar>.wj-btn.primary{flex:0 0 auto;min-height:44px;margin-left:auto}
html[data-layout="mobile"] .wj-toolbar>.wj-seg{flex:0 0 auto}
html[data-layout="mobile"] .wj-toolbar>span:empty{display:none}
/* ---------- Móvil: barra de arriba ----------
   Fichar es un botón redondo con su luz (sin texto) y el calendario pasa a «Más»: así caben campana y avatar. */
@media (max-width:699px){
 .wj-fj-pill{width:36px;min-width:36px;padding:0;justify-content:center}
 .wj-fj-pill .wj-fj-pill-txt{display:none}
 .wj-fj-pill .wj-light{width:12px;height:12px}
 .wj-topbar .wj-top-actions .wj-calendar-launcher{display:none!important}
}

/* ---------- Personal en el móvil ----------
   Todas las filas comparten columnas (antes cada fila calculaba las suyas y no cuadraban con la cabecera):
   nombre ancho y el estado solo con su luz y su palabra. */
@media (max-width:699px){
 .wj-staff-row{grid-template-columns:30px minmax(0,1fr) 96px 18px;gap:10px}
 .wj-staff-state small{display:none}
}

/* ---------- Aviso de cuenta demo: botón de cerrar ---------- */
.wj-demo-banner{position:relative;padding-right:46px}
.wj-demo-banner-x{position:absolute;top:50%;right:8px;display:grid;place-items:center;width:32px;height:32px;margin-top:-16px;border:0;border-radius:50%;background:color-mix(in srgb,var(--text) 10%,transparent);color:inherit;cursor:pointer}
.wj-demo-banner-x:hover{background:color-mix(in srgb,var(--text) 16%,transparent)}

/* ---------- Avisos de arriba: recogida fluida ----------
   Se anima la altura real con una fila de rejilla (1fr → 0fr), no un max-height enorme (que esperaba sin
   moverse y luego se cerraba de golpe). */
.wj-trial-slot{display:grid;grid-template-rows:1fr;max-height:none;opacity:1;transition:grid-template-rows .34s cubic-bezier(.32,.72,0,1),opacity .24s ease}
.wj-trial-slot>*{min-height:0;overflow:hidden}
html.wj-notices-hidden .wj-trial-slot,.wj-trial-slot.is-closing{grid-template-rows:0fr;max-height:none;opacity:0}
.wj-shop-testbar{max-height:90px}
.wj-impersonation-bar{max-height:70px}
@media (prefers-reduced-motion:reduce){.wj-trial-slot{transition:none}}

/* ---------- «Más» en el móvil: se sigue al dedo con transform (fluido) y vuelve con un muelle ---------- */
html[data-layout="mobile"] .wj-mobile-nav-drawer{will-change:transform;transition:transform .42s cubic-bezier(.32,.72,0,1),opacity .2s ease}
html[data-layout="mobile"] .wj-mobile-nav-drawer.is-dragging{transition:none}

/* ---------- Entrada de las listas ----------
   Al abrir una pantalla (#content.wj-enter) las tarjetas aparecen una tras otra, subiendo un poco. */
@keyframes wj-enter-up{from{opacity:0;transform:translate3d(0,12px,0)}to{opacity:1;transform:none}}
#content.wj-enter .wj-list>.wj-row,#content.wj-enter .wj-product-grid>*,#content.wj-enter .wj-home-stats>*,#content.wj-enter .wj-mk-tiles>*,#content.wj-enter .wj-grid>.wj-card,#content.wj-enter .wj-stack>.wj-card,#content.wj-enter .wj-dash-grid>*{animation:wj-enter-up .46s cubic-bezier(.22,1,.36,1) both}
#content.wj-enter :is(.wj-list>.wj-row,.wj-product-grid>*,.wj-home-stats>*,.wj-mk-tiles>*,.wj-grid>.wj-card,.wj-stack>.wj-card,.wj-dash-grid>*):nth-child(2){animation-delay:.04s}
#content.wj-enter :is(.wj-list>.wj-row,.wj-product-grid>*,.wj-home-stats>*,.wj-mk-tiles>*,.wj-grid>.wj-card,.wj-stack>.wj-card,.wj-dash-grid>*):nth-child(3){animation-delay:.08s}
#content.wj-enter :is(.wj-list>.wj-row,.wj-product-grid>*,.wj-home-stats>*,.wj-mk-tiles>*,.wj-grid>.wj-card,.wj-stack>.wj-card,.wj-dash-grid>*):nth-child(4){animation-delay:.12s}
#content.wj-enter :is(.wj-list>.wj-row,.wj-product-grid>*,.wj-home-stats>*,.wj-mk-tiles>*,.wj-grid>.wj-card,.wj-stack>.wj-card,.wj-dash-grid>*):nth-child(5){animation-delay:.16s}
#content.wj-enter :is(.wj-list>.wj-row,.wj-product-grid>*,.wj-home-stats>*,.wj-mk-tiles>*,.wj-grid>.wj-card,.wj-stack>.wj-card,.wj-dash-grid>*):nth-child(6){animation-delay:.2s}
#content.wj-enter :is(.wj-list>.wj-row,.wj-product-grid>*,.wj-home-stats>*,.wj-mk-tiles>*,.wj-grid>.wj-card,.wj-stack>.wj-card,.wj-dash-grid>*):nth-child(7){animation-delay:.24s}
#content.wj-enter :is(.wj-list>.wj-row,.wj-product-grid>*,.wj-home-stats>*,.wj-mk-tiles>*,.wj-grid>.wj-card,.wj-stack>.wj-card,.wj-dash-grid>*):nth-child(8){animation-delay:.28s}
#content.wj-enter :is(.wj-list>.wj-row,.wj-product-grid>*,.wj-home-stats>*,.wj-mk-tiles>*,.wj-grid>.wj-card,.wj-stack>.wj-card,.wj-dash-grid>*):nth-child(9){animation-delay:.32s}
#content.wj-enter :is(.wj-list>.wj-row,.wj-product-grid>*,.wj-home-stats>*,.wj-mk-tiles>*,.wj-grid>.wj-card,.wj-stack>.wj-card,.wj-dash-grid>*):nth-child(n+10){animation-delay:.36s}
@media (prefers-reduced-motion:reduce){#content.wj-enter *{animation:none!important}}
/* Inicio: los KPI y los paneles (gráfica, por llegar, movimiento…) también entran uno tras otro. */
#content.wj-enter .wj-board-kpis>*,#content.wj-enter .wj-board-main>.wj-board-panel,#content.wj-enter .wj-board-side>*,#content.wj-enter .wj-home-main>*,#content.wj-enter .wj-home-side>*{animation:wj-enter-up .46s cubic-bezier(.22,1,.36,1) both}
#content.wj-enter .wj-board-kpis>:nth-child(2){animation-delay:.05s}
#content.wj-enter .wj-board-kpis>:nth-child(3){animation-delay:.1s}
#content.wj-enter .wj-board-kpis>:nth-child(4){animation-delay:.15s}
#content.wj-enter .wj-board-main>:nth-child(2),#content.wj-enter .wj-board-side>:nth-child(2){animation-delay:.2s}
#content.wj-enter .wj-board-main>:nth-child(n+3),#content.wj-enter .wj-board-side>:nth-child(n+3){animation-delay:.26s}
#content.wj-enter .wj-home-main>*,#content.wj-enter .wj-home-side>*{animation-delay:.42s}
/* ---------- Móvil: se desplaza la PÁGINA, no una caja interior ----------
   Safari (y Chrome) solo recogen su barra de abajo cuando se desplaza el documento. Con #content como caja
   con scroll la barra nunca se recogía y debajo quedaba una franja. Ahora en el panel del móvil se desplaza
   la página entera (como uelta.com): la barra de arriba del panel se queda pegada arriba, la de abajo flota,
   y la barra del navegador se recoge al bajar. Solo en el panel (.wj-shell); el chat y la caja siguen igual. */
html[data-layout="mobile"]:has(.wj-shell),html[data-layout="mobile"]:has(.wj-shell) body,html[data-layout="mobile"]:has(.wj-shell) #app{height:auto!important;min-height:100%;overflow:visible!important}
html[data-layout="mobile"]:has(.wj-shell) body{background:var(--surface-canvas,var(--bg))}
html[data-layout="mobile"] .wj-shell{height:auto!important;min-height:100lvh!important;overflow:visible!important}
html[data-layout="mobile"] .wj-main{display:block!important;height:auto!important;min-height:100lvh;overflow:visible!important}
html[data-layout="mobile"] .wj-topbar{position:sticky!important;top:0;z-index:40}
html[data-layout="mobile"] .wj-content{height:auto!important;min-height:0!important;overflow:visible!important;padding-bottom:calc(110px + var(--safe))!important}
@supports not selector(:has(*)){html[data-layout="mobile"] .wj-shell,html[data-layout="mobile"] .wj-main{height:100dvh!important;overflow:hidden!important}html[data-layout="mobile"] .wj-content{height:100%!important;overflow-y:auto!important}}
/* En el móvil la página se desplaza: la barra de abajo va fija a la pantalla (antes, absoluta dentro del marco que no se movía). */
html[data-layout="mobile"] .wj-shell .wj-mobile-dock{position:fixed!important;z-index:60}
/* ---------- Móvil: listas limpias (como el panel de WorldJump) ----------
   Tarjetas separadas, título en una línea con «…», los datos en una sola línea separados por « · »,
   la etiqueta de estado del mismo ancho a la derecha y una flecha al final. */
html[data-layout="mobile"] .wj-list.wj-list-full{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;overflow:visible}
html[data-layout="mobile"] .wj-list-full>.wj-row{display:flex;align-items:center;gap:12px;min-height:66px;margin:0;padding:12px 12px 12px 14px;border-radius:16px}
html[data-layout="mobile"] .wj-list-full>.wj-row>div:has(>.wj-row-title){flex:1 1 auto;min-width:0}
html[data-layout="mobile"] .wj-list-full>.wj-row>.wj-row-thumb{width:48px;height:48px;border-radius:12px}
html[data-layout="mobile"] .wj-list-full>.wj-row>div:last-child:not(:has(>.wj-row-title)){flex:none;display:flex;align-items:center}
html[data-layout="mobile"] .wj-list-full .wj-row-title{overflow:hidden;font-size:16px;font-weight:700;line-height:1.3;text-overflow:ellipsis;white-space:nowrap}
html[data-layout="mobile"] .wj-list-full .wj-row-meta{display:block!important;margin-top:3px;overflow:hidden;color:var(--muted);font-size:13px;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}
html[data-layout="mobile"] .wj-list-full .wj-row-meta>*{display:inline!important;margin:0!important;padding:0!important;border:0!important;background:none!important;white-space:nowrap}
html[data-layout="mobile"] .wj-list-full .wj-row-meta>*+*::before{content:" · ";color:var(--muted);font-weight:400}
html[data-layout="mobile"] .wj-list-full>.wj-row .wj-badge{display:inline-flex;justify-content:center;min-width:84px}
html[data-layout="mobile"] .wj-list-full>.wj-row[data-item-id]::after{content:"";flex:none;width:8px;height:8px;margin:0 4px 0 2px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(-45deg);opacity:.8}

/* ---------- Móvil: sin «estirar» la página más allá del borde ----------
   Al tirar más allá de arriba o de abajo la página ya no se despega (la barra de arriba se quedaba fuera). */
html[data-layout="mobile"]:has(.wj-shell),html[data-layout="mobile"]:has(.wj-shell) body{overscroll-behavior-y:none}

/* ---------- Cargando: una sola señal ----------
   En el móvil basta la línea de progreso de arriba (sin el círculo de la barra) y el esqueleto con brillo:
   el texto «Cargando…» sin su propio círculo. */
html[data-layout="mobile"] #nav-loading{display:none!important}
.wj-loading-head .wj-spinner,.wj-loading-head [data-lottie],.wj-loading-head .wj-lottie{display:none}
.wj-loading-head{animation:wj-pulse-text 1.4s ease-in-out infinite}
@keyframes wj-pulse-text{0%,100%{opacity:.55}50%{opacity:1}}
@media (prefers-reduced-motion:reduce){.wj-loading-head{animation:none}}

/* ---------- Fichar en el móvil: el reloj con su luz (antes un círculo gris que parecía «cargando») ---------- */
.wj-fj-pill-ico{display:none}
@media (max-width:699px){
 .wj-fj-pill .wj-fj-pill-ico{display:grid;place-items:center}
 .wj-fj-pill>.wj-light{position:absolute;right:2px;bottom:2px;width:10px!important;height:10px!important;box-shadow:0 0 0 2px var(--surface-raised,var(--surface))!important}
}
/* Móvil: el botón de crear («Nuevo cliente», «Añadir producto», «Nueva reserva»…) va a la derecha del
   buscador como un «+» redondo (como en iOS); los demás filtros, en la fila de abajo a todo lo ancho. */
html[data-layout="mobile"] .wj-toolbar>.wj-search{order:-2;flex:1 1 0;width:auto}
html[data-layout="mobile"] .wj-toolbar>.wj-btn.primary{order:-1;flex:0 0 44px;width:44px;height:44px;min-height:44px;margin-left:0;padding:0;border-radius:50%;font-size:0;gap:0;justify-content:center}
html[data-layout="mobile"] .wj-toolbar>.wj-btn.primary svg{width:20px;height:20px}
html[data-layout="mobile"] .wj-toolbar>.wj-btn.primary>:not(svg){display:none}
html[data-layout="mobile"] .wj-toolbar>.wj-select,html[data-layout="mobile"] .wj-toolbar>select{flex:1 1 100%}
/* ---------- chat.<dominio> en el móvil: igual que Gestión ----------
   Barra de abajo flotante de cristal (separada de los bordes, con la pastilla del elegido), la app llega
   hasta abajo del todo (sin franja negra bajo la barra del navegador), la barra de arriba del mismo color que
   la de estado y, dentro de una conversación, la barra de abajo se esconde para dejar sitio al teclado y al
   campo de escribir (como en Mensajes o WhatsApp). */
@media (max-width:900px){
 .uc-app{height:100lvh;background:var(--bg)}
 .uc-main{padding-bottom:0}
 .uc-top{background:color-mix(in srgb,var(--bg) 86%,transparent);backdrop-filter:saturate(1.4) blur(20px);-webkit-backdrop-filter:saturate(1.4) blur(20px);border-bottom:1px solid color-mix(in srgb,var(--border) 60%,transparent)}
 .uc-content{padding-bottom:calc(96px + env(safe-area-inset-bottom) + (100lvh - 100svh))}
 .uc-on-inbox .uc-content{padding:10px 10px calc(84px + env(safe-area-inset-bottom) + (100lvh - 100svh))}
 .uc-dock{left:12px;right:12px;bottom:calc(10px + env(safe-area-inset-bottom));height:62px;padding:5px;border:1px solid color-mix(in srgb,var(--border) 72%,transparent);border-radius:24px;background:color-mix(in srgb,var(--surface) 72%,transparent);backdrop-filter:saturate(1.6) blur(22px);-webkit-backdrop-filter:saturate(1.6) blur(22px);box-shadow:0 18px 44px -14px rgba(2,6,23,.6);transition:transform .32s cubic-bezier(.32,.72,0,1),opacity .2s}
 .uc-dock button{height:100%;border-radius:16px;font-size:11px;font-weight:700;transition:background .2s,color .2s}
 .uc-dock button.active{background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent)}
 .uc-dock .uc-nav-count{box-shadow:0 0 0 2px color-mix(in srgb,var(--surface) 90%,transparent)}
 /* Dentro de una conversación: sin barra de abajo y el campo de escribir pegado abajo. */
 .uc-app:has(.wj-chat.has-conv) .uc-dock{transform:translateY(calc(100% + 24px));opacity:0;pointer-events:none}
 .uc-on-inbox .uc-content:has(.wj-chat.has-conv){padding-bottom:calc(10px + env(safe-area-inset-bottom) + (100lvh - 100svh))}
}
@supports not (height:100lvh){@media (max-width:900px){.uc-app{height:100dvh}.uc-content,.uc-on-inbox .uc-content{padding-bottom:calc(84px + env(safe-area-inset-bottom))}}}
/* ---------- Móvil: el menú de la sección («≡» arriba a la izquierda) entra deslizándose ----------
   Dos reglas posteriores dejaban su transición solo en opacidad y aparecía de golpe. Ahora entra desde la
   izquierda con la misma curva que el cajón de chat.<dominio>, con el fondo oscureciéndose a la vez; al
   cerrar, sale igual. */
html[data-layout="mobile"] .wj-secondary-sidebar{transform:translate3d(-104%,0,0);opacity:1;visibility:visible;transition:transform .32s cubic-bezier(.2,.8,.2,1)!important;will-change:transform;border-radius:0 22px 22px 0;box-shadow:24px 0 70px rgba(2,6,23,.45)}
html[data-layout="mobile"].secondary-open .wj-secondary-sidebar{transform:none}
html[data-layout="mobile"]:has(.wj-shell)::after{content:'';position:fixed;inset:0;z-index:89;background:rgba(6,10,24,.45);opacity:0;pointer-events:none;transition:opacity .28s ease}
html[data-layout="mobile"].secondary-open::after{opacity:1;pointer-events:auto}
@media (prefers-reduced-motion:reduce){html[data-layout="mobile"] .wj-secondary-sidebar,html[data-layout="mobile"]:has(.wj-shell)::after{transition:none!important}}
/* Menú de la cuenta: idioma del panel a un toque (segmentos ES · EN · FR · IT · 中文). */
.wj-user-pop-lang{display:grid;gap:8px;margin:4px 0;padding:10px 10px 12px;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.wj-user-pop-lang>span{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:12px;font-weight:700}
.wj-user-pop-lang>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;padding:3px;border-radius:12px;background:var(--surface2)}
.wj-user-pop-lang button{min-height:32px;padding:0 4px;border:0;border-radius:8px;background:none;color:var(--muted);font:inherit;font-size:13px;font-weight:700;cursor:pointer;transition:background .15s,color .15s}
.wj-user-pop-lang button:hover{color:var(--text)}
.wj-user-pop-lang button.on{background:var(--surface-raised,var(--surface));color:var(--text);box-shadow:0 1px 3px rgba(2,6,23,.25)}
/* ---------- «Más» del móvil a pantalla completa (como Revolut) ----------
   Al tocar «Más» la hoja sube desde abajo hasta arriba del todo y ocupa la pantalla; sin «×»: se cierra
   tirando hacia abajo desde arriba y baja hasta desaparecer. Toda la hoja se desplaza (también el selector
   Claro/Oscuro, que ya no flota encima del contenido). Cerrada queda oculta del todo (visibility), sin
   ningún trozo asomando por debajo de la barra del navegador. */
html[data-layout="mobile"] .wj-mobile-nav-drawer{top:0!important;left:0!important;right:0!important;bottom:0!important;height:100lvh;max-height:none!important;padding:env(safe-area-inset-top) 0 calc(24px + env(safe-area-inset-bottom));border:0;border-radius:0;background:var(--bg);box-shadow:none;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;transform:translate3d(0,100%,0);opacity:1;visibility:hidden;transition:transform .46s cubic-bezier(.32,.72,0,1),visibility 0s linear .46s;z-index:120}
html[data-layout="mobile"].mobile-nav-open .wj-mobile-nav-drawer{transform:none;visibility:visible;transition:transform .46s cubic-bezier(.32,.72,0,1),visibility 0s}
html[data-layout="mobile"] .wj-mobile-nav-drawer.is-dragging{transition:none!important}
html[data-layout="mobile"] .wj-mobile-nav-drawer nav{flex:none;overflow:visible;padding:8px 14px 12px}
html[data-layout="mobile"] .wj-mobile-nav-drawer .wj-sheet-grip{width:44px;margin:10px auto 2px}
html[data-layout="mobile"] .wj-mobile-nav-drawer .wj-mobile-nav-head{position:sticky;top:0;z-index:2;padding:6px 18px 12px;border-bottom:0;background:var(--bg)}
html[data-layout="mobile"] #mobile-nav-close{display:none!important}
html[data-layout="mobile"] .wj-mobile-nav-venue{padding:4px 14px 10px}
html[data-layout="mobile"] .wj-mobile-nav-theme{position:static;padding:18px 0 6px}
html[data-layout="mobile"] .wj-mobile-nav-backdrop{display:none!important}
@media (prefers-reduced-motion:reduce){html[data-layout="mobile"] .wj-mobile-nav-drawer{transition:none!important}}
/* Un solo idioma en la cuenta: el nombre y el enlace para elegir «mi idioma». */
.wj-user-pop-lang.is-single .wj-user-pop-lang-one{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 10px;background:none}
.wj-user-pop-lang .wj-user-pop-lang-one b{font-size:14px}
/* chat.<dominio> en el móvil: la página no se recorta a la altura «pequeña» (la de encima de la barra de
   Safari): html/body/#app dejan de ocultar lo que sobra y la app (100lvh) se pinta también por detrás de la
   barra del navegador, como en Gestión. */
@media (max-width:900px){
 html:has(.uc-app),html:has(.uc-app) body,html:has(.uc-app) #app{height:auto!important;min-height:100%;overflow:visible!important;background:var(--bg)}
 html:has(.uc-app) body{overscroll-behavior-y:none}
}
/* «Más» abierta y quieta = la página: el resto del panel se oculta y la hoja va en el flujo (así Safari
   pinta su contenido también por detrás de la barra de abajo y la recoge al desplazar). */
html[data-layout="mobile"].mobile-nav-page .wj-shell>:not(.wj-mobile-nav-drawer){display:none!important}
html[data-layout="mobile"].mobile-nav-page .wj-mobile-nav-drawer{position:relative!important;top:auto!important;bottom:auto!important;height:auto!important;min-height:100lvh;overflow:visible!important;transform:none!important;transition:none!important;visibility:visible}
/* Barra de arriba en el móvil con el mismo vidrio que la barra de abajo: translúcida y desenfocada, el contenido
 pasa por detrás al desplazar; los botones redondos también son de vidrio. */
html[data-layout="mobile"] body:not(.wj-public-body) .wj-topbar{background:color-mix(in srgb,var(--bg) 66%,transparent)!important;backdrop-filter:blur(26px) saturate(155%)!important;-webkit-backdrop-filter:blur(26px) saturate(155%)!important;border-bottom:1px solid color-mix(in srgb,var(--border) 55%,transparent)!important}
html[data-layout="mobile"] .wj-topbar .wj-top-actions>.wj-btn.icon,html[data-layout="mobile"] .wj-topbar .wj-top-avatar,html[data-layout="mobile"] .wj-topbar .wj-fj-pill{background:color-mix(in srgb,var(--surface) 70%,transparent)!important;border:1px solid color-mix(in srgb,var(--border) 72%,transparent)!important;backdrop-filter:blur(18px) saturate(150%);-webkit-backdrop-filter:blur(18px) saturate(150%)}
/* Barra de herramientas en el móvil, sin huecos: 1ª fila buscar + «+»; 2ª fila los filtros (más cortos, comparten
 la fila) y el botón de ordenar al final (tuckSortIntoToolbar lo sube aquí); las etiquetas de estado en una fila
 que se desliza. Un «Nuevo» sin icono muestra «+» (antes salía un círculo vacío). */
html[data-layout="mobile"] .wj-toolbar>.wj-search{flex:1 1 calc(100% - 60px)!important}
html[data-layout="mobile"] .wj-toolbar:not(:has(>.wj-btn.primary))>.wj-search{flex-basis:100%!important}
html[data-layout="mobile"] .wj-toolbar>.wj-select,html[data-layout="mobile"] .wj-toolbar>select{flex:1 1 0!important;max-width:none!important;width:auto}
html[data-layout="mobile"] .wj-toolbar>.wj-date-filter{flex:1 1 0;min-width:0}
html[data-layout="mobile"] .wj-toolbar>.wj-date-filter .wj-input{width:100%;min-height:44px}
html[data-layout="mobile"] .wj-toolbar>.wj-calendar-period{flex:1 1 0;min-width:0;min-height:44px;justify-content:center}
html[data-layout="mobile"] .wj-toolbar>.wj-sort-tucked{order:20;flex:0 0 44px;width:44px;height:44px;min-height:44px;padding:0;border-radius:50%;font-size:0;gap:0;justify-content:center}
html[data-layout="mobile"] .wj-toolbar>.wj-sort-tucked svg{width:18px;height:18px}
html[data-layout="mobile"] .wj-list-sortbar.is-empty{display:none}
html[data-layout="mobile"] .wj-bookings-sortbar.is-tucked{padding:0 2px;margin:0 0 6px;min-height:0}
html[data-layout="mobile"] .wj-toolbar>.wj-btn.primary:not(:has(svg))::before{content:"+";font-size:24px;line-height:1;font-weight:500}
html[data-layout="mobile"] .wj-filter-chips{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin-inline:-12px;padding-inline:12px;scroll-padding-inline:12px}
html[data-layout="mobile"] .wj-filter-chips::-webkit-scrollbar{display:none}
html[data-layout="mobile"] .wj-filter-chips>.wj-filter-chip{flex:0 0 auto}
html[data-layout="mobile"] .wj-toolbar>.wj-calendar-period,html[data-layout="mobile"] .wj-toolbar>.wj-select,html[data-layout="mobile"] .wj-toolbar>select{border-radius:16px}
html[data-layout="mobile"] .wj-toolbar>.wj-btn.primary{margin:0!important}
html[data-layout="mobile"] .wj-toolbar>.wj-range-wrap{flex:1 1 auto;display:flex}
html[data-layout="mobile"] .wj-toolbar>.wj-range-wrap>.wj-btn{flex:1;justify-content:center}
html[data-layout="mobile"] .wj-toolbar>.wj-status-tabs.wj-inc-view{flex:1 1 100%;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr)}
html[data-layout="mobile"] .wj-toolbar>.wj-status-tabs.wj-inc-view>button{justify-content:center}
/* Solo buscar, ordenar y «+»: los tres en una fila (sin una segunda fila con un botón suelto). */
html[data-layout="mobile"] .wj-toolbar:has(>.wj-sort-tucked):not(:has(>:not(.wj-search,.wj-btn.primary,.wj-sort-tucked,span:empty)))>.wj-search{flex-basis:calc(100% - 112px)!important}
html[data-layout="mobile"] .wj-toolbar:has(>.wj-sort-tucked):not(:has(>:not(.wj-search,.wj-btn.primary,.wj-sort-tucked,span:empty)))>.wj-sort-tucked{order:-1}
html[data-layout="mobile"] .wj-toolbar:has(>.wj-sort-tucked):not(:has(>:not(.wj-search,.wj-btn.primary,.wj-sort-tucked,span:empty)))>.wj-btn.primary{order:0}
/* Anuncio del acceso «Próximamente · Uelta App»: dos móviles (portada del parque y entradas con QR). */
.wj-lsx-phone{position:absolute;top:16px;width:164px;height:250px;padding:22px 11px 11px;border-radius:26px;background:rgb(255,255,255);border:5px solid rgb(15,23,42);box-shadow:0 22px 50px rgba(2,6,23,.45);display:flex;flex-direction:column;gap:7px}
.wj-lsx-phone.one{left:34px;transform:rotate(-4deg)}
.wj-lsx-phone.two{left:222px;top:28px;transform:rotate(3deg)}
.wj-lsx-notch{position:absolute;top:6px;left:50%;width:44px;height:9px;margin-left:-22px;border-radius:8px;background:rgb(15,23,42)}
.wj-lsx-hero{display:grid;justify-items:center;gap:2px;padding:10px 6px;border-radius:16px;background:linear-gradient(140deg,rgb(59,130,246),rgb(147,51,234));color:rgb(255,255,255)}
.wj-lsx-logo{width:30px;height:30px;border-radius:12px;background:rgba(255,255,255,.22);display:grid;place-items:center;font-weight:800;font-size:11px}
.wj-lsx-hero strong{font-size:12px}.wj-lsx-hero small{font-size:11px;opacity:.85}
.wj-lsx-row{display:flex;justify-content:space-between;align-items:center;gap:6px;padding:7px 8px;border-radius:12px;background:rgb(241,245,249);font-size:11px}
.wj-lsx-price{font-weight:800;color:rgb(37,99,235);white-space:nowrap}
.wj-lsx-buy{margin-top:auto;padding:8px;border-radius:12px;background:rgb(15,23,42);color:rgb(255,255,255);text-align:center;font-weight:800;font-size:11px}
.wj-lsx-tabs{display:flex;justify-content:space-around;padding-top:3px}.wj-lsx-tabs i{width:14px;height:4px;border-radius:3px;background:rgb(203,213,225)}.wj-lsx-tabs i.on{background:rgb(37,99,235)}
.wj-lsx-h{font-size:13px}
.wj-lsx-ticket{display:grid;justify-items:center;gap:4px;padding:12px 8px;border-radius:14px;background:rgb(248,250,252);border:1px dashed rgb(203,213,225);text-align:center}
.wj-lsx-qr{width:70px;height:70px;border:5px solid rgb(255,255,255);outline:2px solid rgb(15,23,42);background:repeating-conic-gradient(rgb(15,23,42) 0 25%,rgb(255,255,255) 0 50%) 0 0/13px 13px}
.wj-lsx-ticket small{font-size:8.5px;color:rgb(100,116,139)}
.wj-lsx-note{margin-top:auto;display:flex;gap:5px;align-items:center;padding:7px 8px;border-radius:12px;background:rgb(220,252,231);color:rgb(21,128,61);font-size:11px;font-weight:700}
.wj-lsx-float{right:20px;bottom:24px}
@media(max-height:760px){.wj-lsx-phone{height:212px;top:16px;gap:5px}.wj-lsx-phone.two{top:26px}.wj-lsx-hero{padding:5px}.wj-lsx-logo{display:none}.wj-lsx-qr{width:52px;height:52px}}
/* «App móvil» (próximamente): en el menú en gris, como algo que aún no está; la página explica la idea. */
.wj-secondary-sidebar [data-shell-route="app"],.wj-mobile-nav-drawer button.is-soon{opacity:.5;filter:grayscale(1)}
.wj-secondary-sidebar [data-shell-route="app"]:hover,.wj-mobile-nav-drawer button.is-soon:hover,.wj-secondary-sidebar [data-shell-route="app"].active{opacity:.8}
.wj-soon-tag{margin-left:auto;padding:2px 8px;border-radius:999px;background:var(--surface2);color:var(--muted);font-size:11px;font-style:normal;font-weight:800}
.wj-app-concept{display:grid;gap:14px;max-width:1120px}
.wj-app-hero{display:grid;grid-template-columns:minmax(0,1fr) 420px;gap:22px;align-items:center;padding:24px}
.wj-app-hero h1{font-size:32px;letter-spacing:-.02em;margin:10px 0 8px}
.wj-app-hero-copy p{margin:0 0 10px;line-height:1.55}
.wj-app-soon{display:inline-flex;gap:6px;align-items:center;padding:5px 11px;border-radius:999px;background:var(--surface2);color:var(--muted);font-size:12px;font-weight:800}
.wj-app-mock{margin-top:0;filter:saturate(.75)}
.wj-app-block{padding:20px}.wj-app-block h2{font-size:18px;margin:0 0 14px}
.wj-app-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.wj-app-steps li{display:grid;align-content:start;gap:6px;padding:14px;border-radius:16px;background:var(--surface2)}
.wj-app-steps b{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:var(--accent);color:rgb(255,255,255);font-size:13px}
.wj-app-steps p,.wj-app-gain p{margin:0;color:var(--muted);font-size:13px;line-height:1.5}
.wj-app-gains{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.wj-app-gain{display:flex;gap:12px;padding:14px;border-radius:16px;background:var(--surface2)}
.wj-app-gain>span{flex:0 0 36px;height:36px;border-radius:12px;display:grid;place-items:center;background:var(--surface);color:var(--accent)}
.wj-app-gain strong{display:block;margin-bottom:3px}
.wj-app-phases{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.wj-app-phases>div{display:grid;gap:4px;padding:12px 14px;border-radius:16px;border:1px solid var(--border)}
.wj-app-phases>div.on{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,transparent)}
.wj-app-phases small{color:var(--muted);font-size:11px;font-weight:700}
.wj-app-phases em{font-style:normal;font-size:11px;font-weight:800;color:var(--accent)}
@media(max-width:1000px){.wj-app-hero{grid-template-columns:1fr}.wj-app-steps{grid-template-columns:repeat(2,minmax(0,1fr))}.wj-app-phases{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.wj-app-hero{padding:18px}.wj-app-hero h1{font-size:26px}.wj-app-steps,.wj-app-gains{grid-template-columns:1fr}.wj-app-mock{height:300px}.wj-app-mock .wj-lsx-phone.one{left:8px}.wj-app-mock .wj-lsx-phone.two{left:auto;right:8px}}
/* Calendario del mes como un calendario de entrenos: resumen arriba, rejilla fina y pastillas de color. */
.wj-cal-c,.c0.wj-cal-pill,.c0.wj-cal-stat{--cal:rgb(59,130,246)}
.wj-cal-pill.c1,.wj-cal-stat.c1{--cal:rgb(34,197,94)}.wj-cal-pill.c2,.wj-cal-stat.c2{--cal:rgb(168,85,247)}.wj-cal-pill.c3,.wj-cal-stat.c3{--cal:rgb(249,115,22)}
.wj-cal-pill.c4,.wj-cal-stat.c4{--cal:rgb(236,72,153)}.wj-cal-pill.c5,.wj-cal-stat.c5{--cal:rgb(20,184,166)}.wj-cal-pill.c6,.wj-cal-stat.c6{--cal:rgb(234,179,8)}
.wj-cal-stats{display:flex;margin:0 0 14px;padding:14px 4px;border:1px solid var(--border);border-radius:20px;background:var(--surface);overflow-x:auto;scrollbar-width:none}
.wj-cal-stats::-webkit-scrollbar{display:none}
.wj-cal-stat{flex:1 0 auto;display:flex;align-items:center;gap:10px;padding:0 18px;border-left:1px solid var(--border);min-width:0}
.wj-cal-stat:first-child{border-left:0}
.wj-cal-stat small{display:block;max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:12px;font-weight:700}
.wj-cal-stat strong{display:block;font-size:26px;line-height:1.1;font-weight:850;letter-spacing:-.02em;color:var(--cal,var(--text))}
.wj-cal-stat-ico{display:grid;place-items:center;color:var(--muted)}
.wj-cal-stat-dot{flex:0 0 12px;height:12px;border-radius:4px;background:var(--cal)}
.wj-cal-month{margin:0 0 16px;padding:14px 10px 10px;border:1px solid var(--border);border-radius:20px;background:var(--surface)}
.wj-cal-month-title{margin:2px 6px 12px;font-size:22px;font-weight:850;letter-spacing:-.02em;text-transform:capitalize}
.wj-cal-wd{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-radius:10px 10px 0 0;background:var(--surface2)}
.wj-cal-wd span{padding:7px 0;text-align:center;font-size:12px;font-weight:700;color:var(--muted)}
.wj-cal-month .calendar-month-grid.wj-cal-cells{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:0;margin:0;padding:0;border:0;background:none}
.wj-cal-month .wj-cal-cell{position:relative;display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:5px;min-width:0;min-height:96px;margin:0;padding:7px 6px;border:0;border-right:1px solid var(--border);border-bottom:1px solid var(--border);border-radius:0;background:transparent;box-shadow:none;color:var(--text);text-align:left;cursor:pointer;aspect-ratio:auto}
.wj-cal-month .wj-cal-cell:nth-child(7n){border-right:0}
.wj-cal-month .wj-cal-cell.empty{cursor:default}
.wj-cal-month .wj-cal-cell:not(.empty):hover{background:var(--surface2)}
.wj-cal-month .wj-cal-cell.selected{background:color-mix(in srgb,var(--accent) 10%,transparent)}
.wj-cal-month .wj-cal-cell .wj-calendar-day-num{align-self:flex-start;font-size:13px;font-weight:600;color:var(--muted)}
.wj-cal-month .wj-cal-cell.has-ev .wj-calendar-day-num{color:var(--text);font-weight:800}
.wj-cal-month .wj-cal-cell.is-today .wj-calendar-day-num{display:inline-grid;place-items:center;min-width:24px;height:24px;margin:-3px 0 0 -3px;border-radius:999px;background:var(--accent);color:rgb(255,255,255);font-weight:800}
.wj-cal-pills{display:grid;gap:4px;min-width:0}
.wj-cal-pill{display:block;min-width:0;padding:3px 7px;border-radius:7px;background:var(--cal);color:rgb(255,255,255);font-size:11px;font-style:normal;font-weight:750;line-height:1.3;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wj-cal-pills em{font-style:normal;font-size:10.5px;font-weight:750;color:var(--muted);text-align:center}
html[data-layout="mobile"] .wj-cal-stats{padding:12px 2px;border-radius:16px}
html[data-layout="mobile"] .wj-cal-stat{padding:0 12px;gap:8px}
html[data-layout="mobile"] .wj-cal-stat strong{font-size:22px}
html[data-layout="mobile"] .wj-cal-stat small{font-size:11px;max-width:96px}
html[data-layout="mobile"] .wj-cal-month{padding:12px 4px 4px;border-radius:16px}
html[data-layout="mobile"] .wj-cal-month-title{font-size:20px;margin:0 8px 10px}
html[data-layout="mobile"] .wj-cal-month .wj-cal-cell{min-height:62px;padding:5px 3px;gap:3px}
html[data-layout="mobile"] .wj-cal-month .wj-cal-cell .wj-calendar-day-num{font-size:12px;padding-left:2px}
html[data-layout="mobile"] .wj-cal-pills{gap:3px}
html[data-layout="mobile"] .wj-cal-pill{padding:2px 3px;border-radius:5px;font-size:9px}
.wj-cal-pill b{font-weight:850}
.wj-cal-pill b+span{margin-left:4px;font-weight:600;opacity:.92}
html[data-layout="mobile"] .wj-cal-pill b+span{display:none}
html[data-layout="mobile"] .wj-calendar-toolbar.wj-scroll-chrome{background:var(--bg)!important;box-shadow:none!important}

/* Páginas públicas: el texto y las fotos no se seleccionan ni se arrastran (ver bindPublicCopyGuard en app.js). */
.wj-public-body{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
.wj-public-body :is(input,textarea,select,[contenteditable=""],[contenteditable="true"],pre,code,.wj-allow-copy),.wj-public-body :is(pre,code,.wj-allow-copy) *{-webkit-user-select:text;user-select:text;-webkit-touch-callout:default}
.wj-public-body :is(img,svg,video){-webkit-user-drag:none}
/* Anuncio del login: tienda protegida (texto que no se copia y robots bloqueados). */
.wj-lsg-shop{position:absolute;left:22px;top:28px;width:250px;padding:13px;border-radius:16px;background:rgb(255,255,255);box-shadow:0 22px 50px rgba(2,6,23,.45);display:grid;gap:11px}
.wj-lsg-head{display:flex;align-items:center;gap:9px}
.wj-lsg-head small{display:block;color:rgb(100,116,139);font-size:11px;font-weight:600}
.wj-lsg-text{display:grid;gap:6px}
.wj-lsg-text i{display:block;height:8px;border-radius:4px;background:rgb(226,232,240)}
.wj-lsg-text i.short{width:60%}
.wj-lsg-copy{display:inline-flex;align-items:center;gap:5px;justify-self:start;padding:4px 9px;border-radius:999px;background:rgb(254,226,226);color:rgb(185,28,28);font-size:11px;font-weight:800}
.wj-lsg-log{position:absolute;right:22px;top:84px;width:200px;padding:12px;border-radius:16px;background:rgb(255,255,255);box-shadow:0 22px 50px rgba(2,6,23,.45);display:grid;gap:7px}
.wj-lsg-log p{display:flex;align-items:center;justify-content:space-between;gap:6px;margin:0;max-width:none;color:rgb(30,41,59);font-size:11px;font-weight:700}
.wj-lsg-log b{display:inline-flex;align-items:center;gap:3px;padding:2px 7px;border-radius:999px;font-size:11px;font-weight:800}
.wj-lsg-log b.no{background:rgb(254,226,226);color:rgb(185,28,28)}
.wj-lsg-log b.ok{background:rgb(220,252,231);color:rgb(21,128,61)}
.wj-lsg-float{left:auto;right:30px;bottom:22px}
@media (max-width:1180px){.wj-lsg-log{display:none}.wj-lsg-shop{left:50%;margin-left:-125px}}
/* Bottom Sheet (/vendor/ux-kit.js): asa de las ventanas en el móvil; se arrastra para cambiar de altura o cerrar. */
html[data-layout="mobile"] .wj-modal-head .ux-grip{position:absolute;left:50%;top:0;width:72px;transform:translateX(-50%);color:var(--text)}
html[data-layout="mobile"] .wj-modal.ux-draggable .wj-modal-head{padding-top:24px;touch-action:none}
/* Anuncio del acceso «Más fácil de usar»: Snackbar con «Deshacer» y Alert Dialog en rojo. */
.wj-lsx-list{position:absolute;left:22px;top:28px;width:250px;padding:12px;border-radius:16px;background:rgb(255,255,255);box-shadow:0 22px 50px rgba(2,6,23,.45);display:grid;gap:4px}
.wj-lsx-list p{display:flex;align-items:center;gap:8px;margin:0;padding:8px 6px;border-bottom:1px solid rgb(241,245,249);max-width:none}
.wj-lsx-list p.gone{opacity:.25;text-decoration:line-through}
.wj-lsx-dot{width:9px;height:9px;border-radius:999px;flex:0 0 auto}
.wj-lsx-dot.pink{background:rgb(236,72,153)}.wj-lsx-dot.green{background:rgb(16,185,129)}.wj-lsx-dot.blue{background:rgb(59,130,246)}
.wj-lsx-snack{position:relative;display:flex;align-items:center;gap:8px;margin-top:8px;padding:9px 10px;border-radius:12px;background:rgb(32,34,40);color:rgb(245,246,248);font-size:11px;font-weight:700;overflow:hidden}
.wj-lsx-snack span{flex:1}
.wj-lsx-snack b{color:rgb(130,172,255)}
.wj-lsx-snack i{position:absolute;left:0;bottom:0;height:2px;width:62%;background:rgb(130,172,255)}
.wj-lsx-dialog{position:absolute;right:22px;top:112px;width:190px;padding:14px 12px 12px;border-radius:16px;background:rgb(255,255,255);box-shadow:0 22px 50px rgba(2,6,23,.45);display:grid;justify-items:center;gap:6px;text-align:center}
.wj-lsx-ico{display:grid;place-items:center;width:28px;height:28px;border-radius:999px;background:rgb(254,226,226);color:rgb(220,38,38)}
.wj-lsx-dialog small{padding:2px 8px;border-radius:999px;background:rgb(254,226,226);color:rgb(185,28,28);font-size:11px;font-weight:800}
.wj-lsx-dialog div{display:grid;grid-template-columns:1fr 1fr;gap:6px;width:100%;margin-top:4px}
.wj-lsx-dialog em{text-align:center;padding:6px 4px}
.wj-lsx-dialog em.ghost{background:rgb(241,245,249);color:rgb(30,41,59)}
.wj-lsx-dialog em.red{background:rgb(229,72,77)}
.wj-lsx-float{left:auto;right:30px;bottom:22px}
@media (max-width:1180px){.wj-lsx-dialog{display:none}.wj-lsx-list{left:50%;margin-left:-125px}}
.wj-lsx-list strong,.wj-lsx-dialog strong{color:rgb(30,41,59);font-size:11px}

/* Pedidos 1.10.12 (traído de worldjump-platform): Inicio «Recibir pedidos» y revisión del catálogo antes de enviar */
.wj-panel{background:var(--surface);border:1px solid var(--border);border-radius:20px;padding:18px 20px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:12px}
.wj-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.wj-panel-head h3{margin:2px 0 0;font-size:16px;font-weight:760;letter-spacing:-.01em}
.wj-panel-head .wj-kicker{font-size:11px;letter-spacing:.09em}
.wj-panel-n{font-size:26px;font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:-.02em;line-height:1}
.wj-panel-n small{font-size:13px;color:var(--text-3);font-weight:600}
.wj-pedchg-list{list-style:none;margin:0;padding:0;display:grid;gap:8px;max-height:50vh;overflow:auto}
.wj-pedchg{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border-radius:12px;background:var(--surface2);border:1px solid var(--border)}
.wj-pedchg.is-removed,.wj-pedchg.is-unavailable{background:var(--danger-weak);border-color:rgb(239 59 59 / .25)}
.wj-pedchg.is-changed{background:var(--warn-weak);border-color:rgb(194 65 12 / .25)}
.wj-pedchg-ico{width:28px;height:28px;border-radius:8px;display:grid;place-items:center;background:var(--surface);flex:0 0 auto}
.wj-pedchg strong{font-size:14px}.wj-pedchg small{color:var(--muted)}
.wj-pedchg-diffs{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:4px;font-size:13px}.wj-pedchg-diffs em{font-style:normal;color:var(--muted)}.wj-pedchg-diffs s{color:var(--text-3)}
.wj-panel-receive{margin-bottom:14px}
.wj-home-rec{display:grid;gap:8px}
.wj-home-rec-row{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--hairline,var(--border));border-radius:16px;background:var(--surface-2,transparent)}
.wj-home-rec-ic{flex:0 0 34px;height:34px;border-radius:12px;display:grid;place-items:center;background:color-mix(in srgb,var(--accent) 16%,transparent);color:var(--accent)}
.wj-home-rec-row.is-assign .wj-home-rec-ic{background:color-mix(in srgb,rgb(245 158 11) 18%,transparent);color:rgb(245 158 11)}
.wj-home-rec-main{flex:1;min-width:0;display:grid;gap:2px}
.wj-home-rec-main b{font-size:14px}
.wj-home-rec-main small{font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:640px){.wj-home-rec-row{flex-wrap:wrap}.wj-home-rec-row .wj-btn{width:100%;justify-content:center}}
.wj-overflow-more{display:inline-flex;align-items:center;gap:6px;cursor:pointer;white-space:nowrap}
/* Visor de fotos y PDF: se cierra con fundido (traído de worldjump-platform) */
#viewer-root .wj-viewer-layer.is-closing{animation:wj-viewer-out .17s ease-in both}
@keyframes wj-viewer-out{from{opacity:1}to{opacity:0}}
@media(prefers-reduced-motion:reduce){#viewer-root .wj-viewer-layer.is-closing{animation:none}}

/* ===== Turnos (cuadrante semanal, RRHH 1.3.0) — portado de worldjump-platform ===== */
.wj-panel-week{grid-column:span 12;cursor:pointer}
.wj-panel-week:hover{box-shadow:var(--shadow-lg)}
.wj-week-strip{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}
.wj-week-day{display:grid;gap:6px;align-content:start;padding:10px;border-radius:16px;background:var(--surface-sunken);min-height:84px}
.wj-week-day.is-today{box-shadow:inset 0 0 0 1.5px var(--accent)}
.wj-week-day-lbl{font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:capitalize;color:var(--muted)}
.wj-week-day.is-today .wj-week-day-lbl{color:var(--accent)}
.wj-week-shift{display:grid;gap:1px;padding:6px 8px;border-radius:12px;background:color-mix(in srgb,var(--c) 18%,transparent);border-left:3px solid var(--c);font-size:12px}
.wj-week-shift b{font-variant-numeric:tabular-nums}.wj-week-shift small{color:var(--muted);font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wj-week-off{font-size:12px;color:var(--text-3)}
@media(max-width:860px){.wj-week-strip{grid-template-columns:repeat(7,minmax(72px,1fr));overflow-x:auto;scrollbar-width:none;padding-bottom:2px}}

.wj-week-picker{display:inline-flex;align-items:center;gap:4px;position:relative}
.wj-week-picker [data-week-step="-1"] svg{transform:rotate(180deg)}
.wj-week-picker .wj-date-range-menu{left:36px}

@media(max-width:860px){.wj-week-strip{scroll-snap-type:x proximity}.wj-week-day{scroll-snap-align:center}}

.wj-week-menu{min-width:292px;padding:10px}
.wj-wkcal-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}.wj-wkcal-head strong{text-transform:capitalize;font-size:14px}
.wj-wkcal-head [data-wk-month="-1"] svg{transform:rotate(180deg)}
.wj-wkcal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:0 2px;row-gap:3px}
.wj-wkcal-wd{font-size:11px;font-weight:800;color:var(--text-3);text-align:center;padding:2px 0 4px}
.wj-wkcal-day{border:0;background:transparent;color:var(--text);height:34px;border-radius:0;font-size:13px;font-variant-numeric:tabular-nums;cursor:pointer;transition:background .12s ease,color .12s ease}
.wj-wkcal-day.is-out{color:var(--text-3)}
.wj-wkcal-day.is-today{font-weight:800;color:var(--accent)}
.wj-wkcal-day.is-hover{background:var(--surface2)}
.wj-wkcal-day.is-sel{background:var(--primary-weak);color:var(--accent);font-weight:700}
.wj-wkcal-day:nth-child(7n+1){border-radius:10px 0 0 10px}.wj-wkcal-day:nth-child(7n){border-radius:0 10px 10px 0}
.wj-wkcal-foot{display:flex;justify-content:flex-end;margin-top:8px}

/* Anuncio de Turnos en el login */
.wj-lst-card{position:absolute;left:22px;right:22px;top:22px;padding:14px;border-radius:16px;background:rgb(255,255,255);box-shadow:0 22px 50px rgba(2,6,23,.45);display:grid;gap:7px}
.wj-lst-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:2px}
.wj-lst-row{display:grid;grid-template-columns:36px repeat(7,1fr);gap:5px;align-items:center}
.wj-lst-days span{text-align:center;color:rgb(100,116,139);font-size:11px;font-weight:800}
.wj-lst-row .wj-lsf-av{width:26px;height:26px}
.wj-lst-row i{height:22px;border-radius:7px;background:rgb(241,245,249)}
.wj-lst-row i.a{background:rgb(219,234,254);box-shadow:inset 3px 0 rgb(37,99,235)}
.wj-lst-row i.b{background:rgb(243,232,255);box-shadow:inset 3px 0 rgb(147,51,234)}
.wj-lst-row i.c{background:rgb(220,252,231);box-shadow:inset 3px 0 rgb(22,163,74)}
.wj-lst-row i.d{outline:1.5px dashed rgb(148,163,184);outline-offset:1px}
.wj-lst-tpls{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}
.wj-lst-tpls span{padding:4px 8px;border-radius:999px;font-size:11px;font-weight:800;background:rgb(241,245,249);color:rgb(30,41,59)}
.wj-lst-tpls span.a{box-shadow:inset 0 0 0 1.5px rgb(37,99,235)}.wj-lst-tpls span.b{box-shadow:inset 0 0 0 1.5px rgb(147,51,234)}.wj-lst-tpls span.c{box-shadow:inset 0 0 0 1.5px rgb(22,163,74)}
.wj-lst-float{right:30px;bottom:22px}

/* ===== Stock 1.16 (portado de worldjump-platform): filtros de Retirar y Stock map 3D ===== */
.wj-wd-filters{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 12px}
.wj-wd-filters .wj-select{width:auto;min-width:150px;flex:0 1 auto}
.wj-wd-statuses{display:inline-flex;gap:2px;padding:3px;border-radius:12px;background:var(--surface2);max-width:100%;overflow-x:auto;scrollbar-width:none}
.wj-wd-statuses button{height:36px;padding:0 12px;border:0;border-radius:8px;background:transparent;color:var(--muted);font:inherit;font-size:13px;font-weight:700;white-space:nowrap;cursor:pointer;transition:background .15s,color .15s,box-shadow .15s}
.wj-wd-statuses button:hover{color:var(--text)}
.wj-wd-statuses button.on{background:var(--surface-raised,var(--surface));color:var(--text);box-shadow:0 1px 3px rgb(15 23 42 / .14)}
:root[data-theme="dark"] .wj-wd-statuses button.on{background:color-mix(in srgb,var(--text) 12%,var(--surface2))}
@media(max-width:699px){.wj-wd-filters .wj-select{min-width:0;flex:1 1 150px}}
/* ===== Stock map (3D) a pantalla completa: estética «gemelo digital», siempre oscura ===== */
html.wj-stockmap-open,html.wj-stockmap-open body{overflow:hidden}
.wj-stockmap-host{--sm-bg:rgb(6 10 20);--sm-panel:rgb(9 15 29 / .8);--sm-line:rgb(56 225 255 / .16);--sm-cyan:rgb(56 225 255);--sm-amber:rgb(255 176 32);--sm-red:rgb(248 113 113);--sm-text:rgb(230 240 255);--sm-muted:rgb(142 163 196);position:fixed;inset:0;z-index:4000;background:var(--sm-bg);color:var(--sm-text);color-scheme:dark}
.sm-boot{position:absolute;inset:0;display:grid;place-content:center;justify-items:center;gap:14px;font-size:14px;color:var(--sm-muted)}
.sm-boot>span,.sm-loading>span{width:34px;height:34px;border-radius:50%;border:3px solid rgb(56 225 255 / .2);border-top-color:var(--sm-cyan);animation:sm-spin .8s linear infinite}
.sm-boot.is-error b{color:var(--sm-text);font-size:16px}.sm-boot.is-error small{max-width:280px;text-align:center}.sm-boot.is-error .wj-btn{min-width:160px}
@keyframes sm-spin{to{transform:rotate(360deg)}}
.sm-root{position:absolute;inset:0;overflow:hidden;outline:none;font-size:13px}
.sm-stage{position:absolute;inset:0}.sm-stage canvas{display:block;width:100%;height:100%;touch-action:none}
.sm-left,.sm-card,.sm-edit,.sm-ctrl button,.sm-hint{background:var(--sm-panel);border:1px solid var(--sm-line);backdrop-filter:blur(14px) saturate(140%);-webkit-backdrop-filter:blur(14px) saturate(140%);box-shadow:var(--elev-3)}
.sm-top{position:absolute;inset:0 0 auto 0;display:flex;align-items:center;gap:14px;padding:calc(10px + env(safe-area-inset-top)) 16px 10px;background:linear-gradient(180deg,rgb(6 10 20 / .92),rgb(6 10 20 / 0));pointer-events:none}
.sm-top>*{pointer-events:auto}
.sm-back{display:inline-flex;align-items:center;gap:6px;height:40px;padding:0 14px 0 10px;border-radius:12px;border:1px solid var(--sm-line);background:var(--sm-panel);color:var(--sm-text);font:inherit;font-weight:700;font-size:14px;cursor:pointer}
.sm-back svg{transform:rotate(180deg)}
.sm-back:hover{border-color:var(--sm-cyan)}
.sm-title{display:grid;line-height:1.15;margin-right:auto}
.sm-title b{font-size:18px;letter-spacing:.28em;background:linear-gradient(90deg,rgb(255,255,255),var(--sm-cyan));-webkit-background-clip:text;background-clip:text;color:transparent}
.sm-title small{color:var(--sm-muted);font-size:12px}
.sm-select{height:38px;border-radius:12px;border:1px solid var(--sm-line);background:var(--sm-panel);color:var(--sm-text);padding:0 10px;font:inherit}
.sm-select[hidden]{display:none}
.sm-clock{font-variant-numeric:tabular-nums;color:var(--sm-muted);font-size:13px;white-space:nowrap}
.sm-left{position:absolute;left:16px;top:72px;bottom:16px;width:340px;border-radius:16px;padding:14px;display:flex;flex-direction:column;gap:12px;min-height:0}
.sm-left-handle{display:none}
.sm-kpis{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.sm-kpi{padding:10px 12px;border-radius:12px;background:rgb(255 255 255 / .03);border:1px solid rgb(255 255 255 / .06)}
.sm-kpi small{display:block;color:var(--sm-muted);font-size:12px}
.sm-kpi b{font-size:22px;font-variant-numeric:tabular-nums}
.sm-kpi.is-cyan b{color:var(--sm-cyan)}.sm-kpi.is-amber b{color:var(--sm-amber)}.sm-kpi.is-red b{color:var(--sm-red)}
.sm-occ{display:flex;gap:12px;align-items:center;padding:4px 2px}
.sm-occ small{color:var(--sm-muted)}.sm-occ p{margin:2px 0 0}
.sm-muted{color:var(--sm-muted)}
.sm-donut{--p:0;width:64px;height:64px;flex:none;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--sm-cyan) calc(var(--p)*1%),rgb(56 225 255 / .12) 0);position:relative}
.sm-donut::before{content:"";position:absolute;inset:7px;border-radius:50%;background:rgb(10 18 34)}
.sm-donut b{position:relative;font-size:14px}
.sm-search{display:flex;align-items:center;gap:8px;height:42px;padding:0 12px;border-radius:12px;background:rgb(255 255 255 / .04);border:1px solid rgb(255 255 255 / .08);color:var(--sm-muted)}
.sm-search:focus-within{border-color:var(--sm-cyan)}
.sm-search input{flex:1;min-width:0;border:0;background:transparent;color:var(--sm-text);font:inherit;font-size:14px;outline:none}
.sm-chips{display:flex;gap:6px;flex-wrap:wrap}
.sm-chips button{height:30px;padding:0 11px;border-radius:999px;border:1px solid rgb(255 255 255 / .1);background:transparent;color:var(--sm-muted);font:inherit;font-weight:600;cursor:pointer}
.sm-chips button.on{background:rgb(56 225 255 / .14);border-color:var(--sm-cyan);color:var(--sm-text)}
.sm-list{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:4px;margin:0 -6px;padding:0 6px;scrollbar-width:thin;scrollbar-color:rgb(255 255 255 / .15) transparent}
.sm-row{display:flex;align-items:center;gap:10px;width:100%;min-height:52px;padding:6px 8px;border-radius:12px;border:1px solid transparent;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}
.sm-row:hover{background:rgb(255 255 255 / .04)}
.sm-row.on{background:rgb(255 176 32 / .1);border-color:rgb(255 176 32 / .5)}
.sm-thumb{width:38px;height:38px;flex:none;border-radius:8px;background:rgb(255 255 255 / .06);display:grid;place-items:center;overflow:hidden;color:var(--sm-muted)}
.sm-thumb img{width:100%;height:100%;object-fit:contain;background:rgb(255,255,255)}
.sm-row-t{flex:1;min-width:0;display:grid}
.sm-row-t b{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sm-row-t small{color:var(--sm-muted);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sm-code{font-style:normal;font-weight:700;color:var(--sm-cyan);margin-right:4px}
.sm-code.is-none{color:var(--sm-muted);font-weight:500}
.sm-row-q{display:grid;justify-items:end;line-height:1.1}
.sm-row-q b{font-variant-numeric:tabular-nums;font-size:14px}.sm-row-q small{color:var(--sm-muted);font-size:12px}
.sm-row.is-out .sm-row-q b{color:var(--sm-red)}.sm-row.is-low .sm-row-q b{color:var(--sm-amber)}
.sm-empty{color:var(--sm-muted);text-align:center;padding:20px 0}
.sm-card{position:absolute;right:16px;top:72px;width:340px;border-radius:16px;padding:16px;display:grid;gap:12px;animation:sm-in .25s ease-out}
@keyframes sm-in{from{opacity:0;transform:translateY(8px)}}
.sm-card[hidden]{display:none}
.sm-x{position:absolute;top:8px;right:8px;width:32px;height:32px;border-radius:8px;border:0;background:transparent;color:var(--sm-muted);font-size:22px;line-height:1;cursor:pointer}
.sm-x:hover{background:rgb(255 255 255 / .06);color:var(--sm-text)}
.sm-card-h{display:flex;gap:12px;align-items:center;padding-right:28px}
.sm-card-h b{display:block;font-size:15px;line-height:1.3}.sm-card-h small{color:var(--sm-muted)}
.sm-card-img{width:58px;height:58px;flex:none;border-radius:12px;overflow:hidden;background:rgb(255 255 255 / .06);display:grid;place-items:center;color:var(--sm-muted)}
.sm-card-img img{width:100%;height:100%;object-fit:contain;background:rgb(255,255,255)}
.sm-card-q{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-radius:12px;background:rgb(255 255 255 / .04)}
.sm-card-q small{color:var(--sm-muted)}.sm-card-q b{display:block;font-size:24px;font-variant-numeric:tabular-nums}.sm-card-q i{font-style:normal;font-size:13px;color:var(--sm-muted)}
.sm-st{padding:4px 10px;border-radius:999px;font-weight:700;font-size:12px;background:rgb(34 197 94 / .15);color:rgb(74 222 128)}
.sm-st.is-low{background:rgb(255 176 32 / .15);color:var(--sm-amber)}.sm-st.is-out{background:rgb(248 113 113 / .15);color:var(--sm-red)}
.sm-card-loc{display:flex;gap:8px;align-items:flex-start;padding:10px 12px;border-radius:12px;border:1px solid rgb(255 176 32 / .45);background:rgb(255 176 32 / .08);color:rgb(255 212 128);font-weight:600;line-height:1.35}
.sm-card-loc.is-none{border-color:rgb(255 255 255 / .1);background:transparent;color:var(--sm-muted);font-weight:500}
.sm-card-loc svg{flex:none;margin-top:1px}
.sm-card-a{display:flex;flex-wrap:wrap;gap:8px}
.sm-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:40px;padding:0 14px;border-radius:12px;border:1px solid rgb(255 255 255 / .14);background:rgb(255 255 255 / .05);color:var(--sm-text);font:inherit;font-weight:700;cursor:pointer;transition:background 200ms,border-color 200ms}
.sm-btn:hover{border-color:var(--sm-cyan)}
.sm-btn:disabled{opacity:.45;cursor:default}
.sm-btn.primary{background:linear-gradient(180deg,rgb(255 194 77),rgb(245 158 11));border-color:rgb(245 158 11);color:rgb(26 18 4)}
.sm-btn.primary:hover{filter:brightness(1.07)}
.sm-btn.ghost{background:transparent}
.sm-btn.danger{border-color:rgb(248 113 113 / .5);color:var(--sm-red)}
.sm-card-a .sm-btn.primary{flex:1 1 100%}
.sm-tag{position:absolute;left:0;top:0;translate:-50% calc(-100% - 10px);display:grid;justify-items:center;padding:7px 12px;border-radius:12px;background:rgb(26 18 4 / .9);border:1px solid var(--sm-amber);color:rgb(255 224 163);pointer-events:none;white-space:nowrap;box-shadow:var(--elev-2)}
.sm-tag b{font-size:15px;letter-spacing:.06em;color:rgb(255,255,255)}.sm-tag span{font-size:12px;max-width:220px;overflow:hidden;text-overflow:ellipsis}
.sm-tag::after{content:"";position:absolute;bottom:-6px;left:50%;width:10px;height:10px;translate:-50% 0;rotate:45deg;background:inherit;border-right:1px solid var(--sm-amber);border-bottom:1px solid var(--sm-amber)}
.sm-tag[hidden]{display:none}
.sm-hint{position:absolute;left:50%;bottom:20px;translate:-50% 0;max-width:min(560px,calc(100% - 32px));padding:10px 16px;border-radius:999px;text-align:center;line-height:1.4}
.sm-hint button{margin-left:6px;border:0;background:none;color:var(--sm-amber);font:inherit;font-weight:700;cursor:pointer;text-decoration:underline}
.sm-hint[hidden]{display:none}
.sm-ctrl{position:absolute;right:16px;bottom:16px;display:flex;flex-direction:column;gap:8px}
.sm-ctrl button{width:44px;height:44px;border-radius:12px;color:var(--sm-text);font:inherit;font-weight:700;font-size:16px;cursor:pointer;display:grid;place-items:center}
.sm-ctrl button:hover{border-color:var(--sm-cyan)}
.sm-ctrl button[hidden]{display:none}
.sm-root.is-editing .sm-ctrl [data-sm-edit]{background:var(--sm-amber);color:rgb(26 18 4);border-color:var(--sm-amber)}
.sm-edit{position:absolute;left:372px;right:76px;bottom:16px;border-radius:16px;padding:12px 14px;display:grid;gap:10px;max-height:46vh;overflow:auto}
.sm-edit[hidden]{display:none}
.sm-edit-row{display:flex;flex-wrap:wrap;align-items:flex-end;gap:8px}
.sm-edit-row>b{align-self:center;font-size:14px;margin-right:4px}
.sm-edit-row label{display:grid;gap:3px;font-size:12px;color:var(--sm-muted)}
.sm-edit-row input,.sm-edit-row select{height:36px;min-width:0;width:96px;border-radius:8px;border:1px solid rgb(255 255 255 / .14);background:rgb(255 255 255 / .05);color:var(--sm-text);font:inherit;padding:0 8px}
.sm-edit-row select{width:140px}
.sm-sp{flex:1}
.sm-edit-tip{margin:0;color:var(--sm-muted)}
.sm-root.is-conflict .sm-stage{box-shadow:inset 0 0 0 3px var(--sm-red)}
.sm-loading{position:absolute;inset:0;display:grid;place-content:center;justify-items:center;gap:12px;background:rgb(6 10 20 / .55);color:var(--sm-muted);pointer-events:none}
.sm-loading[hidden]{display:none}
.sm-modal{position:absolute;inset:0;display:grid;place-items:center;background:rgb(0 0 0 / .5);padding:16px}
.sm-modal-card{width:min(560px,100%);max-height:90%;overflow:auto;border-radius:16px;padding:20px;background:rgb(11 19 36);border:1px solid var(--sm-line);display:grid;gap:12px}
.sm-modal-card h3{margin:0;font-size:18px}.sm-modal-card p{margin:0}
.sm-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.sm-grid label{display:grid;gap:4px;font-size:12px;color:var(--sm-muted)}
.sm-grid input{height:40px;border-radius:12px;border:1px solid rgb(255 255 255 / .14);background:rgb(255 255 255 / .05);color:var(--sm-text);font:inherit;padding:0 10px}
.sm-warn{color:var(--sm-amber)}
.sm-modal-a{display:flex;justify-content:flex-end;gap:8px}
.sm-root :focus-visible{outline:2px solid var(--sm-cyan);outline-offset:2px}
@media (max-width:760px){
 .sm-top{gap:8px;padding:calc(8px + env(safe-area-inset-top)) 10px 8px}
 .sm-clock{display:none}
 .sm-title b{font-size:14px;letter-spacing:.2em}.sm-title small{font-size:12px}
 .sm-left{left:0;right:0;top:auto;bottom:0;width:auto;height:118px;border-radius:16px 16px 0 0;padding:6px 12px calc(10px + env(safe-area-inset-bottom));transition:height .28s cubic-bezier(.22,.9,.3,1)}
 .sm-left.is-open{height:68vh}
 .sm-left-handle{display:grid;justify-items:center;gap:4px;border:0;background:none;color:var(--sm-muted);font:inherit;font-weight:700;padding:2px 0 0;cursor:pointer}
 .sm-left-handle i{width:40px;height:4px;border-radius:8px;background:rgb(255 255 255 / .25)}
 .sm-left:not(.is-open) .sm-occ,.sm-left:not(.is-open) .sm-chips,.sm-left:not(.is-open) .sm-list,.sm-left:not(.is-open) .sm-search{display:none}
 .sm-kpis{grid-template-columns:repeat(4,1fr);gap:6px}.sm-kpi{padding:6px 8px}.sm-kpi b{font-size:18px}.sm-kpi small{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 .sm-card{left:8px;right:8px;top:auto;bottom:126px;width:auto;padding:14px;gap:10px;max-height:calc(100% - 210px);overflow:auto}
 .sm-ctrl{right:10px;top:calc(64px + env(safe-area-inset-top));bottom:auto}
 .sm-ctrl button{width:40px;height:40px}
 .sm-edit{left:8px;right:8px;bottom:126px;max-height:40vh}
 .sm-hint{bottom:134px;border-radius:16px}
}
@media (prefers-reduced-motion:reduce){.sm-card,.sm-left{animation:none;transition:none}}
.wj-stockmap-btn{gap:8px;border-color:color-mix(in srgb,var(--accent) 40%,var(--border));color:var(--accent);font-weight:700}
.wj-wd-map{justify-self:start}
/* Stock map · retirar desde la ficha, sin salir del mapa */
.sm-mini{margin-left:auto;flex:none;width:30px;height:30px;border-radius:8px;border:1px solid rgb(255 176 32 / .5);background:transparent;color:var(--sm-amber);display:grid;place-items:center;cursor:pointer}
.sm-mini:hover{background:rgb(255 176 32 / .12)}
.sm-card-loc span{flex:1;min-width:0}
.sm-wd{display:grid;gap:8px;padding:12px;border-radius:16px;background:rgb(255 255 255 / .035);border:1px solid rgb(255 255 255 / .07)}
.sm-wd-units{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.sm-wd-units button{display:flex;align-items:center;justify-content:center;gap:4px;height:38px;border-radius:12px;border:1px solid rgb(255 255 255 / .12);background:transparent;color:var(--sm-text);font:inherit;font-weight:700;cursor:pointer}
.sm-wd-units button small{color:var(--sm-muted);font-weight:600}
.sm-wd-units button.on{background:rgb(56 225 255 / .14);border-color:var(--sm-cyan)}
.sm-wd-units button:disabled{opacity:.35;cursor:not-allowed}
.sm-wd-step{display:flex;align-items:center;gap:6px}
.sm-wd-step button{width:44px;height:44px;flex:none;border-radius:12px;border:1px solid rgb(255 255 255 / .14);background:rgb(255 255 255 / .06);color:var(--sm-text);font:inherit;font-size:22px;font-weight:700;cursor:pointer}
.sm-wd-step button:active{transform:scale(.94)}
.sm-wd-step input{width:72px;height:44px;border-radius:12px;border:1px solid rgb(255 255 255 / .14);background:rgb(0 0 0 / .25);color:var(--sm-text);font:inherit;font-size:18px;font-weight:700;text-align:center;font-variant-numeric:tabular-nums}
.sm-wd-step span{margin-left:auto;color:var(--sm-muted);white-space:nowrap}.sm-wd-step span b{color:var(--sm-text);font-size:15px}
.sm-wd-note{height:40px;border-radius:12px;border:1px solid rgb(255 255 255 / .12);background:rgb(0 0 0 / .2);color:var(--sm-text);font:inherit;padding:0 12px}
.sm-wd-note::placeholder{color:var(--sm-muted)}
.sm-wd-warn{margin:0;color:var(--sm-amber);font-size:12px}
.sm-wd-go{min-height:48px;font-size:15px}
.sm-adjust{border-radius:12px;border:1px solid rgb(255 255 255 / .07);padding:0 12px}
.sm-adjust summary{display:flex;align-items:center;gap:6px;min-height:38px;color:var(--sm-muted);font-weight:600;cursor:pointer;list-style:none}
.sm-adjust summary::-webkit-details-marker{display:none}
.sm-adjust-b{display:flex;gap:6px;padding-bottom:10px}
.sm-adjust-b input{min-width:0;height:38px;border-radius:8px;border:1px solid rgb(255 255 255 / .12);background:rgb(0 0 0 / .2);color:var(--sm-text);font:inherit;padding:0 10px}
.sm-adjust-b input:first-child{width:84px;flex:none}.sm-adjust-b input:nth-child(2){flex:1}
.sm-adjust-b .sm-btn{min-height:38px}
.sm-card{max-height:calc(100% - 88px);overflow:auto;scrollbar-width:thin}
@media (max-width:760px){.sm-card{max-height:calc(100% - 210px)}.sm-wd{padding:10px}.sm-card-h .sm-card-img{width:46px;height:46px}}
/* Stock map · ficha de un hueco o cajón y su contenido */
.sm-slot-h{display:flex;gap:12px;align-items:center;padding-right:28px}
.sm-slot-h b{display:block;font-size:15px}.sm-slot-h small{color:var(--sm-muted)}
.sm-slot-code{min-width:58px;height:58px;padding:0 8px;border-radius:12px;display:grid;place-items:center;font-weight:700;font-size:18px;letter-spacing:.04em;color:rgb(42 26 2);background:linear-gradient(180deg,rgb(255 210 122),rgb(245 158 11))}
.sm-slot-list{display:grid;gap:6px}
.sm-slot-row{display:flex;align-items:center;gap:6px;border-radius:12px;background:rgb(255 255 255 / .04);border:1px solid rgb(255 255 255 / .06)}
.sm-slot-p{flex:1;min-width:0;display:grid;padding:9px 12px;border:0;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}
.sm-slot-p b{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sm-slot-p small{color:var(--sm-muted)}
.sm-slot-row.is-out small{color:var(--sm-red)}.sm-slot-row.is-low small{color:var(--sm-amber)}
.sm-slot-row:hover{border-color:var(--sm-cyan)}
.sm-mini.is-del{margin:0 6px 0 0;border-color:rgb(248 113 113 / .45);color:var(--sm-red);font-size:18px;line-height:1}
.sm-slot-sugg{display:grid;gap:4px;margin-top:-4px}
.sm-slot-sugg button{display:grid;padding:8px 12px;border-radius:12px;border:1px dashed rgb(56 225 255 / .35);background:transparent;color:var(--sm-text);font:inherit;text-align:left;cursor:pointer}
.sm-slot-sugg button:hover{background:rgb(56 225 255 / .1)}
.sm-slot-sugg small{color:var(--sm-muted)}
/* Stock map · plantas, arrastrar a un hueco y contenido en iconos */
.sm-floors{position:absolute;right:70px;bottom:16px;display:flex;flex-direction:column;align-items:center;gap:6px;padding:8px 6px;border-radius:16px;background:var(--sm-panel);border:1px solid var(--sm-line);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.sm-floors[hidden]{display:none}
.sm-floors small{font-size:12px;color:var(--sm-muted);text-transform:uppercase;letter-spacing:.08em}
.sm-floors button{width:40px;height:40px;border-radius:12px;border:1px solid rgb(255 255 255 / .12);background:transparent;color:var(--sm-text);font:inherit;font-weight:700;font-size:15px;cursor:pointer}
.sm-floors button.on{background:linear-gradient(180deg,rgb(255 194 77),rgb(245 158 11));border-color:rgb(245 158 11);color:rgb(26 18 4)}
.sm-floors button:hover:not(.on){border-color:var(--sm-cyan)}
.sm-floor-ed{display:inline-flex;align-items:center;gap:6px;padding:0 4px 0 10px;border-left:1px solid rgb(255 255 255 / .12)}
.sm-floor-ed b{font-size:12px;color:var(--sm-amber);white-space:nowrap}
.sm-ini{width:100%;height:100%;display:grid;place-items:center;font-style:normal;font-weight:700;font-size:13px;letter-spacing:.02em;color:rgb(255 255 255);background:hsl(var(--h) 55% 38%)}
.sm-thumb .sm-ini{font-size:12px}
.sm-card-img .sm-ini{font-size:20px}
.sm-drag-tip{flex-basis:100%;margin:2px 0 0;display:flex;align-items:center;gap:6px;color:var(--sm-muted);font-size:12px}
.sm-row{user-select:none;-webkit-user-select:none;touch-action:pan-y}
.sm-root.is-dropping .sm-list{opacity:.55}
.sm-dragchip{position:fixed;left:0;top:0;z-index:30;display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:10px;align-items:center;max-width:260px;padding:8px 12px 8px 8px;border-radius:16px;background:rgb(26 18 4 / .92);border:1px solid var(--sm-amber);color:rgb(255 224 163);box-shadow:var(--elev-3);pointer-events:none}
.sm-dragchip .sm-thumb{grid-row:1 / 3;width:40px;height:40px}
.sm-dragchip b{color:rgb(255 255 255);font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sm-dragchip small{font-weight:700}
.sm-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:8px}
.sm-tiles.is-sugg{margin-top:-2px}
.sm-tile-w{position:relative}
.sm-tile{position:relative;width:100%;display:grid;justify-items:center;gap:4px;padding:8px 6px 6px;border-radius:16px;border:2px solid rgb(74 222 128 / .55);background:rgb(255 255 255 / .04);color:var(--sm-text);font:inherit;cursor:pointer;transition:transform 100ms,border-color 200ms}
.sm-tile:hover{transform:translateY(-2px);border-color:var(--sm-cyan)}
.sm-tile.is-low{border-color:rgb(255 176 32 / .75)}.sm-tile.is-out{border-color:rgb(248 113 113 / .7)}
.sm-tile-img{width:58px;height:58px;border-radius:12px;overflow:hidden;display:grid;place-items:center;background:rgb(255 255 255 / .06);color:var(--sm-muted)}
.sm-tile-img img{width:100%;height:100%;object-fit:contain;background:rgb(255 255 255)}
.sm-tile-q{position:absolute;top:4px;right:4px;min-width:24px;height:22px;padding:0 6px;border-radius:999px;display:grid;place-items:center;font-size:12px;font-variant-numeric:tabular-nums;background:rgb(34 197 94);color:rgb(5 25 12)}
.sm-tile.is-low .sm-tile-q{background:rgb(255 176 32);color:rgb(26 18 4)}.sm-tile.is-out .sm-tile-q{background:rgb(248 113 113);color:rgb(40 6 6)}
.sm-tile-q.is-code{background:rgb(56 225 255);color:rgb(4 26 32)}
.sm-tile small{width:100%;font-size:12px;line-height:1.2;color:var(--sm-muted);text-align:center;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.sm-tile.is-add{border:2px dashed rgb(56 225 255 / .45);background:transparent}
.sm-tile.is-add .sm-tile-img{background:rgb(56 225 255 / .08);color:var(--sm-cyan)}
.sm-tile-x{position:absolute;top:-6px;left:-6px;width:24px;height:24px;border-radius:50%;border:1px solid rgb(248 113 113 / .6);background:rgb(40 10 10);color:var(--sm-red);font-size:15px;line-height:1;cursor:pointer;display:grid;place-items:center}
@media (max-width:760px){.sm-floors{right:10px;top:auto;bottom:140px;translate:none}.sm-tiles{grid-template-columns:repeat(auto-fill,minmax(72px,1fr))}.sm-tile-img{width:48px;height:48px}}
.sm-root .sm-edit{right:128px}@media (max-width:760px){.sm-root .sm-edit{right:8px}}
.sm-root{user-select:none;-webkit-user-select:none}.sm-root input,.sm-root textarea{user-select:text;-webkit-user-select:text}
/* ===== Stock map v3: cabecera con escáner y lista, recogida guiada, editor visual, plantas en capas y hojas en el móvil ===== */
.sm-hsel{display:flex;gap:8px;min-width:0}
.sm-hacts{display:flex;gap:6px}
.sm-hbtn{position:relative;width:40px;height:40px;border-radius:12px;border:1px solid var(--sm-line);background:var(--sm-panel);color:var(--sm-text);display:grid;place-items:center;cursor:pointer}
.sm-hbtn:hover{border-color:var(--sm-cyan)}
.sm-hbtn i{position:absolute;top:-5px;right:-5px;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--sm-amber);color:rgb(26 18 4);font-style:normal;font-size:12px;font-weight:700;display:grid;place-items:center}
.sm-hbtn i[hidden]{display:none}
.sm-cat{flex-basis:100%;height:36px;border-radius:12px;border:1px solid rgb(255 255 255 / .1);background:rgb(255 255 255 / .04);color:var(--sm-text);font:inherit;padding:0 10px}
.sm-card-body{display:grid;gap:12px;position:relative;min-width:0}
.sm-grip{display:none}
.sm-card.is-drop{outline:2px dashed var(--sm-amber);outline-offset:-6px;background:rgb(40 28 6 / .85)}
.sm-btn.is-on{border-color:var(--sm-amber);color:var(--sm-amber)}
.sm-slot-code.is-cart{background:linear-gradient(180deg,rgb(56 225 255),rgb(14 165 233));color:rgb(4 26 32)}
.sm-cart-list{display:grid;gap:6px}
.sm-cart-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:6px;padding:4px 4px 4px 0;border-radius:12px;background:rgb(255 255 255 / .04);border:1px solid rgb(255 255 255 / .06)}
.sm-cart-row.is-out{border-color:rgb(248 113 113 / .35)}
.sm-cart-p{display:flex;align-items:center;gap:10px;min-width:0;padding:4px 8px;border:0;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}
.sm-cart-t{display:grid;min-width:0}.sm-cart-t b{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sm-cart-t small{color:var(--sm-muted);font-size:12px}
.sm-cart-q{display:flex;align-items:center;gap:4px}
.sm-cart-q button{width:34px;height:34px;border-radius:12px;border:1px solid rgb(255 255 255 / .14);background:rgb(255 255 255 / .05);color:var(--sm-text);font:inherit;font-size:18px;cursor:pointer}
.sm-cart-q b{min-width:38px;text-align:center;display:grid;line-height:1.1;font-variant-numeric:tabular-nums}.sm-cart-q b small{font-size:12px;color:var(--sm-muted);font-weight:500}
.sm-cart-x{width:30px;height:30px;border-radius:50%;border:0;background:transparent;color:var(--sm-muted);font-size:18px;cursor:pointer}
.sm-cart-x:hover{color:var(--sm-red)}
.sm-run{position:absolute;left:50%;top:72px;translate:-50% 0;z-index:6;width:min(560px,calc(100% - 760px));min-width:320px;border-radius:16px;overflow:hidden;background:rgb(26 18 4 / .92);border:1px solid var(--sm-amber);box-shadow:var(--elev-3)}
.sm-run[hidden]{display:none}
.sm-run-bar{height:4px;background:rgb(255 176 32 / .2)}.sm-run-bar i{display:block;height:100%;background:var(--sm-amber);transition:width .4s}
.sm-run-row{display:flex;align-items:center;gap:10px;padding:8px 10px 8px 14px;color:rgb(255 224 163)}
.sm-run-row b{white-space:nowrap;color:rgb(255 255 255)}.sm-run-row span{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sm-run-row button{height:32px;padding:0 12px;border-radius:8px;border:1px solid rgb(255 176 32 / .5);background:transparent;color:var(--sm-amber);font:inherit;font-weight:700;cursor:pointer}
.sm-scan{position:absolute;inset:0;z-index:50;background:rgb(0 0 0);display:grid;place-items:center}
.sm-scan video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.sm-scan-frame{position:relative;width:min(72vw,320px);aspect-ratio:1.4;border-radius:16px;box-shadow:0 0 0 100vmax rgb(0 0 0 / .45)}
.sm-scan-frame::before{content:"";position:absolute;inset:0;border-radius:16px;border:3px solid rgb(255 255 255 / .9);mask:linear-gradient(rgb(0,0,0) 0 0) top/100% 22% no-repeat,linear-gradient(rgb(0,0,0) 0 0) bottom/100% 22% no-repeat;-webkit-mask:linear-gradient(rgb(0,0,0) 0 0) top/100% 22% no-repeat,linear-gradient(rgb(0,0,0) 0 0) bottom/100% 22% no-repeat}
.sm-scan-frame i{position:absolute;left:8%;right:8%;top:50%;height:2px;background:var(--sm-amber);box-shadow:var(--elev-2);animation:sm-scanline 1.6s ease-in-out infinite}
@keyframes sm-scanline{0%,100%{transform:translateY(-60px)}50%{transform:translateY(60px)}}
.sm-scan-ui{position:absolute;left:16px;right:16px;bottom:calc(24px + env(safe-area-inset-bottom));display:grid;justify-items:center;gap:10px;text-align:center;color:rgb(255 255 255)}
.sm-scan-ui p{margin:0;font-weight:700;font-size:15px}.sm-scan-ui small{color:rgb(255 255 255 / .7);max-width:320px}
.sm-scan-ui .sm-btn{min-width:180px}
/* editor visual */
.sm-edit-body{display:grid;gap:10px;min-width:0}
.sm-edit-head{display:flex;align-items:center;gap:8px}
.sm-edit-head b{display:block;font-size:14px}.sm-edit-head small{color:var(--sm-amber);font-weight:700;font-size:12px}
.sm-palette{display:flex;gap:8px;overflow-x:auto;padding:2px 2px 6px;scrollbar-width:thin;touch-action:pan-x;scroll-snap-type:x proximity}
.sm-piece-b{flex:none;width:76px;display:grid;justify-items:center;gap:4px;padding:8px 4px 6px;border-radius:16px;border:1px solid rgb(255 255 255 / .1);background:rgb(255 255 255 / .04);color:var(--sm-text);font:inherit;cursor:grab;scroll-snap-align:start;user-select:none;-webkit-user-select:none;transition:transform 100ms,border-color 200ms,background 200ms}
.sm-piece-b:hover{transform:translateY(-2px);border-color:var(--sm-cyan)}
.sm-piece-b:active{cursor:grabbing;transform:scale(.96)}
.sm-piece-b.on{border-color:var(--sm-amber);background:rgb(255 176 32 / .14);color:var(--sm-amber)}
.sm-piece-b small{font-size:12px;color:var(--sm-muted);white-space:nowrap}
.sm-piece-b.on small{color:var(--sm-amber)}
.sm-piece{width:46px;height:46px;border-radius:12px;display:grid;place-items:center;background:rgb(56 225 255 / .08);color:var(--sm-cyan)}
.sm-piece svg{pointer-events:none}
.sm-piece.is-big{width:56px;height:56px;flex:none}
.sm-prop{display:grid;gap:10px;padding:10px;border-radius:16px;background:rgb(255 255 255 / .035);border:1px solid rgb(255 255 255 / .07)}
.sm-prop-h{display:flex;align-items:center;gap:10px}
.sm-prop-t{flex:1;min-width:0;display:grid;gap:4px}
.sm-prop-t b{font-size:14px}.sm-pre{color:var(--sm-amber);font-weight:700;font-size:12px}
.sm-prop-t input,.sm-prop-ids input{height:36px;min-width:0;border-radius:8px;border:1px solid rgb(255 255 255 / .14);background:rgb(0 0 0 / .2);color:var(--sm-text);font:inherit;padding:0 10px}
.sm-prop-ids{display:grid;grid-template-columns:70px minmax(0,1fr);gap:6px}
.sm-prop-a{display:flex;gap:6px}
.sm-ib{width:38px;height:38px;border-radius:12px;border:1px solid rgb(255 255 255 / .14);background:rgb(255 255 255 / .05);color:var(--sm-text);font:inherit;font-size:18px;display:grid;place-items:center;cursor:pointer}
.sm-ib:hover{border-color:var(--sm-cyan)}.sm-ib.is-del{color:var(--sm-red);border-color:rgb(248 113 113 / .45)}
.sm-ib[hidden]{display:none}
.sm-steps{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.sm-stp{display:grid;gap:4px}
.sm-stp>span{font-size:12px;color:var(--sm-muted)}
.sm-stp>div{display:grid;grid-template-columns:36px minmax(0,1fr) 36px;align-items:center;border-radius:12px;border:1px solid rgb(255 255 255 / .12);background:rgb(0 0 0 / .2);overflow:hidden}
.sm-stp button{height:36px;border:0;background:rgb(255 255 255 / .05);color:var(--sm-text);font:inherit;font-size:18px;cursor:pointer}
.sm-stp button:active{background:rgb(56 225 255 / .2)}
.sm-stp input{height:36px;min-width:0;width:100%;border:0;background:transparent;color:var(--sm-text);font:inherit;font-weight:700;text-align:center;font-variant-numeric:tabular-nums;-moz-appearance:textfield;appearance:textfield}
.sm-stp input::-webkit-outer-spin-button,.sm-stp input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.sm-stp small{font-size:12px;color:var(--sm-muted)}
.sm-seg{display:flex;gap:4px}
.sm-seg button{flex:1;height:36px;border-radius:12px;border:1px solid rgb(255 255 255 / .12);background:transparent;color:var(--sm-text);font:inherit;font-size:16px;cursor:pointer}
.sm-seg button.on{border-color:var(--sm-amber);background:rgb(255 176 32 / .15);color:var(--sm-amber)}
.sm-edit-foot{display:flex;flex-wrap:wrap;align-items:flex-end;gap:8px}
.sm-edit-foot .sm-stp{width:150px}
.sm-root .sm-floor-ed{border-left:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
/* plantas en capas */
.sm-root .sm-floors{right:70px;bottom:16px;top:auto;translate:none;padding:8px;gap:0;transform-origin:100% 100%;transition:transform 200ms cubic-bezier(.22,.9,.3,1),bottom 280ms}
.sm-root .sm-floors:hover,.sm-root .sm-floors.is-hold{transform:scale(1.18)}
.sm-fstack{display:flex;flex-direction:column;gap:2px}
.sm-floors .sm-fl{position:relative;width:64px;height:30px;border:0;border-radius:0;background:transparent;display:grid;place-items:center;padding:0;cursor:pointer}
.sm-floors .sm-fl i{position:absolute;inset:4px 6px;border-radius:8px;background:rgb(56 225 255 / .12);border:1px solid rgb(56 225 255 / .45);transform:skewX(-28deg);transition:background 200ms,border-color 200ms}
.sm-floors .sm-fl b{position:relative;font-size:13px;color:var(--sm-text)}
.sm-floors .sm-fl small{position:absolute;right:calc(100% + 10px);white-space:nowrap;font-size:12px;color:var(--sm-text);background:var(--sm-panel);border:1px solid var(--sm-line);padding:3px 8px;border-radius:8px;opacity:0;pointer-events:none;transition:opacity 200ms}
.sm-floors:hover .sm-fl small,.sm-floors.is-hold .sm-fl small{opacity:1}
.sm-floors .sm-fl:hover i{border-color:var(--sm-cyan);background:rgb(56 225 255 / .22)}
.sm-floors .sm-fl.on i,.sm-floors .sm-fl.is-pre i{background:linear-gradient(90deg,rgb(255 194 77),rgb(245 158 11));border-color:rgb(245 158 11)}
.sm-floors .sm-fl.on b,.sm-floors .sm-fl.is-pre b{color:rgb(26 18 4)}
.sm-floors.is-hold .sm-fl.on:not(.is-pre) i{background:rgb(56 225 255 / .12);border-color:rgb(56 225 255 / .45)}
.sm-floors.is-hold .sm-fl.on:not(.is-pre) b{color:var(--sm-text)}
.sm-floors{touch-action:none}
/* ===== móvil: una hoja inferior a la vez, botones flotantes encima de la hoja ===== */
@media (max-width:760px){
 .sm-root{--sm-sheet:132px}
 .sm-top{gap:6px;padding:calc(6px + env(safe-area-inset-top)) 8px 6px}
 .sm-back{width:40px;padding:0;justify-content:center}.sm-back span{display:none}
 .sm-title{min-width:0;flex:1}.sm-title b{font-size:13px;letter-spacing:.16em}.sm-title small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 .sm-hsel .sm-select{max-width:96px;height:38px;font-size:12px;padding:0 6px}
 .sm-root .sm-left,.sm-root .sm-card,.sm-root .sm-edit{left:0;right:0;bottom:0;top:auto;width:auto;max-height:none;border-radius:16px 16px 0 0;border-bottom:0;padding:0 12px calc(8px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:10px;overflow:hidden;animation:none;transition:height 280ms cubic-bezier(.22,.9,.3,1);box-shadow:var(--elev-3)}
 .sm-root .sm-left{height:132px}
 .sm-root .sm-card{height:52vh}
 .sm-root .sm-card[hidden],.sm-root .sm-edit[hidden]{display:none}
 .sm-root.has-card .sm-left,.sm-root.is-editing .sm-left,.sm-root.is-editing .sm-card{display:none}
 .sm-grip,.sm-root .sm-left-handle{flex:none;display:grid;justify-items:center;align-content:center;gap:2px;height:26px;margin:0 -12px;touch-action:none;cursor:grab;color:var(--sm-muted);font-size:12px;font-weight:700}
 .sm-grip::before{content:"";width:42px;height:5px;border-radius:8px;background:rgb(255 255 255 / .3)}
 .sm-root .sm-left-handle{height:34px}.sm-root .sm-left-handle i{width:42px;height:5px}
 .sm-card-body,.sm-edit-body{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;align-content:start;padding-bottom:6px}
 .sm-root .sm-left:not(.is-open) .sm-kpis,.sm-root .sm-left:not(.is-open) .sm-occ,.sm-root .sm-left:not(.is-open) .sm-chips,.sm-root .sm-left:not(.is-open) .sm-list{display:none}
 .sm-root .sm-left:not(.is-open) .sm-search{display:flex}
 .sm-root .sm-left .sm-kpis{grid-template-columns:repeat(4,1fr)}
 .sm-search input,.sm-wd-note,.sm-wd-step input,.sm-prop-t input,.sm-prop-ids input,.sm-stp input,.sm-cat,.sm-adjust-b input{font-size:16px}
 .sm-x{top:0;right:0}
 .sm-root .sm-ctrl{top:auto;right:10px;bottom:calc(var(--sm-sheet) + 12px);transition:bottom 280ms cubic-bezier(.22,.9,.3,1),opacity .2s}
 .sm-root .sm-ctrl [data-sm-zoom]{display:none}
 .sm-root .sm-floors{right:62px;bottom:calc(var(--sm-sheet) + 12px);transform-origin:100% 100%}
 .sm-root .sm-floors:hover{transform:none}.sm-root .sm-floors.is-hold{transform:scale(1.22)}
 .sm-floors .sm-fl small{display:none}.sm-floors.is-hold .sm-fl small{display:block}
 .sm-root.sheet-full .sm-ctrl,.sm-root.sheet-full .sm-floors{opacity:0;pointer-events:none}
 .sm-root .sm-hint{top:calc(56px + env(safe-area-inset-top));bottom:auto;border-radius:16px;max-width:calc(100% - 24px);font-size:13px}
 .sm-run{top:calc(56px + env(safe-area-inset-top));width:calc(100% - 16px);min-width:0}
 .sm-root.is-running .sm-hint{display:none}
 .sm-tag{max-width:70vw}
 .sm-palette{margin:0 -12px;padding:2px 12px 6px}
 .sm-piece-b{width:72px}
 .sm-steps{grid-template-columns:1fr 1fr}
 .sm-edit-foot .sm-stp{width:calc(50% - 4px)}
 .sm-edit-head .sm-btn{min-height:38px;padding:0 12px}
 .sm-root .sm-edit{height:168px}
 .sm-card-a .sm-btn{flex:1 1 auto}
}
@media (prefers-reduced-motion:reduce){.sm-root .sm-left,.sm-root .sm-card,.sm-root .sm-edit,.sm-root .sm-floors{transition:none}.sm-scan-frame i{animation:none}}
.sm-edit-body,.sm-card-body{grid-auto-rows:max-content}.sm-palette{min-height:86px;flex:none}
@media (max-width:760px){.sm-root .sm-left-handle,.sm-root .sm-kpis,.sm-root .sm-occ,.sm-root .sm-left .sm-search,.sm-root .sm-chips,.sm-card-h,.sm-slot-h,.sm-edit-head,.sm-prop-h{touch-action:none}.sm-root .sm-left-handle span{font-size:12px}.sm-root .sm-left-handle::after{content:"";}}
.sm-row.on{background:linear-gradient(90deg,rgb(56 225 255 / .16),rgb(255 176 32 / .12));border-color:rgb(255 176 32 / .7);box-shadow:inset 4px 0 0 var(--sm-cyan),0 0 18px rgb(255 176 32 / .18)}.sm-row.on .sm-code{color:var(--sm-amber)}.sm-row.on .sm-code::before{content:"➜ ";color:var(--sm-cyan)}
/* Stock map · reparto de un producto en varios sitios */
.sm-dist{display:grid;gap:6px;padding:10px 12px;border-radius:12px;background:rgb(255 255 255 / .035);border:1px solid rgb(255 255 255 / .07)}
.sm-dist-h{display:flex;align-items:baseline;gap:8px}.sm-dist-h span{color:var(--sm-muted);font-size:12px}.sm-dist-h b{font-size:16px;font-variant-numeric:tabular-nums}.sm-dist-h small{margin-left:auto;color:var(--sm-muted)}
.sm-dist-bar{display:flex;height:8px;border-radius:999px;overflow:hidden;background:rgb(255 255 255 / .06)}.sm-dist-bar i{display:block;height:100%}.sm-dist-bar i.is-rest{background:rgb(255 255 255 / .18)}
.sm-dist-row{display:grid;grid-template-columns:10px minmax(0,1fr) auto 40px auto;align-items:center;gap:8px;min-height:40px;padding:2px 4px;border-radius:12px}
.sm-dist-row.on{background:rgb(255 176 32 / .1);box-shadow:inset 3px 0 0 var(--sm-cyan)}
.sm-dist-row>i{width:10px;height:10px;border-radius:3px}.sm-dist-row.is-rest>i{background:rgb(255 255 255 / .25)}
.sm-dist-go{display:grid;min-width:0;border:0;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer;padding:0}
.sm-dist-go b{font-size:14px;color:var(--sm-cyan)}.sm-dist-row.is-rest .sm-dist-go b{color:var(--sm-muted)}
.sm-dist-go small{font-size:12px;color:var(--sm-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sm-dist-q{display:flex;align-items:center;gap:4px}.sm-dist-q input{width:64px;height:34px;border-radius:8px;border:1px solid rgb(255 255 255 / .14);background:rgb(0 0 0 / .25);color:var(--sm-text);font:inherit;font-weight:700;text-align:center}.sm-dist-q span{font-size:12px;color:var(--sm-muted)}
.sm-dist-n{font-variant-numeric:tabular-nums;font-size:13px}
.sm-dist-pct{font-size:12px;font-weight:700;color:var(--sm-amber);text-align:right;font-variant-numeric:tabular-nums}
.sm-dist-add{justify-self:start;min-height:34px}
.sm-sugg-t{color:var(--sm-muted);font-size:12px}
@media (max-width:760px){.sm-dist-q input{font-size:16px}}
/* Stock map · plantas con el icono de capas (sustituye a las capas inclinadas) */
.sm-root .sm-floors{width:76px;padding:12px 8px 8px;display:grid;justify-items:center;gap:6px;transform:none}
.sm-root .sm-floors:hover,.sm-root .sm-floors.is-hold{transform:none}
.sm-lyrs{--gap:9px;position:relative;width:48px;height:calc(26px + (var(--n) - 1) * var(--gap));transition:height 200ms cubic-bezier(.22,.9,.3,1)}
.sm-floors.is-hold .sm-lyrs{--gap:44px}
@media (hover:hover){.sm-floors:hover .sm-lyrs{--gap:40px}}
.sm-lyr{position:absolute;left:0;top:calc(var(--i) * var(--gap));z-index:calc(20 - var(--i));width:48px;height:26px;padding:0;border:0;background:none;cursor:pointer;transition:top 200ms cubic-bezier(.22,.9,.3,1)}
.sm-lyr svg{display:block;width:48px;height:26px;overflow:visible}
.sm-lyr path{fill:rgb(148 163 184 / .75);stroke:rgb(9 15 29);stroke-width:3.2;stroke-linejoin:round;transition:fill 200ms,transform 200ms;transform-origin:24px 13px}
.sm-lyr:hover path{fill:rgb(203 213 225)}
.sm-lyr.on path{fill:var(--sm-amber)}
.sm-lyr.is-pre path{fill:var(--sm-cyan);transform:scale(1.12)}
.sm-lyr span{position:absolute;right:calc(100% + 12px);top:50%;translate:0 -50%;white-space:nowrap;padding:4px 9px;border-radius:8px;background:var(--sm-panel);border:1px solid var(--sm-line);color:var(--sm-text);font-size:12px;font-weight:700;opacity:0;pointer-events:none;transition:opacity 200ms}
.sm-lyr.on span{border-color:var(--sm-amber);color:var(--sm-amber)}.sm-lyr.is-pre span{border-color:var(--sm-cyan);color:var(--sm-cyan)}
.sm-floors.is-hold .sm-lyr span{opacity:1}
@media (hover:hover){.sm-floors:hover .sm-lyr span{opacity:1}}
.sm-lyr-cur{font-size:12px;color:var(--sm-muted);white-space:nowrap;max-width:70px;overflow:hidden;text-overflow:ellipsis}
.sm-floors.is-hold{box-shadow:0 0 0 2px rgb(56 225 255 / .35),0 14px 40px rgb(0 0 0 / .5)}
@media (max-width:760px){.sm-root .sm-floors{width:64px;padding:10px 6px 6px}.sm-lyr-cur{font-size:12px}}
.sm-floors .sm-lyr,.sm-floors .sm-lyr.on,.sm-floors .sm-lyr:hover{width:48px;height:26px;border:0;border-radius:0;background:none;box-shadow:none;color:inherit}
.sm-floors.is-open .sm-lyrs{--gap:44px}.sm-floors.is-open .sm-lyr span{opacity:1}.sm-floors.is-open{box-shadow:0 0 0 2px rgb(56 225 255 / .35),0 14px 40px rgb(0 0 0 / .5)}
/* Stock map · confirmación propia y barra «Deshacer» */
.sm-confirm{z-index:45}
.sm-confirm .sm-modal-card{max-width:420px}
.sm-btn.danger.is-solid{background:rgb(239 68 68);border-color:rgb(239 68 68);color:rgb(255 255 255)}
.sm-snack{position:absolute;left:50%;bottom:24px;translate:-50% 0;z-index:35;display:flex;align-items:center;gap:14px;max-width:min(520px,calc(100% - 24px));padding:10px 10px 10px 16px;border-radius:16px;background:rgb(15 23 42 / .96);border:1px solid var(--sm-line);box-shadow:var(--elev-3);color:var(--sm-text);overflow:hidden}
.sm-snack[hidden]{display:none}
.sm-snack.is-in{animation:sm-snack-in .28s cubic-bezier(.22,.9,.3,1)}
@keyframes sm-snack-in{from{opacity:0;transform:translateY(12px)}}
.sm-snack span{flex:1;min-width:0;font-size:13px}
.sm-snack button{flex:none;height:34px;padding:0 14px;border-radius:12px;border:0;background:rgb(56 225 255 / .16);color:var(--sm-cyan);font:inherit;font-weight:700;cursor:pointer}
.sm-snack i{position:absolute;left:0;bottom:0;height:3px;width:100%;background:var(--sm-cyan);transform-origin:left;animation:sm-snack-t linear forwards}
@keyframes sm-snack-t{to{transform:scaleX(0)}}
.sm-ib:disabled{opacity:.35;cursor:default}
@media (max-width:760px){
 .sm-snack{bottom:calc(var(--sm-sheet) + 12px)}
 /* plantas: a la izquierda, a media altura y fijas (la hoja de abajo no las mueve); los nombres salen a la derecha */
 .sm-root .sm-floors{left:10px;right:auto;top:42%;bottom:auto;translate:0 -50%;transition:transform 200ms}
 .sm-floors .sm-lyr span{left:calc(100% + 12px);right:auto}
}
@media (prefers-reduced-motion:reduce){.sm-snack.is-in{animation:none}.sm-snack i{animation:none}}
/* Stock map · elegir cómo escanear */
.sm-scan-choose{z-index:46}
.sm-scan-choose .sm-modal-card{max-width:420px}
.sm-scan-choose h3{display:flex;align-items:center;gap:8px}
.sm-scan-opt{display:grid;gap:3px;width:100%;padding:12px 14px;border-radius:16px;border:1px solid rgb(255 255 255 / .12);background:rgb(255 255 255 / .04);color:var(--sm-text);font:inherit;text-align:left;cursor:pointer}
.sm-scan-opt:hover{border-color:var(--sm-cyan)}
.sm-scan-opt b{font-size:15px}.sm-scan-opt small{color:var(--sm-muted);line-height:1.35}
.sm-scan-opt[data-opt="photo"]{border-color:rgb(56 225 255 / .45);background:rgb(56 225 255 / .08)}
.sm-scan-rem{display:flex;align-items:center;gap:8px;color:var(--sm-muted);font-size:13px}
.sm-scan-help{color:var(--sm-muted);font-size:13px}.sm-scan-help summary{cursor:pointer;color:var(--sm-cyan);font-weight:700}.sm-scan-help p{margin:6px 0 0;line-height:1.45}
.sm-scan-ui .sm-scan-help{max-width:340px;text-align:left;background:rgb(0 0 0 / .55);padding:8px 10px;border-radius:12px}
.sm-scan-btns{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}
/* Stock map · indicadores tocables y hoja de abajo con resumen al asomar (móvil) */
button.sm-kpi{display:block;width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer;transition:border-color 200ms,background 200ms,transform 100ms}
button.sm-kpi:hover{border-color:rgb(56 225 255 / .45)}
button.sm-kpi:active{transform:scale(.97)}
button.sm-kpi.on{border-color:var(--sm-amber);background:rgb(255 176 32 / .1)}
@media (max-width:760px){
 .sm-root .sm-left:not(.is-open) .sm-kpis{display:grid}
 .sm-root .sm-left:not(.is-open) .sm-search{display:none}
 .sm-root .sm-left-handle span{font-size:12px;letter-spacing:.01em}
 .sm-root .sm-left-handle i{animation:sm-nudge 2.4s ease-in-out 1.2s 2}
 @keyframes sm-nudge{0%,100%{transform:translateY(0)}40%{transform:translateY(-4px)}60%{transform:translateY(0)}}
 .sm-root .sm-left{animation:sm-peek-in .55s cubic-bezier(.22,.9,.3,1) both}
 @keyframes sm-peek-in{from{transform:translateY(100%)}}
 .sm-root .sm-left .sm-kpis.is-intro .sm-kpi{animation:sm-kpi-in .45s cubic-bezier(.22,.9,.3,1) both;animation-delay:calc(.25s + var(--d,0ms))}
 @keyframes sm-kpi-in{from{opacity:0;transform:translateY(10px)}}
 .sm-root .sm-left .sm-kpis{gap:6px}
 .sm-root .sm-left .sm-kpi{padding:7px 8px;min-height:52px}
}
@media (prefers-reduced-motion:reduce){.sm-root .sm-left,.sm-root .sm-left .sm-kpi,.sm-root .sm-left-handle i{animation:none}}
.sm-office{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:8px 10px;border-radius:12px;background:rgb(56 225 255 / .08);border:1px solid rgb(56 225 255 / .3);color:var(--sm-text);font-size:13px}
.sm-office[hidden]{display:none}.sm-office span{color:var(--sm-muted)}
.sm-office select{flex:1;min-width:120px;height:32px;border-radius:8px;border:1px solid rgb(255 255 255 / .14);background:rgb(0 0 0 / .25);color:var(--sm-text);font:inherit}
@media (max-width:760px){.sm-root .sm-left:not(.is-open) .sm-office{display:none}.sm-office select{font-size:16px}}

/* Stock map: productos sin movimiento */
.sm-stale{display:flex;align-items:stretch;gap:6px}
.sm-stale[hidden]{display:none}
.sm-stale-main{flex:1;min-width:0;display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:12px;border:1px solid rgb(168 148 230 / .38);background:rgb(142 127 184 / .14);color:var(--sm-text);font:inherit;text-align:left;cursor:pointer;animation:sm-stale-in .45s ease-out both}
.sm-stale-main:hover{background:rgb(142 127 184 / .22)}
.sm-stale-main b{font-size:18px;color:rgb(196 180 255)}
.sm-stale-main small{color:var(--sm-muted);font-size:12px;line-height:1.3}
.sm-stale .sm-ib{flex:none;width:40px;border-radius:12px;border:1px solid rgb(255 255 255 / .12);background:transparent;color:var(--sm-text);cursor:pointer;font-size:16px}
@keyframes sm-stale-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.sm-stale-main{animation:none}}
.sm-idle{font-style:normal;font-size:12px;padding:1px 6px;border-radius:999px;background:rgb(142 127 184 / .2);color:rgb(196 180 255);white-space:nowrap}
.sm-idle-card{display:flex;gap:10px;align-items:flex-start;padding:9px 11px;border-radius:12px;background:rgb(255 255 255 / .04);border:1px solid rgb(255 255 255 / .08);margin:8px 0}
.sm-idle-card.is-stale{background:rgb(142 127 184 / .14);border-color:rgb(168 148 230 / .38)}
.sm-idle-card b{display:block;font-size:13px}.sm-idle-card small{color:var(--sm-muted);font-size:12px}
.sm-stale-opts{flex-wrap:wrap;margin:12px 0 8px}.sm-stale-opts button{flex:1 1 72px;white-space:nowrap;font-size:14px}
.sm-stale-custom{display:flex;align-items:center;gap:8px;margin-bottom:12px;color:var(--sm-muted);font-size:13px}
.sm-stale-custom input{width:110px;height:36px;border-radius:12px;border:1px solid rgb(255 255 255 / .14);background:rgb(0 0 0 / .25);color:var(--sm-text);font:inherit;font-size:16px;padding:0 10px}
.wj-badge.wj-idle{background:rgb(142 127 184 / .16);color:rgb(110 90 170);border:1px solid rgb(142 127 184 / .35)}
.sm-stale-quiet{flex:1;display:flex;align-items:center;gap:8px;padding:6px 10px;border-radius:12px;border:1px dashed rgb(255 255 255 / .12);background:transparent;color:var(--sm-muted);font:inherit;font-size:12px;text-align:left;cursor:pointer}
.sm-stale-quiet small{flex:1}.sm-stale-quiet:hover{color:var(--sm-text)}
@media (max-width:760px){.sm-root .sm-left:not(.is-open) .sm-stale.is-quiet{display:none}}
/* Stock map · editor: 3 pasos (local → muebles → entradas) y herramienta «El local» */
.sm-steps3{display:flex;gap:6px;margin:4px 0 8px}
.sm-steps3 button{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;min-height:36px;padding:0 8px;border-radius:12px;border:1px solid rgb(255 255 255 / .12);background:rgb(255 255 255 / .03);color:var(--sm-muted);font:inherit;font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap}
.sm-steps3 button i{font-style:normal;display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:rgb(255 255 255 / .08);font-size:12px}
.sm-steps3 button.on{border-color:var(--sm-cyan);color:var(--sm-text);background:rgb(56 225 255 / .1)}
.sm-steps3 button.on i{background:var(--sm-cyan);color:rgb(6 10 20)}
.sm-land{display:grid;gap:8px}
.sm-land-size{display:flex;align-items:baseline;gap:10px}.sm-land-size b{font-size:18px}.sm-land-size small{color:var(--sm-muted)}
.sm-land-a{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
@media (max-width:760px){.sm-steps3 button{font-size:12px;padding:0 4px}}
/* Con el Stock map abierto (capa a pantalla completa), los avisos tienen que verse por encima */
html.wj-stockmap-open .wj-toast-root{z-index:4100}
/* Stock map · paleta por categorías y menú del clic derecho */
.sm-palcats{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;margin:2px 0 6px}
.sm-palcats button{flex:none;height:30px;padding:0 12px;border-radius:999px;border:1px solid rgb(255 255 255 / .12);background:transparent;color:var(--sm-muted);font:inherit;font-size:13px;font-weight:600;cursor:pointer}
.sm-palcats button.on{background:var(--sm-cyan);border-color:var(--sm-cyan);color:rgb(6 10 20)}
.sm-ctx{position:absolute;z-index:60;min-width:220px;max-width:300px;padding:6px;border-radius:16px;background:rgb(10 17 32 / .97);border:1px solid rgb(56 225 255 / .28);box-shadow:var(--elev-3);backdrop-filter:blur(10px);animation:sm-ctx-in .14s ease-out both}
@keyframes sm-ctx-in{from{opacity:0;transform:scale(.96)}to{opacity:1;transform:none}}
.sm-ctx-h{padding:6px 10px 8px;color:var(--sm-muted);font-size:12px;border-bottom:1px solid rgb(255 255 255 / .08);margin-bottom:4px}.sm-ctx-h b{color:var(--sm-text)}
.sm-ctx button{display:flex;align-items:center;gap:10px;width:100%;min-height:36px;padding:0 10px;border:0;border-radius:8px;background:transparent;color:var(--sm-text);font:inherit;font-size:14px;text-align:left;cursor:pointer}
.sm-ctx button:hover,.sm-ctx button:focus-visible{background:rgb(56 225 255 / .12);outline:none}
.sm-ctx button.is-danger{color:var(--sm-red)}.sm-ctx button.is-danger:hover{background:rgb(248 113 113 / .12)}
.sm-ctx-ic{display:grid;place-items:center;width:22px;height:22px;flex:none;color:var(--sm-cyan)}.sm-ctx-ic svg{width:22px;height:22px}
.sm-ctx-l{flex:1}.sm-ctx kbd{font:inherit;font-size:11px;color:var(--sm-muted);padding:1px 6px;border-radius:8px;border:1px solid rgb(255 255 255 / .14)}
.sm-ctx hr{border:0;border-top:1px solid rgb(255 255 255 / .08);margin:4px 2px}
/* Stock map · primera persona */
.sm-root.is-walk .sm-left,.sm-root.is-walk .sm-hint,.sm-root.is-walk .sm-ctrl>button:not([data-sm-walk-go]){display:none}
.sm-root.is-walk .sm-ctrl [data-sm-walk-go]{background:var(--sm-amber);color:rgb(6 10 20)}
.sm-walk{position:absolute;inset:0;z-index:15;pointer-events:none}
.sm-walk-top,.sm-walk-btns,.sm-joy{pointer-events:auto}
.sm-cross{position:absolute;left:50%;top:50%;width:22px;height:22px;margin:-11px 0 0 -11px;border-radius:50%;border:2px solid rgb(255 255 255 / .75);box-shadow:0 0 0 1px rgb(0 0 0 / .45);transition:transform 100ms,border-color 100ms}
.sm-cross::after{content:'';position:absolute;left:50%;top:50%;width:4px;height:4px;margin:-2px 0 0 -2px;border-radius:50%;background:rgb(255 255 255)}
.sm-cross.on{border-color:var(--sm-amber);transform:scale(1.3)}
.sm-hand{position:absolute;right:3%;bottom:-8px;width:min(30vw,230px);filter:drop-shadow(0 12px 22px rgb(0 0 0 / .55));transition:transform 200ms ease-out;transform-origin:80% 100%}
.sm-hand svg{display:block;width:100%;height:auto}
.sm-aim{position:absolute;left:calc(50% + 34px);top:calc(50% - 18px);min-width:230px;max-width:300px;padding:10px 12px;border-radius:12px;background:rgb(10 17 32 / .9);border:1px solid rgb(255 176 32 / .5);color:var(--sm-text);backdrop-filter:blur(6px);animation:sm-ctx-in .12s ease-out both}
.sm-aim[hidden]{display:none}
.sm-aim-h b{font-size:15px;color:var(--sm-amber)}.sm-aim-h small{display:block;color:var(--sm-muted);font-size:12px}
.sm-aim-list{display:grid;gap:4px;margin-top:8px}
.sm-aim-row{display:grid;grid-template-columns:26px 1fr auto;gap:8px;align-items:center;font-size:13px;padding:3px 4px;border-radius:8px}
.sm-aim-row.on{background:rgb(255 176 32 / .15)}.sm-aim-row .sm-thumb{width:26px;height:26px;font-size:12px}
.sm-aim-row span:nth-child(2){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sm-aim-empty{margin:6px 0 0;color:var(--sm-muted);font-size:13px}
.sm-aim-keys{display:flex;flex-wrap:wrap;gap:6px 12px;margin-top:8px;font-size:12px;color:var(--sm-muted)}
.sm-aim-keys kbd{font:inherit;font-weight:700;color:rgb(6 10 20);background:var(--sm-amber);border-radius:8px;padding:0 6px;margin-right:3px}
.sm-walk-top{position:absolute;left:12px;top:64px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.sm-walk-keys{font-size:12px;color:var(--sm-muted);background:rgb(10 17 32 / .75);padding:6px 10px;border-radius:8px}
.sm-walk-start{position:absolute;left:50%;top:62%;transform:translateX(-50%);text-align:center;padding:12px 18px;border-radius:16px;background:rgb(10 17 32 / .88);border:1px solid rgb(56 225 255 / .35);color:var(--sm-text)}
.sm-walk-start[hidden]{display:none}.sm-walk-start b{display:block;font-size:15px}.sm-walk-start small{color:var(--sm-muted)}
.sm-joy{position:absolute;left:22px;bottom:calc(26px + env(safe-area-inset-bottom));width:124px;height:124px;border-radius:50%;background:rgb(255 255 255 / .08);border:2px solid rgb(255 255 255 / .22);touch-action:none}
.sm-joy i{position:absolute;left:50%;top:50%;width:54px;height:54px;margin:-27px 0 0 -27px;border-radius:50%;background:rgb(56 225 255 / .55);box-shadow:var(--elev-2)}
.sm-walk-btns{position:absolute;right:18px;bottom:calc(190px + env(safe-area-inset-bottom));display:flex;gap:12px;align-items:center}
.sm-walk-use{display:grid;place-items:center;width:62px;height:62px;border-radius:50%;border:2px solid rgb(255 255 255 / .3);background:rgb(10 17 32 / .75);color:var(--sm-text);font:inherit;font-weight:700;touch-action:manipulation}
.sm-walk-use[hidden]{display:none}.sm-walk-use.is-main{width:84px;height:84px;background:var(--sm-amber);color:rgb(6 10 20);border-color:transparent;font-size:16px}
@media (max-width:760px){.sm-hand{width:38vw;right:-2%}.sm-aim{left:50%;top:auto;bottom:calc(300px + env(safe-area-inset-bottom));transform:translateX(-50%);min-width:0;width:calc(100% - 40px);max-width:340px}.sm-walk-top{top:60px}}
/* Stock map · primera persona: varita mágica (sustituye a la mano) */
.sm-hand.sm-wand{width:min(24vw,210px);right:2%;bottom:-4px;filter:drop-shadow(0 10px 18px rgb(0 0 0 / .5))}
.sm-wand .sm-wand-glow{opacity:.45;transform-origin:60px 60px;transition:opacity .2s;animation:sm-wand-pulse 2.4s ease-in-out infinite}
.sm-wand.is-hot .sm-wand-glow{opacity:1;animation-duration:.9s}
.sm-wand .sm-wand-star{transform-origin:60px 56px;animation:sm-wand-spin 6s linear infinite}
.sm-wand .sm-wand-sparks path,.sm-wand .sm-wand-sparks circle{animation:sm-wand-twinkle 1.6s ease-in-out infinite}
.sm-wand .sm-wand-sparks :nth-child(2){animation-delay:.3s}.sm-wand .sm-wand-sparks :nth-child(3){animation-delay:.6s}.sm-wand .sm-wand-sparks :nth-child(4){animation-delay:.9s}.sm-wand .sm-wand-sparks :nth-child(5){animation-delay:1.2s}
.sm-wand.is-hot .sm-wand-sparks{filter:drop-shadow(0 0 4px rgb(254 240 138))}
@keyframes sm-wand-pulse{0%,100%{transform:scale(.9)}50%{transform:scale(1.08)}}
@keyframes sm-wand-spin{to{transform:rotate(360deg)}}
@keyframes sm-wand-twinkle{0%,100%{opacity:.2}50%{opacity:1}}
@media (prefers-reduced-motion:reduce){.sm-wand .sm-wand-glow,.sm-wand .sm-wand-star,.sm-wand .sm-wand-sparks *{animation:none}}
/* Stock map · cápsulas abajo a la izquierda (ordenador): el panel se recoge, se asoma y se abre con animación */
.sm-dock,.sm-walkcard,.sm-left-fold{display:none}
@media (min-width:761px){
  .sm-left{transform-origin:28px calc(100% + 44px);transition:transform .42s cubic-bezier(.2,.9,.25,1.05),opacity 280ms ease,clip-path .42s cubic-bezier(.2,.8,.2,1),filter 280ms;clip-path:inset(0 0 0 0 round 18px)}
  .sm-root.dock-products-closed .sm-left{transform:translateY(24px) scale(.16);opacity:0;pointer-events:none;filter:blur(2px)}
  .sm-root.dock-products-closed.dock-products-peek .sm-left{transform:none;opacity:.96;pointer-events:auto;filter:none;clip-path:inset(46% 0 0 0 round 18px)}
  .sm-left-fold{display:grid;place-items:center;position:absolute;right:10px;top:10px;z-index:3;width:30px;height:30px;border-radius:8px;border:1px solid rgb(255 255 255 / .14);background:rgb(255 255 255 / .04);color:var(--sm-muted);cursor:pointer;transition:background 200ms,color 200ms}
  .sm-left-fold:hover{background:rgb(56 225 255 / .14);color:var(--sm-cyan)}
  .sm-dock{display:flex;gap:8px;position:absolute;left:16px;bottom:16px;z-index:12;pointer-events:none}
  .sm-cap{pointer-events:auto;display:inline-flex;align-items:center;gap:8px;height:40px;padding:0 16px 0 12px;border-radius:999px;border:1px solid rgb(255 255 255 / .14);background:rgb(10 17 32 / .88);color:var(--sm-text);font:inherit;font-size:13px;font-weight:700;cursor:pointer;backdrop-filter:blur(10px);box-shadow:var(--elev-2);transition:transform 280ms cubic-bezier(.2,.9,.25,1.2),background .2s,border-color .2s,opacity 280ms;animation:sm-cap-in .35s cubic-bezier(.2,.9,.25,1.2) both}
  .sm-cap:nth-child(2){animation-delay:.05s}.sm-cap:nth-child(3){animation-delay:.1s}
  .sm-cap:hover{transform:translateY(-2px) scale(1.04)}
  .sm-cap i{font-style:normal;min-width:20px;height:20px;padding:0 6px;border-radius:999px;display:grid;place-items:center;font-size:12px;background:rgb(255 255 255 / .1)}
  .sm-cap i[hidden]{display:none}
  .sm-cap-dot{width:10px;height:10px;border-radius:50%;box-shadow:var(--elev-2)}
  .sm-cap.is-products .sm-cap-dot{background:var(--sm-cyan);color:var(--sm-cyan)}
  .sm-cap.is-walk .sm-cap-dot{background:var(--sm-amber);color:var(--sm-amber)}
  .sm-cap.is-cart .sm-cap-dot{background:rgb(196 181 253);color:rgb(196 181 253)}
  .sm-cap.on{transform:scale(.94);opacity:.55}
  .sm-cap.is-products.on{display:none}
  .sm-cap.is-walk.on{opacity:1;transform:none;border-color:var(--sm-amber);background:rgb(255 176 32 / .16)}
  .sm-cap.is-cart.on{opacity:1;transform:none;border-color:rgb(196 181 253);background:rgb(139 92 246 / .2)}
  .sm-walkcard{display:block;position:absolute;left:16px;bottom:66px;z-index:12;width:300px;padding:14px;border-radius:16px;background:rgb(10 17 32 / .94);border:1px solid rgb(255 176 32 / .45);box-shadow:var(--elev-3);backdrop-filter:blur(12px);transform-origin:40px calc(100% + 30px);transform:translateY(12px) scale(.2);opacity:0;pointer-events:none;transition:transform .4s cubic-bezier(.2,.9,.25,1.12),opacity 280ms}
  .sm-root.dock-walk-open .sm-walkcard{transform:none;opacity:1;pointer-events:auto}
  .sm-walkcard-h b{display:block;font-size:14px;color:var(--sm-amber)}.sm-walkcard-h small{display:block;margin-top:4px;color:var(--sm-muted);font-size:12px;line-height:1.4}
  .sm-walkcard-a{display:flex;align-items:center;gap:12px;margin-top:12px}
  .sm-walkpin{display:grid;place-items:center;width:56px;height:56px;flex:none;border-radius:16px;background:radial-gradient(circle at 50% 30%,rgb(255 176 32 / .35),rgb(255 176 32 / .08));border:1px dashed rgb(255 176 32 / .7);color:var(--sm-amber);cursor:grab;touch-action:none;animation:sm-pin-bob 1.8s ease-in-out infinite}
  .sm-walkpin.is-flying{position:fixed;left:0;top:0;z-index:9999;pointer-events:none;cursor:grabbing;animation:none;box-shadow:var(--elev-3);border-style:solid}
  .sm-root.is-pin-drag .sm-stage canvas{cursor:copy}
  .sm-root.is-walk .sm-cap.is-products,.sm-root.is-walk .sm-cap.is-cart{opacity:.35;pointer-events:none}
  .sm-root.is-editing .sm-dock,.sm-root.is-editing .sm-walkcard{display:none}
}
@keyframes sm-cap-in{from{opacity:0;transform:translateY(16px) scale(.8)}to{opacity:1;transform:none}}
@keyframes sm-pin-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
@media (prefers-reduced-motion:reduce){.sm-left,.sm-cap,.sm-walkcard,.sm-walkpin{transition:none;animation:none}}
@media (min-width:761px){.sm-root.is-walk .sm-walkcard{opacity:0;transform:translateY(12px) scale(.2);pointer-events:none}}
/* Cápsulas: el panel abierto deja sitio abajo a las cápsulas y el botón «Recoger» va en su propia fila (no tapa nada) */
@media (min-width:761px){
  .sm-root .sm-left{bottom:68px;padding-top:50px}
  .sm-left-fold{width:auto;height:30px;padding:0 10px;gap:6px;display:flex;align-items:center;top:12px;right:12px;font:inherit;font-size:12px;font-weight:700}
  .sm-left-fold span{line-height:1}
}
/* Primera persona: aviso para volver a capturar el ratón (el clic pasa a la vista) */
.sm-walk-resume{position:absolute;left:50%;top:calc(50% + 46px);transform:translateX(-50%);padding:9px 16px;border-radius:12px;background:rgba(6,10,20,.8);border:1px solid rgba(56,225,255,.45);color:rgb(232,243,255);font-size:13px;font-weight:600;white-space:nowrap;pointer-events:none;box-shadow:var(--elev-2)}
.sm-walk-resume[hidden]{display:none}

/* Muñeco de abajo a la derecha: clic = primera persona; arrastrarlo al mapa = empezar ahí */
.sm-ctrl .sm-walk-btn{cursor:grab;touch-action:none}
.sm-ctrl .sm-walk-btn:active{cursor:grabbing}
.sm-walk-ghost{position:fixed;left:0;top:0;z-index:9999;display:grid;place-items:center;width:52px;height:52px;border-radius:16px;background:radial-gradient(circle at 50% 30%,rgba(255,176,32,.45),rgba(255,176,32,.12));border:1px solid rgba(255,176,32,.85);color:rgb(255,176,32);box-shadow:var(--elev-3);pointer-events:none}
.sm-walk-ghost svg{width:30px;height:30px}
.sm-walk-ghost::after{content:'';position:absolute;left:50%;bottom:-10px;width:14px;height:6px;margin-left:-7px;border-radius:50%;background:rgba(255,176,32,.55);filter:blur(1px)}
.sm-edit-body,.sm-card-body{grid-auto-rows:max-content}.sm-palette{min-height:86px;flex:none}
@media (max-width:760px){.sm-root .sm-left-handle,.sm-root .sm-kpis,.sm-root .sm-occ,.sm-root .sm-left .sm-search,.sm-root .sm-chips,.sm-card-h,.sm-slot-h,.sm-edit-head,.sm-prop-h{touch-action:none}.sm-root .sm-left-handle span{font-size:12px}.sm-root .sm-left-handle::after{content:"";}}
.sm-row.on{background:linear-gradient(90deg,rgb(56 225 255 / .16),rgb(255 176 32 / .12));border-color:rgb(255 176 32 / .7);box-shadow:inset 4px 0 0 var(--sm-cyan),0 0 18px rgb(255 176 32 / .18)}.sm-row.on .sm-code{color:var(--sm-amber)}.sm-row.on .sm-code::before{content:"➜ ";color:var(--sm-cyan)}
/* Stock map · reparto de un producto en varios sitios */
.sm-dist{display:grid;gap:6px;padding:10px 12px;border-radius:12px;background:rgb(255 255 255 / .035);border:1px solid rgb(255 255 255 / .07)}
.sm-dist-h{display:flex;align-items:baseline;gap:8px}.sm-dist-h span{color:var(--sm-muted);font-size:12px}.sm-dist-h b{font-size:16px;font-variant-numeric:tabular-nums}.sm-dist-h small{margin-left:auto;color:var(--sm-muted)}
.sm-dist-bar{display:flex;height:8px;border-radius:99px;overflow:hidden;background:rgb(255 255 255 / .06)}.sm-dist-bar i{display:block;height:100%}.sm-dist-bar i.is-rest{background:rgb(255 255 255 / .18)}
.sm-dist-row{display:grid;grid-template-columns:10px minmax(0,1fr) auto 40px auto;align-items:center;gap:8px;min-height:40px;padding:2px 4px;border-radius:12px}
.sm-dist-row.on{background:rgb(255 176 32 / .1);box-shadow:inset 3px 0 0 var(--sm-cyan)}
.sm-dist-row>i{width:10px;height:10px;border-radius:3px}.sm-dist-row.is-rest>i{background:rgb(255 255 255 / .25)}
.sm-dist-go{display:grid;min-width:0;border:0;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer;padding:0}
.sm-dist-go b{font-size:14px;color:var(--sm-cyan)}.sm-dist-row.is-rest .sm-dist-go b{color:var(--sm-muted)}
.sm-dist-go small{font-size:11px;color:var(--sm-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sm-dist-q{display:flex;align-items:center;gap:4px}.sm-dist-q input{width:64px;height:34px;border-radius:8px;border:1px solid rgb(255 255 255 / .14);background:rgb(0 0 0 / .25);color:var(--sm-text);font:inherit;font-weight:800;text-align:center}.sm-dist-q span{font-size:11px;color:var(--sm-muted)}
.sm-dist-n{font-variant-numeric:tabular-nums;font-size:13px}
.sm-dist-pct{font-size:12px;font-weight:800;color:var(--sm-amber);text-align:right;font-variant-numeric:tabular-nums}
.sm-dist-add{justify-self:start;min-height:34px}
.sm-sugg-t{color:var(--sm-muted);font-size:12px}
@media (max-width:760px){.sm-dist-q input{font-size:16px}}
/* Stock map · plantas con el icono de capas (sustituye a las capas inclinadas) */
.sm-root .sm-floors{width:76px;padding:12px 8px 8px;display:grid;justify-items:center;gap:6px;transform:none}
.sm-root .sm-floors:hover,.sm-root .sm-floors.is-hold{transform:none}
.sm-lyrs{--gap:9px;position:relative;width:48px;height:calc(26px + (var(--n) - 1) * var(--gap));transition:height .22s cubic-bezier(.22,.9,.3,1)}
.sm-floors.is-hold .sm-lyrs{--gap:44px}
@media (hover:hover){.sm-floors:hover .sm-lyrs{--gap:40px}}
.sm-lyr{position:absolute;left:0;top:calc(var(--i) * var(--gap));z-index:calc(20 - var(--i));width:48px;height:26px;padding:0;border:0;background:none;cursor:pointer;transition:top .22s cubic-bezier(.22,.9,.3,1)}
.sm-lyr svg{display:block;width:48px;height:26px;overflow:visible}
.sm-lyr path{fill:rgb(148 163 184 / .75);stroke:rgb(9 15 29);stroke-width:3.2;stroke-linejoin:round;transition:fill .15s,transform .15s;transform-origin:24px 13px}
.sm-lyr:hover path{fill:rgb(203 213 225)}
.sm-lyr.on path{fill:var(--sm-amber)}
.sm-lyr.is-pre path{fill:var(--sm-cyan);transform:scale(1.12)}
.sm-lyr span{position:absolute;right:calc(100% + 12px);top:50%;translate:0 -50%;white-space:nowrap;padding:4px 9px;border-radius:8px;background:var(--sm-panel);border:1px solid var(--sm-line);color:var(--sm-text);font-size:12px;font-weight:700;opacity:0;pointer-events:none;transition:opacity .15s}
.sm-lyr.on span{border-color:var(--sm-amber);color:var(--sm-amber)}.sm-lyr.is-pre span{border-color:var(--sm-cyan);color:var(--sm-cyan)}
.sm-floors.is-hold .sm-lyr span{opacity:1}
@media (hover:hover){.sm-floors:hover .sm-lyr span{opacity:1}}
.sm-lyr-cur{font-size:11px;color:var(--sm-muted);white-space:nowrap;max-width:70px;overflow:hidden;text-overflow:ellipsis}
.sm-floors.is-hold{box-shadow:0 0 0 2px rgb(56 225 255 / .35),0 14px 40px rgb(0 0 0 / .5)}
@media (max-width:760px){.sm-root .sm-floors{width:64px;padding:10px 6px 6px}.sm-lyr-cur{font-size:11px}}
.sm-floors .sm-lyr,.sm-floors .sm-lyr.on,.sm-floors .sm-lyr:hover{width:48px;height:26px;border:0;border-radius:0;background:none;box-shadow:none;color:inherit}
.sm-floors.is-open .sm-lyrs{--gap:44px}.sm-floors.is-open .sm-lyr span{opacity:1}.sm-floors.is-open{box-shadow:0 0 0 2px rgb(56 225 255 / .35),0 14px 40px rgb(0 0 0 / .5)}
/* Stock map · confirmación propia y barra «Deshacer» */
.sm-confirm{z-index:45}
.sm-confirm .sm-modal-card{max-width:420px}
.sm-btn.danger.is-solid{background:rgb(239 68 68);border-color:rgb(239 68 68);color:rgb(255 255 255)}
.sm-snack{position:absolute;left:50%;bottom:24px;translate:-50% 0;z-index:35;display:flex;align-items:center;gap:14px;max-width:min(520px,calc(100% - 24px));padding:10px 10px 10px 16px;border-radius:16px;background:rgb(15 23 42 / .96);border:1px solid var(--sm-line);box-shadow:0 14px 40px rgb(0 0 0 / .5);color:var(--sm-text);overflow:hidden}
.sm-snack[hidden]{display:none}
.sm-snack.is-in{animation:sm-snack-in .28s cubic-bezier(.22,.9,.3,1)}
@keyframes sm-snack-in{from{opacity:0;transform:translateY(12px)}}
.sm-snack span{flex:1;min-width:0;font-size:13px}
.sm-snack button{flex:none;height:34px;padding:0 14px;border-radius:12px;border:0;background:rgb(56 225 255 / .16);color:var(--sm-cyan);font:inherit;font-weight:800;cursor:pointer}
.sm-snack i{position:absolute;left:0;bottom:0;height:3px;width:100%;background:var(--sm-cyan);transform-origin:left;animation:sm-snack-t linear forwards}
@keyframes sm-snack-t{to{transform:scaleX(0)}}
.sm-ib:disabled{opacity:.35;cursor:default}
@media (max-width:760px){
 .sm-snack{bottom:calc(var(--sm-sheet) + 12px)}
 /* plantas: a la izquierda, a media altura y fijas (la hoja de abajo no las mueve); los nombres salen a la derecha */
 .sm-root .sm-floors{left:10px;right:auto;top:42%;bottom:auto;translate:0 -50%;transition:transform .18s}
 .sm-floors .sm-lyr span{left:calc(100% + 12px);right:auto}
}
@media (prefers-reduced-motion:reduce){.sm-snack.is-in{animation:none}.sm-snack i{animation:none}}
/* Stock map · elegir cómo escanear */
.sm-scan-choose{z-index:46}
.sm-scan-choose .sm-modal-card{max-width:420px}
.sm-scan-choose h3{display:flex;align-items:center;gap:8px}
.sm-scan-opt{display:grid;gap:3px;width:100%;padding:12px 14px;border-radius:16px;border:1px solid rgb(255 255 255 / .12);background:rgb(255 255 255 / .04);color:var(--sm-text);font:inherit;text-align:left;cursor:pointer}
.sm-scan-opt:hover{border-color:var(--sm-cyan)}
.sm-scan-opt b{font-size:15px}.sm-scan-opt small{color:var(--sm-muted);line-height:1.35}
.sm-scan-opt[data-opt="photo"]{border-color:rgb(56 225 255 / .45);background:rgb(56 225 255 / .08)}
.sm-scan-rem{display:flex;align-items:center;gap:8px;color:var(--sm-muted);font-size:13px}
.sm-scan-help{color:var(--sm-muted);font-size:13px}.sm-scan-help summary{cursor:pointer;color:var(--sm-cyan);font-weight:700}.sm-scan-help p{margin:6px 0 0;line-height:1.45}
.sm-scan-ui .sm-scan-help{max-width:340px;text-align:left;background:rgb(0 0 0 / .55);padding:8px 10px;border-radius:12px}
.sm-scan-btns{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}
/* Stock map · indicadores tocables y hoja de abajo con resumen al asomar (móvil) */
button.sm-kpi{display:block;width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer;transition:border-color .15s,background .15s,transform .12s}
button.sm-kpi:hover{border-color:rgb(56 225 255 / .45)}
button.sm-kpi:active{transform:scale(.97)}
button.sm-kpi.on{border-color:var(--sm-amber);background:rgb(255 176 32 / .1)}
@media (max-width:760px){
 .sm-root .sm-left:not(.is-open) .sm-kpis{display:grid}
 .sm-root .sm-left:not(.is-open) .sm-search{display:none}
 .sm-root .sm-left-handle span{font-size:11px;letter-spacing:.01em}
 .sm-root .sm-left-handle i{animation:sm-nudge 2.4s ease-in-out 1.2s 2}
 @keyframes sm-nudge{0%,100%{transform:translateY(0)}40%{transform:translateY(-4px)}60%{transform:translateY(0)}}
 .sm-root .sm-left{animation:sm-peek-in .55s cubic-bezier(.22,.9,.3,1) both}
 @keyframes sm-peek-in{from{transform:translateY(100%)}}
 .sm-root .sm-left .sm-kpis.is-intro .sm-kpi{animation:sm-kpi-in .45s cubic-bezier(.22,.9,.3,1) both;animation-delay:calc(.25s + var(--d,0ms))}
 @keyframes sm-kpi-in{from{opacity:0;transform:translateY(10px)}}
 .sm-root .sm-left .sm-kpis{gap:6px}
 .sm-root .sm-left .sm-kpi{padding:7px 8px;min-height:52px}
}
@media (prefers-reduced-motion:reduce){.sm-root .sm-left,.sm-root .sm-left .sm-kpi,.sm-root .sm-left-handle i{animation:none}}
/* Anuncio de Stock map 3D en el login */
.wj-lsm{perspective:900px;background:linear-gradient(160deg,rgb(6,10,20),rgb(12,26,48) 60%,rgb(30,58,138))}
.wj-lsm-floor{position:absolute;left:50%;top:40px;width:330px;margin-left:-165px;padding:16px 16px 42px;border:1px solid rgba(56,225,255,.35);border-radius:6px;transform:rotateX(52deg) rotateZ(-28deg);transform-style:preserve-3d;display:grid;gap:22px;background:rgba(9,15,29,.7)}
.wj-lsm-row{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.wj-lsm-row i{position:relative;height:34px;border-radius:3px;background:rgb(30,41,59);box-shadow:0 0 0 1px rgba(56,225,255,.3),0 6px 0 rgb(245,158,11)}
.wj-lsm-row i.hit{background:rgb(56,225,255);box-shadow:0 0 0 2px rgb(255,255,255),0 6px 0 rgb(245,158,11),0 0 24px rgba(56,225,255,.9)}
.wj-lsm-row b{position:absolute;inset:0;display:grid;place-items:center;color:rgb(226,232,240);font-size:11px;font-weight:800}
.wj-lsm-row i.hit b{color:rgb(6,10,20)}
.wj-lsm-path{position:absolute;left:30px;bottom:10px;width:260px;height:52px;border-left:3px solid rgb(74,222,128);border-bottom:3px solid rgb(74,222,128);border-radius:0 0 0 8px}
.wj-lsm-door{position:absolute;left:12px;bottom:-12px;padding:2px 8px;border-radius:999px;background:rgb(22,101,52);color:rgb(220,252,231);font-size:11px;font-weight:800;letter-spacing:.06em}
.wj-lsm-card{position:absolute;right:22px;top:22px;width:150px;padding:12px;border-radius:12px;background:rgba(9,15,29,.92);border:1px solid rgba(56,225,255,.35);color:rgb(226,232,240);display:grid;gap:6px}
.wj-lsm-card small{color:rgb(148,163,184);font-size:11px}
.wj-lsm-card em{justify-self:start;background:rgb(245,158,11);color:rgb(15,23,42)}
.wj-lsm-float{left:22px;bottom:22px}
@media(max-width:1180px){.wj-lsm-card{display:none}}
/* ---- Función sin activar: demo de fondo bajo un velo y la tarjeta para activarla ---- */
.wj-lock{position:relative;min-height:calc(100dvh - 150px);margin:-4px 0 0;border-radius:var(--r2,18px);overflow:hidden;isolation:isolate;display:grid;place-items:center;padding:28px 16px}
.wj-lock-stage{position:absolute;inset:0;z-index:0;pointer-events:none;user-select:none;overflow:hidden;filter:saturate(.95)}
.wj-lock-veil{position:absolute;inset:0;z-index:1;background:radial-gradient(ellipse 46% 52% at 50% 50%,color-mix(in srgb,var(--bg) 62%,transparent),color-mix(in srgb,var(--bg) 14%,transparent) 100%)}
.wj-lock-card{position:relative;z-index:2;width:min(520px,100%);padding:26px 24px 20px;border:1px solid var(--border);border-radius:24px;background:color-mix(in srgb,var(--surface) 94%,transparent);box-shadow:0 24px 60px rgb(0 0 0 / .22);text-align:center;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);animation:wj-lock-in .45s cubic-bezier(.2,.8,.2,1) both}
@keyframes wj-lock-in{from{opacity:0;transform:translateY(14px) scale(.98)}}
.wj-lock-kicker{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:999px;background:var(--neutral-weak);color:var(--muted);font-size:12px;font-weight:700}
.wj-lock-card h2{margin:12px 0 6px;font-size:24px;letter-spacing:-.02em}
.wj-lock-card>p{margin:0 auto 16px;max-width:400px;color:var(--muted);line-height:1.55}
.wj-lock-opts{display:grid;gap:10px;text-align:left}
.wj-lock-opt{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:12px 12px 12px 14px;border:1px solid var(--border);border-radius:16px;background:var(--surface)}
.wj-lock-opt-ico{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:var(--primary-weak);color:var(--accent)}
.wj-lock-opt-main{min-width:0}.wj-lock-opt-main b{display:block;font-size:15px}.wj-lock-opt-main small{display:block;margin-top:2px;color:var(--muted);line-height:1.4}
.wj-lock-opt-buy{display:grid;justify-items:end;gap:6px}
.wj-lock-price{white-space:nowrap;font-size:13px;color:var(--muted)}.wj-lock-price b{font-size:18px;color:var(--text)}
.wj-lock-price:empty{display:none}
.wj-lock-packs{display:block;white-space:normal;max-width:170px;font-size:12px;line-height:1.35;color:var(--muted);margin-top:4px}
.wj-lock-opt-buy .wj-btn{white-space:nowrap}
.wj-lock-note{margin:14px 0 0;color:var(--muted);font-size:13px}
.wj-lock-links{display:flex;justify-content:center;margin-top:10px}
@media (max-width:560px){.wj-lock{padding:16px 10px;min-height:calc(100dvh - 190px);place-items:end center}.wj-lock-veil{background:linear-gradient(180deg,transparent 25%,color-mix(in srgb,var(--bg) 70%,transparent) 60%)}.wj-lock-card>p,.wj-lock-opt-main small{display:none}.wj-lock-card{padding:20px 16px 16px}.wj-lock-opt{grid-template-columns:auto 1fr}.wj-lock-opt-buy{grid-column:1 / -1;grid-template-columns:1fr auto;align-items:center;justify-items:stretch}.wj-lock-price{justify-self:start}}
/* Funciones: la que se viene a activar, resaltada */
.wj-subs-feat.is-focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 28%,transparent);animation:wj-feat-focus 1.6s ease-in-out 3}
@keyframes wj-feat-focus{50%{box-shadow:0 0 0 7px color-mix(in srgb,var(--accent) 12%,transparent)}}
/* Escenas de la demo (feature-demo.js) */
.fd-host{position:absolute;inset:0;overflow:hidden}
.fd-frame{position:absolute;inset:0;width:100%;height:100%;border:0;background:transparent;opacity:0;transition:opacity .45s ease}.fd-frame.is-on{opacity:1}
.fd-cursor{position:absolute;left:0;top:0;z-index:5;transition:transform .7s cubic-bezier(.45,.05,.25,1);filter:drop-shadow(0 2px 3px rgb(0 0 0 / .35))}
.fd-tap{position:absolute;z-index:4;width:34px;height:34px;margin:-17px 0 0 -17px;border-radius:50%;background:color-mix(in srgb,var(--accent) 45%,transparent);animation:fd-tap .55s ease-out forwards}
@keyframes fd-tap{from{transform:scale(.3);opacity:1}to{transform:scale(1.4);opacity:0}}
.fd-stockmap{position:absolute;inset:0;z-index:auto}
@media (prefers-reduced-motion:reduce){.fd-cursor{display:none}.wj-subs-feat.is-focus{animation:none}}
.wj-lsu-bg{filter:blur(1.5px);opacity:.7}
.wj-lsu-card{top:70px;right:50%;margin-right:-95px}
.wj-lsu-card div{grid-template-columns:1fr}
.wj-lsu-card small{background:rgb(220,252,231);color:rgb(21,128,61)}
/* Demo de una función sin contratar (/demo-panel/…, detrás del aviso «Activar»): solo la pantalla, sin el marco del panel; no se puede tocar. */
.wj-demo-frame .wj-app-rail,.wj-demo-frame .wj-subnav-flyout,.wj-demo-frame .wj-topbar,.wj-demo-frame .wj-mobile-dock,.wj-demo-frame .wj-secondary-sidebar,.wj-demo-frame .wj-impersonation-bar,.wj-demo-frame .wj-trial-slot,.wj-demo-frame #wj-support,.wj-demo-frame .wj-mobile-nav-drawer,.wj-demo-frame .wj-mobile-nav-backdrop{display:none!important}
.wj-demo-frame .wj-shell,.wj-demo-frame .wj-shell.has-secondary{display:block;height:100dvh}
.wj-demo-frame .wj-main{grid-template-rows:minmax(0,1fr)!important}
.wj-demo-frame,.wj-demo-frame body,.wj-demo-frame .wj-shell,.wj-demo-frame .wj-main,.wj-demo-frame .wj-content{background:transparent!important;border:0!important;border-radius:0!important;box-shadow:none!important;margin:0!important;max-width:none!important}
.wj-demo-frame body{pointer-events:none;user-select:none}

/* Sección no contratada: mismo color que las demás, con un candado pequeño en la esquina del icono. */
.wj-rail-ico{position:relative}
.wj-rail-lock{position:absolute;right:-5px;bottom:-4px;display:grid;place-items:center;width:15px;height:15px;border-radius:50%;background:var(--surface3);color:var(--muted);box-shadow:0 0 0 2px var(--bg)}
/* El aviso ocupa todo el panel, sin marco propio: detrás, la pantalla de la demo queda donde estaría la de verdad.
   En el móvil el contenido no tiene alto propio (la página entera se desplaza): ahí el aviso va en el flujo, a todo el ancho. */
html:not([data-layout="mobile"]) .wj-content:has(>.wj-lock){position:relative;overflow:hidden}
html:not([data-layout="mobile"]) .wj-content>.wj-lock{position:absolute;inset:0;min-height:0;margin:0;border-radius:inherit}
html[data-layout="mobile"] .wj-content>.wj-lock{margin:-12px -12px 0;border-radius:0}
.wj-demo-doc{display:block;width:100%;height:100%;object-fit:contain;object-position:top center;background:rgb(82 86 89);padding:16px}
/* Cámara de la demo: se acerca a lo que se pulsa, girada en 2,5D, y se endereza (feature-demo.js). */
.fd-cam{position:absolute;inset:0;transform:perspective(1600px) translate3d(0,0,0) rotateX(0deg) rotateY(0deg) scale(1);transition:transform .95s cubic-bezier(.65,.02,.22,1);will-change:transform;backface-visibility:hidden}
.fd-spot{position:absolute;z-index:4;border-radius:12px;pointer-events:none;opacity:0;box-shadow:0 0 0 2px var(--accent),0 0 0 7px color-mix(in srgb,var(--accent) 22%,transparent),0 0 0 200vmax rgb(0 0 0 / .2);transition:opacity .35s ease,transform .16s ease}
.fd-spot.is-on{opacity:1}.fd-spot.is-press{transform:scale(.96)}
/* Club de puntos visto por el cliente: un móvil junto al panel. */
.fd-phone{--fd-s:1;position:absolute;z-index:6;left:50%;top:14px;width:270px;height:560px;margin-left:-135px;padding:9px;border-radius:42px;background:rgb(18 18 22);box-shadow:0 0 0 1.5px rgb(64 64 72),0 34px 70px -18px rgb(0 0 0 / .55);transform-origin:top center;transform:translateY(40px) scale(var(--fd-s)) rotate(3deg);opacity:0;transition:transform .9s cubic-bezier(.2,.8,.2,1),opacity .6s ease;pointer-events:none}
.fd-phone.is-side{left:auto;right:clamp(16px,4%,64px);top:auto;bottom:24px;margin:0;transform-origin:bottom right}
.fd-phone.is-in{opacity:1;transform:scale(var(--fd-s))}
.fd-phone-screen{position:relative;height:100%;border-radius:34px;overflow:hidden;display:flex;flex-direction:column;font-size:13px}
.fd-phone-status{display:flex;align-items:center;justify-content:space-between;padding:9px 22px 2px;font-size:11px}
.fd-phone-status i{width:74px;height:20px;border-radius:12px;background:rgb(18 18 22)}
.fd-phone-status span{letter-spacing:-2px;font-size:11px}
.fd-phone-top{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 14px;border-bottom:1px solid var(--shop-line);background:var(--shop-card)}
.fd-phone-top small{display:inline-flex;align-items:center;gap:4px;color:var(--shop-muted);font-weight:600}
.fd-phone-body{flex:1;min-height:0;overflow:hidden;display:flex;flex-direction:column;gap:12px;padding:12px}
.fd-phone-body>*{flex:none}
.fd-phone .wj-club-balance{padding:14px;gap:10px}
.fd-phone .wj-club-balance strong{font-size:30px}
.fd-phone .wj-club-bar i,.fd-phone .wj-vpass-bar i{transition:width .8s cubic-bezier(.3,.9,.3,1)}
.fd-phone .wj-vpass{margin:0;padding:14px;gap:10px}
.fd-phone .wj-vpass-head h3{font-size:15px}
.fd-phone .wj-vpass-count{padding:6px 10px}
.fd-phone .wj-vpass-count b{font-size:24px}
.fd-phone .wj-club-reward{padding:8px;gap:10px;transition:box-shadow .4s ease,border-color .4s ease}
.fd-phone .wj-club-reward-img{width:42px;height:42px}
.fd-phone .wj-club-reward-side b{font-size:14px}
.fd-phone .wj-club-reward.is-done{border-color:rgb(16 185 129)}
.fd-phone .wj-btn{transition:transform .15s ease}.fd-phone .wj-btn.fd-press{transform:scale(.9)}
.fd-phone-toast{position:absolute;left:10px;right:10px;top:40px;z-index:3;display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:16px;background:rgb(255 255 255 / .96);color:rgb(17 24 39);box-shadow:0 12px 30px -8px rgb(0 0 0 / .35);transform:translateY(calc(-100% - 60px));transition:transform .5s cubic-bezier(.2,.9,.3,1.2)}
.fd-phone-toast.is-on{transform:none}
.fd-phone-toast span{display:grid;flex:1;min-width:0}
.fd-phone-toast small{color:rgb(100 112 132)}
.fd-phone-toast em{font-style:normal;font-weight:800;color:rgb(5 150 105)}
.fd-phone-pop{position:absolute;z-index:4;font-size:22px;font-weight:900;color:rgb(253 224 71);text-shadow:0 2px 10px rgb(0 0 0 / .45);animation:fd-pop 1.3s ease-out forwards;pointer-events:none}
@keyframes fd-pop{0%{transform:translateY(10px) scale(.6);opacity:0}20%{transform:translateY(0) scale(1.15);opacity:1}100%{transform:translateY(-46px) scale(1);opacity:0}}
.fd-phone-scan{position:absolute;inset:0;z-index:3;display:grid;place-content:center;justify-items:center;gap:14px;background:rgb(8 17 38 / .9);color:rgb(255 255 255);opacity:0;transition:opacity .35s ease}
.fd-phone-scan.is-on{opacity:1}
.fd-phone-qr{position:relative;display:grid;place-items:center;width:150px;height:150px;border-radius:20px;background:rgb(255 255 255);color:rgb(17 24 39);overflow:hidden}
.fd-phone-qr i{position:absolute;left:8px;right:8px;top:10px;height:3px;border-radius:3px;background:rgb(34 197 94);box-shadow:0 0 14px rgb(34 197 94);animation:fd-scan 1.1s ease-in-out infinite alternate}
.fd-phone-scan.is-ok .fd-phone-qr{box-shadow:0 0 0 4px rgb(34 197 94),0 0 40px rgb(34 197 94 / .6)}
.fd-phone-scan.is-ok .fd-phone-qr i{display:none}
@keyframes fd-scan{to{top:calc(100% - 13px)}}
.fd-phone .fd-stamp-new{position:relative;animation:fd-stamp .7s cubic-bezier(.2,1.6,.4,1)}
@keyframes fd-stamp{0%{transform:scale(2.4) rotate(-25deg);opacity:0}100%{transform:none;opacity:1}}
.fd-confetti{position:absolute;left:50%;top:50%;width:0;height:0;pointer-events:none}
.wj-vpass-stamps span,.wj-club-reward-side{position:relative}
.fd-confetti i{position:absolute;width:6px;height:9px;border-radius:2px;background:var(--c);animation:fd-burst 1.1s cubic-bezier(.1,.8,.3,1) forwards}
@keyframes fd-burst{from{transform:rotate(var(--a)) translateY(0);opacity:1}to{transform:rotate(var(--a)) translateY(calc(var(--d) * -1)) rotate(200deg);opacity:0}}
@media (prefers-reduced-motion:reduce){.fd-cam,.fd-phone{transition:none}}
/* El móvil del cliente: dos pantallas (tienda y cuenta) que se deslizan, y un dedo que pulsa. */
.fd-phone-pages{flex:1;min-height:0;display:flex;width:200%;transition:transform .7s cubic-bezier(.65,.02,.22,1)}
.fd-phone-pages.is-account{transform:translateX(-50%)}
.fd-phone-page{position:relative;width:50%;min-height:0;display:flex;flex-direction:column}
.fd-shop-item{display:flex;align-items:center;gap:10px;padding:10px;border:1px solid var(--shop-line);border-radius:14px;background:var(--shop-card)}
.fd-shop-ico{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:color-mix(in srgb,var(--shop-accent) 12%,transparent);color:var(--shop-accent)}
.fd-shop-copy{display:grid;flex:1;min-width:0}
.fd-shop-copy small,.fd-shop-note{color:var(--shop-muted);font-size:11.5px}
.fd-shop-qty{display:flex;align-items:center;gap:8px}
.fd-shop-qty button{width:26px;height:26px;border-radius:50%;border:1px solid var(--shop-line);background:var(--shop-card);font-weight:800;transition:transform .15s ease}
.fd-shop-qty b{min-width:12px;text-align:center}
.fd-shop-club{display:flex;align-items:center;gap:8px;padding:9px 10px;border-radius:12px;background:rgb(254 249 195);color:rgb(113 63 18);font-size:12.5px}
.fd-shop-total{display:flex;justify-content:space-between;align-items:baseline;padding:4px 2px;font-size:14px}
.fd-shop-total b{font-size:20px}
.fd-shop-pay{width:100%;min-height:44px;font-size:15px}
.fd-shop-pay.is-busy{opacity:.75}
.fd-shop-note{display:flex;align-items:center;gap:5px;justify-content:center}
.fd-phone .fd-press{transform:scale(.9)}
.fd-shop-ok{position:absolute;inset:0;z-index:2;display:grid;place-content:center;justify-items:center;gap:6px;text-align:center;padding:20px;background:var(--shop-card);opacity:0;transform:scale(.96);transition:opacity .35s ease,transform .35s ease}
.fd-shop-ok.is-on{opacity:1;transform:none}
.fd-shop-ok span{display:grid;place-items:center;width:68px;height:68px;border-radius:50%;background:rgb(16 185 129);color:rgb(255 255 255);box-shadow:0 0 0 10px rgb(16 185 129 / .15)}
.fd-shop-ok.is-on span{animation:fd-stamp .6s cubic-bezier(.2,1.6,.4,1)}
.fd-shop-ok strong{font-size:18px;margin-top:6px}
.fd-shop-ok small{color:var(--shop-muted)}
.fd-shop-ok em{margin-top:6px;padding:4px 12px;border-radius:999px;background:rgb(254 249 195);color:rgb(113 63 18);font-style:normal;font-weight:800}
.fd-phone-scan small{color:rgb(255 255 255 / .7);font-weight:700;letter-spacing:.06em;text-transform:uppercase;font-size:11px}
.fd-phone-finger{position:absolute;left:0;top:0;z-index:5;width:34px;height:34px;margin:-17px 0 0 -17px;border-radius:50%;background:rgb(255 255 255 / .55);border:2px solid rgb(17 24 39 / .55);box-shadow:0 6px 14px rgb(0 0 0 / .25);opacity:0;transition:transform .6s cubic-bezier(.45,.05,.25,1),opacity .3s ease;pointer-events:none}
.fd-phone-finger.is-on{opacity:1}
.fd-phone-finger.is-tap{animation:fd-finger .45s ease-out}
@keyframes fd-finger{40%{scale:.7;background:rgb(255 255 255 / .9)}100%{scale:1}}
/* Chat en vivo visto por el visitante: la web del centro con la burbuja del chat. */
.fd-web{--cw-accent:rgb(22 119 255);--cw-ink:rgb(255 255 255);position:relative;flex:1;min-height:0;display:flex;flex-direction:column;background:var(--shop-card)}
.fd-web-top{display:flex;justify-content:space-between;align-items:center;padding:8px 14px;border-bottom:1px solid var(--shop-line)}
.fd-web-hero{display:grid;gap:6px;justify-items:start;margin:12px;padding:16px;border-radius:16px;color:rgb(255 255 255);background:linear-gradient(135deg,rgb(249 115 22),rgb(236 72 153))}
.fd-web-hero small{font-weight:800;letter-spacing:.06em;text-transform:uppercase;font-size:11px;opacity:.85}
.fd-web-hero strong{font-size:20px;line-height:1.2}
.fd-web-hero .wj-btn{background:rgb(255 255 255);color:rgb(17 24 39);border-color:transparent}
.fd-web-lines{display:grid;gap:8px;padding:6px 14px}
.fd-web-lines i{height:9px;border-radius:5px;background:var(--shop-line)}
.fd-web-lines i:nth-child(2n){width:72%}
.fd-web-launch{position:absolute;right:14px;bottom:14px;width:52px;height:52px;transition:transform .15s ease}
.fd-web-chat{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;background:rgb(248 250 252);transform:translateY(102%);transition:transform .55s cubic-bezier(.2,.9,.3,1)}
.fd-web-chat.is-on{transform:none}
.fd-web-chat .wj-cw-head{padding:10px 12px}
.fd-web-chat .wj-cw-id{display:grid}
.fd-web-chat .wj-cw-id small{opacity:.85;font-size:11px}
.fd-web-chat .wj-cw-scroll{padding:12px 10px 6px}
.fd-web-chat .wj-cw-bubble{font-size:13px}
.fd-web-chat .wj-cw-compose{padding:8px 8px 8px 12px}
.fd-web-chat .wj-cw-compose textarea{font-size:13px;min-height:34px;padding:7px 0}
.fd-web-chat .wj-cw-compose button{width:36px;height:36px}
.fd-msg-new{animation:fd-msg .35s cubic-bezier(.2,.9,.3,1.2)}
@keyframes fd-msg{from{opacity:0;transform:translateY(10px) scale(.96)}}
.fd-web-link{display:flex;align-items:center;gap:6px;margin-top:6px;padding:7px 10px;border-radius:12px;background:rgb(255 255 255);color:var(--cw-accent);font-weight:700;font-size:13px}
/* Formularios del cliente en el móvil (firma, parte, candidatura, factura) y su correo. */
.fd-phone-page.fd-form{width:auto;flex:1}
.fd-form-head{display:grid;gap:3px}
.fd-form-head strong{font-size:18px;line-height:1.25}
.fd-form-head small{color:var(--shop-muted);font-size:12px}
.fd-form-field{display:grid;gap:4px;font-size:12px;font-weight:700;color:var(--shop-muted)}
.fd-form-input{display:block;min-height:36px;padding:9px 11px;border:1px solid var(--shop-line);border-radius:12px;background:var(--shop-card);color:var(--shop-ink);font-size:13px;font-weight:500;transition:border-color .2s ease,box-shadow .2s ease}
.fd-form-input.is-on{border-color:var(--shop-accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--shop-accent) 18%,transparent)}
.fd-form-input.is-on::after{content:"";display:inline-block;width:1.5px;height:14px;margin-left:1px;vertical-align:-2px;background:var(--shop-accent);animation:fd-caret .8s steps(1) infinite}
@keyframes fd-caret{50%{opacity:0}}
.fd-form-file{display:flex;align-items:center;gap:8px;padding:12px;border:1.5px dashed var(--shop-line);border-radius:12px;color:var(--shop-muted);font-size:13px;font-weight:600}
.fd-form-file.on{border-style:solid;border-color:rgb(16 185 129);color:rgb(4 120 87);background:rgb(236 253 245)}
.fd-form-check{display:flex;align-items:center;gap:8px;font-size:12px}
.fd-form-check i{flex:none;width:20px;height:20px;border:1.5px solid var(--shop-line);border-radius:6px;background:var(--shop-card);transition:background .2s ease,transform .15s ease}
.fd-form-check.on i{border-color:var(--shop-accent);background:var(--shop-accent);box-shadow:inset 0 0 0 3px var(--shop-card)}
.fd-form-sign{position:relative;height:84px;border:1px solid var(--shop-line);border-radius:12px;background:var(--shop-card)}
.fd-form-sign small{position:absolute;left:10px;top:6px;color:var(--shop-muted);font-size:10.5px}
.fd-form-sign svg{position:absolute;inset:10px 6px 4px;width:calc(100% - 12px);height:calc(100% - 14px)}
.fd-form-sign path{fill:none;stroke:rgb(30 41 59);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1}
.fd-form-sign.on path{transition:stroke-dashoffset 1.4s ease-in-out;stroke-dashoffset:0}
.fd-mail-list{gap:0;padding:0}
.fd-mail-row{display:flex;gap:10px;padding:11px 12px;border-bottom:1px solid var(--shop-line);font-size:12px;transition:transform .15s ease}
.fd-mail-row>span:last-child{display:grid;min-width:0}
.fd-mail-row b{font-size:13px}
.fd-mail-row strong{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fd-mail-row small{color:var(--shop-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fd-mail-row.is-new{background:color-mix(in srgb,var(--shop-accent) 7%,transparent)}
.fd-mail-row.is-new strong{font-weight:800}
.fd-mail-ava{display:grid;place-items:center;flex:none;width:34px;height:34px;border-radius:50%;background:color-mix(in srgb,var(--shop-accent) 14%,transparent);color:var(--shop-accent);font-weight:800}
.fd-mail-subj{font-size:16px;line-height:1.3}
.fd-mail-text{margin:0;font-size:13px;line-height:1.5}
.fd-phone-body .fd-web-hero{margin:0}
/* En el móvil, los botones principales son los de la tienda (color del centro), no los del panel. */
.fd-phone-screen{--btn-main-bg:var(--shop-accent);--btn-main-fg:rgb(255 255 255);--btn-main-hover:var(--shop-accent-ink)}
/* Plan y facturación › Funciones: el Plan básico en una fila que se despliega. */
.wj-subs-basic>summary{list-style:none;cursor:pointer}
.wj-subs-basic>summary::-webkit-details-marker{display:none}
.wj-subs-basic>summary .wj-subs-feat-main small{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.wj-subs-basic-chev{display:grid;place-items:center;flex:none;color:var(--muted);transition:transform .2s ease}
.wj-subs-basic[open] .wj-subs-basic-chev{transform:rotate(90deg)}
.wj-subs-basic-list{display:grid;gap:8px;margin:8px 0 0 22px;padding-left:12px;border-left:2px solid var(--border)}
.wj-subs-basic-list .wj-subs-feat{padding:9px 12px}
@media (max-width:560px){.wj-subs-basic-list{margin-left:6px;padding-left:8px}}
/* /demo-feature/<ruta>: la demo sola, a toda la ventana (la web pública la enmarca). */
.wj-showcase-page,.wj-showcase-page body{height:100%;margin:0;overflow:hidden;background:var(--bg)}
.wj-showcase-page #boot{display:none}
.wj-showcase,.wj-showcase-stage{position:fixed;inset:0}
.wj-page-head-actions{display:flex;gap:8px;flex-wrap:wrap}
/* TPV · En sala (entradas por tiempo) */
.wj-tpv-tabs{align-items:center}.wj-tpv-tabs-spacer{flex:1}
.wj-visit-empty{padding:28px 18px;text-align:center}
.wj-visit-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:12px;padding:14px}
.wj-visit-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:12px 14px;display:flex;flex-direction:column;gap:10px}
.wj-visit-card>header{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.wj-visit-card>header small{display:block;color:var(--muted);font-size:12px}.wj-visit-card>header b{font-size:18px;white-space:nowrap}
.wj-visit-kids{display:flex;flex-direction:column;gap:6px}
.wj-visit-kid{display:grid;grid-template-columns:1fr auto auto;grid-template-areas:"name clock price" "acts acts acts";gap:4px 10px;align-items:center;padding:8px 10px;border-radius:12px;background:var(--surface2,var(--surface3))}
.wj-visit-kid-name{grid-area:name;min-width:0}.wj-visit-kid-name small{display:block;color:var(--muted);font-size:11px}
.wj-visit-clock{grid-area:clock;font:700 20px/1 ui-monospace,Menlo,Consolas,monospace;font-variant-numeric:tabular-nums}
.wj-visit-price{grid-area:price;font-weight:700;min-width:64px;text-align:right}
.wj-visit-acts{grid-area:acts;display:flex;gap:6px;justify-content:flex-end}
.wj-visit-kid.is-paused .wj-visit-clock{color:var(--warn)}.wj-visit-kid.is-out .wj-visit-clock,.wj-visit-kid.is-paid{opacity:.6}
.wj-visit-items{display:flex;flex-direction:column;gap:4px;border-top:1px dashed var(--border);padding-top:8px}.wj-visit-items>small{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.04em}
.wj-visit-item{display:flex;align-items:center;gap:8px}.wj-visit-item>span:first-child{flex:1}.wj-visit-item.is-paid{opacity:.6}
.wj-visit-card>footer{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.wj-visit-quote{border:1px solid var(--border);border-radius:12px;padding:10px 12px;display:flex;flex-direction:column;gap:4px}
.wj-visit-qline{display:flex;justify-content:space-between;gap:10px}.wj-visit-qline.total{border-top:1px solid var(--border);padding-top:6px;margin-top:4px;font-size:18px}
@media(max-width:520px){.wj-visit-grid{grid-template-columns:1fr;padding:10px}}

/* Modo guiado (cuentas nuevas): menú con solo Inicio y el paso que toca; portada con los 4 pasos. */
html.wj-guided .wj-tpv-launcher,html.wj-guided .wj-calendar-launcher,html.wj-guided .wj-chat-launcher,html.wj-guided .wj-vehicle-launcher,html.wj-guided .wj-side-foot [data-route="settings"],html.wj-guided .wj-secondary-toggle{display:none!important}
.wj-guided-home{max-width:760px;margin:8px auto 40px;display:grid;gap:18px}
.wj-guided-head{display:grid;gap:6px}
.wj-guided-head h2{margin:0;font-size:24px;line-height:1.2}
.wj-guided-head p{margin:0;color:var(--muted)}
.wj-guided-bar-track{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:6px;margin-top:6px}
.wj-guided-bar-track i{height:6px;border-radius:99px;background:var(--border)}
.wj-guided-bar-track i.on{background:var(--accent)}
.wj-guided-steps{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.wj-guided-step{display:flex;align-items:flex-start;gap:14px;padding:14px 16px;border-radius:16px;background:var(--surface);border:1px solid var(--border)}
.wj-guided-step.todo{opacity:.55}
.wj-guided-step.done{opacity:.8}
.wj-guided-step.current{border-color:color-mix(in srgb,var(--accent) 55%,var(--border));background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 7%,var(--surface)),var(--surface));box-shadow:0 6px 22px color-mix(in srgb,var(--accent) 12%,transparent);padding:18px}
.wj-guided-num{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;flex:0 0 auto;font-weight:800;font-size:14px;background:color-mix(in srgb,var(--accent) 14%,var(--surface));color:var(--accent)}
.wj-guided-step.current .wj-guided-num{background:var(--accent);color:var(--on-accent,var(--surface))}
.wj-guided-copy{flex:1;min-width:0;display:grid;gap:6px}
.wj-guided-copy strong{font-size:16px}
.wj-guided-copy p,.wj-guided-copy small{margin:0;color:var(--muted)}
.wj-guided-step.done small{color:var(--accent);font-weight:700}
.wj-guided-acts{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}
.wj-guided-center{justify-content:center}
.wj-guided-note{display:flex;align-items:center;gap:6px;font-weight:600;color:var(--text)!important}
.wj-guided-types{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.wj-guided-type{display:grid;gap:4px;text-align:left;padding:12px;border-radius:12px;border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;font:inherit}
.wj-guided-type:hover{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 6%,var(--surface))}
.wj-guided-type small{color:var(--muted)}
.wj-guided-flow{list-style:none;margin:2px 0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.wj-guided-flow li{display:flex;align-items:center;gap:6px;padding:8px;border-radius:12px;background:var(--surface-sunken,var(--bg));font-size:13px;font-weight:600}
.wj-guided-flow li span{width:20px;height:20px;border-radius:50%;display:grid;place-items:center;flex:0 0 auto;background:var(--accent);color:var(--on-accent,var(--surface));font-size:11px}
.wj-guided-url{word-break:break-all}
.wj-guided-foot{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding-top:4px}
.wj-guided-pagebar{display:flex;align-items:center;gap:12px;padding:12px 14px;margin-bottom:14px;border-radius:12px;border:1px solid color-mix(in srgb,var(--accent) 45%,var(--border));background:color-mix(in srgb,var(--accent) 7%,var(--surface))}
.wj-guided-pagebar>div{flex:1;min-width:0;display:grid;gap:2px}
.wj-guided-pagebar small{color:var(--muted)}
.wj-guided-pagebar .wj-guided-num{background:var(--accent);color:var(--on-accent,var(--surface))}
.wj-guided-pagebar [data-route] svg{transform:rotate(180deg)}
@media (max-width:640px){.wj-guided-types,.wj-guided-flow{grid-template-columns:1fr 1fr}.wj-guided-step{padding:12px}.wj-guided-pagebar{flex-wrap:wrap}}
.wj-badge.wj-idle{background:rgb(142 127 184 / .16);color:rgb(110 90 170);border:1px solid rgb(142 127 184 / .35)}
/* Editor de producto en modo guiado: solo lo necesario; «Más opciones» enseña el resto. */
.wj-product-simple .wj-adv{display:none!important}
.wj-simple-only{display:none}
.wj-product-simple .wj-simple-only{display:grid}
.wj-product-simple-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border-radius:12px;background:color-mix(in srgb,var(--accent) 7%,var(--surface));border:1px solid color-mix(in srgb,var(--accent) 30%,var(--border))}
.wj-product-simple-head p{margin:0;color:var(--muted);font-size:13px}
.wj-slot-gen{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;align-items:end}
.wj-slot-gen label{display:grid;gap:4px;font-size:12px;font-weight:700;color:var(--muted)}
.wj-slot-gen p{grid-column:1/-1;margin:0}
/* ===== Turnos (worldjump-platform, nov 2026): cuadrante, menú contextual, notas, zoom ===== */
.wj-hb-heart .wj-heart-path{fill:transparent;stroke:currentColor;stroke-width:1.8;transition:fill 200ms,stroke 200ms}
.wj-hb-heart.on .wj-heart-path{fill:rgb(225,29,72);stroke:rgb(225,29,72)}
.wj-hb-heart.pop svg{animation:wj-heart-pop .45s cubic-bezier(.34,1.56,.64,1)}
@keyframes wj-heart-pop{0%{transform:scale(1)}35%{transform:scale(1.45) rotate(-8deg)}60%{transform:scale(.9)}100%{transform:scale(1)}}
.wj-hb-heart.pop::after{content:'';position:absolute;inset:-6px;border-radius:16px;border:2px solid rgba(225,29,72,.6);animation:wj-heart-ring .5s ease-out forwards;pointer-events:none}
@keyframes wj-heart-ring{from{opacity:.9;transform:scale(.8)}to{opacity:0;transform:scale(1.35)}}
/* ===== Turnos: cuadrante ===== */
.wj-shd-actions{display:flex;gap:8px;flex-wrap:wrap}
.wj-shd-bar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:0 0 14px;padding:10px 12px;border:1px solid var(--hairline);border-radius:16px;background:var(--surface2)}
.wj-shd-weeknav{display:flex;align-items:center;gap:6px}
.wj-shd-weeknav [data-sched-prev] svg{transform:rotate(180deg)}
.wj-shd-date{width:150px;min-height:36px}
.wj-shd-weeklbl{font-size:14px;text-transform:none;margin-left:4px}
.wj-shd-centername{display:inline-flex;align-items:center;gap:6px;font-weight:700;padding:0 10px}
.wj-shd-hours{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--muted)}
.wj-shd-hours .wj-input{width:104px;min-height:34px;padding:0 8px}
.wj-shd-people{position:sticky;top:8px;border:1px solid var(--hairline);border-radius:16px;background:var(--surface2);padding:12px;max-height:calc(100dvh - 140px);overflow:auto;display:grid;gap:8px;align-content:start}
.wj-shd-people-head{display:flex;justify-content:space-between;align-items:baseline}
.wj-shd-people-head small{color:var(--text-3);font-size:12px}
.wj-shd-people-list{display:grid;gap:6px}
.wj-shd-person{display:flex;align-items:center;gap:9px;padding:8px 10px;border-radius:12px;background:var(--surface-raised);border:1px solid var(--hairline);border-left:3px solid var(--bar);cursor:grab;user-select:none;touch-action:none;transition:transform 100ms ease,box-shadow 100ms ease}
.wj-shd-person:hover{box-shadow:var(--shadow)}
.wj-shd-person:active,.wj-shd-person.is-dragging{cursor:grabbing;transform:scale(.98);opacity:.7}
.wj-shd-person-copy{display:grid;min-width:0;flex:1}
.wj-shd-person-copy strong{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wj-shd-person-copy small{color:var(--text-3);font-size:12px}
.wj-shd-person-h{font-size:12px;font-weight:700;font-variant-numeric:tabular-nums}
.wj-shd-person-h small{color:var(--text-3);font-weight:600}
.wj-shd-person-h.is-over{color:var(--warn-text,var(--warn))}
.wj-shd-grid{display:grid;grid-template-columns:64px repeat(7,minmax(118px,1fr));border:1px solid var(--hairline);border-radius:16px;overflow:auto;background:var(--surface-raised);max-height:calc(100dvh - 150px)}
.wj-shd-timecol{position:sticky;left:0;z-index:3;background:var(--surface-raised);border-right:1px solid var(--hairline);padding-top:46px}
.wj-shd-time{position:relative;border-top:1px solid var(--hairline);font-size:12px;color:var(--text-3);padding:2px 6px;font-variant-numeric:tabular-nums;display:flex;justify-content:space-between;align-items:flex-start}
.wj-shd-splitbtn{border:1px solid var(--hairline);background:var(--surface2);color:var(--muted);border-radius:8px;font-size:12px;font-weight:700;width:20px;height:18px;cursor:pointer;line-height:1}
.wj-shd-splitbtn.is-on{background:var(--primary-weak);color:var(--accent);border-color:transparent}
.wj-shd-day{min-width:0;display:block;border-right:1px solid var(--hairline)}
.wj-shd-day:last-child{border-right:0}
.wj-shd-dayhead{position:sticky;top:0;z-index:2;height:46px;display:grid;align-content:center;padding:0 10px;background:var(--surface-raised);border-bottom:1px solid var(--hairline)}
.wj-shd-dayhead strong{font-size:13px;text-transform:none}
.wj-shd-dayhead small{color:var(--text-3);font-size:12px}
.wj-shd-day.is-today .wj-shd-dayhead strong{color:var(--accent)}
.wj-shd-day.is-today .wj-shd-cells{background:color-mix(in srgb,var(--accent) 3%,transparent)}
.wj-shd-cells{position:relative}
.wj-shd-slot{border-top:1px solid var(--hairline);box-sizing:border-box;transition:background 100ms ease}
.wj-shd-slot.is-half{border-top-color:transparent}
.wj-shd-slot.is-half.is-split{border-top:1px dashed var(--border-strong)}
.wj-shd-slot.is-over{background:var(--primary-weak);box-shadow:inset 0 0 0 1.5px var(--accent)}
.wj-shd-ghost{position:fixed;left:0;top:0;z-index:999;pointer-events:none;padding:6px 10px;border-radius:12px;background:var(--surface-raised);border:1px solid var(--hairline);border-left:3px solid var(--bar);box-shadow:var(--shadow-lg);font-size:13px;font-weight:700;will-change:transform}
@media(max-width:900px){.wj-sched.has-people{grid-template-columns:1fr}.wj-shd-people{position:static;max-height:none}.wj-shd-people-list{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px}.wj-shd-person{flex:0 0 auto;min-width:160px}.wj-shd-grid{max-height:none;grid-template-columns:56px repeat(7,minmax(150px,1fr))}}
.wj-shd-centersel{width:auto;min-width:180px;flex:0 0 auto}
/* ===== Turnos: resumen por persona ===== */
.wj-shd-summary{display:grid;gap:6px;border:1px solid var(--hairline);border-radius:16px;padding:8px;background:var(--surface-raised);overflow-x:auto}
.wj-shd-sum-head,.wj-shd-sum-row{display:grid;grid-template-columns:240px repeat(7,minmax(118px,1fr));gap:6px;align-items:stretch;min-width:1080px}
.wj-shd-sum-head{position:sticky;top:0;z-index:2;background:var(--surface-raised);padding-bottom:4px;border-bottom:1px solid var(--hairline)}
.wj-shd-sum-corner,.wj-shd-sum-day{padding:8px 10px;font-size:12px;color:var(--text-3);font-weight:700;letter-spacing:.04em;text-transform:uppercase}
.wj-shd-sum-day{display:grid}
.wj-shd-sum-day strong{color:var(--text);text-transform:none;letter-spacing:0;font-size:13px}
.wj-shd-sum-day small{font-weight:600;text-transform:none;letter-spacing:0}
.wj-shd-sum-day.is-today strong{color:var(--accent)}
.wj-shd-sum-row{border-radius:16px;transition:background 200ms ease}
.wj-shd-sum-row.is-editable:hover{background:var(--surface2)}
.wj-shd-sum-row.is-mine{box-shadow:inset 0 0 0 1.5px var(--primary-weak)}
.wj-shd-sum-person{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:12px;cursor:default;position:relative}
.wj-shd-sum-row.is-editable .wj-shd-sum-person{cursor:pointer}
.wj-shd-sum-copy{display:grid;gap:3px;min-width:0;flex:1}
.wj-shd-sum-copy strong{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wj-shd-sum-h{font-size:12px;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}
.wj-shd-sum-h small{color:var(--text-3);font-weight:600}
.wj-shd-sum-h.is-over{color:var(--warn-text,var(--warn))}
.wj-shd-sum-edit{opacity:0;color:var(--text-3);transition:opacity 200ms ease}
.wj-shd-sum-row:hover .wj-shd-sum-edit{opacity:1}
.wj-shd-sum-cell{display:grid;gap:4px;align-content:start;padding:6px;border-radius:12px;background:var(--surface-sunken);min-height:52px}
.wj-shd-sum-cell.is-today{background:color-mix(in srgb,var(--accent) 6%,var(--surface-sunken))}
.wj-shd-pill{display:grid;gap:0;text-align:left;border:0;border-radius:12px;padding:6px 8px 6px 10px;background:var(--bg);color:var(--fg);border-left:3px solid var(--bar);font-size:12px;cursor:pointer;transition:transform 100ms ease,box-shadow 100ms ease}
.wj-shd-pill:hover{transform:translateY(-1px);box-shadow:var(--shadow)}
.wj-shd-pill b{font-variant-numeric:tabular-nums;font-size:12px}
.wj-shd-pill small{font-size:12px;opacity:.85;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wj-shd-pill.is-draft{outline:1.5px dashed var(--bar);outline-offset:-1px}
.wj-shd-tag{display:inline-flex;align-items:center;gap:6px;padding:2px 8px;border-radius:999px;background:var(--bg);color:var(--fg);font-size:12px;font-weight:700;line-height:1.4;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wj-shd-tag::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--bar);flex:0 0 auto}
.wj-shd-tag.is-empty{background:var(--surface3);color:var(--text-3)}
.wj-shd-tag.is-empty::before{display:none}
/* ===== Turnos: modo edición ===== */
.wj-shd-main{display:grid;gap:12px;min-width:0}
.wj-shd-people-list{position:relative;display:grid;gap:6px}
.wj-shd-sel{position:absolute;left:0;right:0;top:0;height:0;border-radius:12px;background:var(--primary-weak);box-shadow:inset 0 0 0 1.5px color-mix(in srgb,var(--accent) 35%,transparent);pointer-events:none;opacity:0;transition:transform .45s cubic-bezier(.34,1.45,.64,1),height 280ms ease,opacity .2s ease;z-index:0}
.wj-shd-person{position:relative;z-index:1;display:flex;align-items:center;gap:9px;padding:8px 10px 8px 6px;border-radius:12px;background:var(--surface-raised);border:1px solid var(--hairline);border-left:3px solid var(--bar);cursor:pointer;user-select:none;transition:transform 200ms ease,opacity 200ms ease,background .2s ease}
.wj-shd-person.is-selected{background:transparent;border-color:transparent;border-left-color:var(--bar)}
.wj-shd-person.is-selected strong{color:var(--accent)}
.wj-shd-person.is-dragging{opacity:.6;transform:scale(1.02);z-index:3;box-shadow:var(--shadow-lg)}
.wj-shd-grip{display:grid;place-items:center;width:18px;color:var(--text-3);cursor:grab;touch-action:none}
.wj-shd-grip:active{cursor:grabbing}
.wj-shd-person-copy{display:grid;gap:3px;min-width:0;flex:1}
.wj-shd-person-copy strong{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wj-shd-person-h{font-size:12px;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}
.wj-shd-person-h small{color:var(--text-3);font-weight:600}
.wj-shd-person-h.is-over{color:var(--warn-text,var(--warn))}
.wj-shd-cards{display:grid;gap:8px;padding:12px 14px;border:1px solid var(--hairline);border-radius:16px;background:var(--surface2)}
.wj-shd-cards-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px}
.wj-shd-cards-head small{color:var(--text-3);font-size:12px}
.wj-shd-cards-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.wj-shd-card{display:inline-flex;align-items:center;gap:8px;min-height:38px;padding:0 14px 0 10px;border-radius:12px;border:1px solid var(--hairline);background:var(--bg);color:var(--fg);font-weight:700;font-size:13px;cursor:grab;user-select:none;touch-action:none;transition:transform 200ms ease,box-shadow 200ms ease}
.wj-shd-card i{width:10px;height:10px;border-radius:3px;background:var(--bar)}
.wj-shd-card:hover{transform:translateY(-1px);box-shadow:var(--shadow)}
.wj-shd-card.is-armed{box-shadow:0 0 0 2px var(--accent),var(--shadow);transform:translateY(-1px)}
.wj-shd-card.is-dragging{opacity:.6}
.wj-shd-newpos{display:inline-flex;gap:6px;align-items:center}
.wj-shd-newpos .wj-input{min-height:36px;width:160px}
.wj-shd-selhead{display:flex;align-items:center;gap:10px;padding:4px 2px}
.wj-shd-selcopy{display:grid;gap:3px;flex:1;min-width:0}
.wj-shd-selcopy strong{font-size:15px}
.wj-shd-tagbtn{display:inline-flex;align-items:center;gap:6px;border:0;background:none;padding:0;color:var(--text-3);cursor:pointer;justify-self:start}
.wj-shd-tagbtn:hover{color:var(--text)}
@media(max-width:900px){.wj-shd-sum-head,.wj-shd-sum-row{grid-template-columns:200px repeat(7,minmax(110px,1fr));min-width:980px}}
/* turnos: resumen interactivo */
.wj-shd-avatar-btn{border:0;background:none;padding:0;cursor:pointer;border-radius:50%;transition:transform 200ms ease,box-shadow 200ms ease}
.wj-shd-avatar-btn:hover{transform:scale(1.06)}
.wj-shd-sum-row.is-focus{background:var(--primary-weak)}
.wj-shd-sum-row.is-focus .wj-shd-avatar-btn{box-shadow:0 0 0 3px var(--accent)}
.wj-shd-sum-row.is-dim{opacity:.45;transition:opacity 280ms ease}
.wj-shd-sum-row.is-focus .wj-shd-pill{box-shadow:0 0 0 2px var(--accent)}
.wj-shd-sum-cell.is-add{cursor:pointer;position:relative;transition:background 200ms ease}
.wj-shd-sum-cell.is-add:hover{background:color-mix(in srgb,var(--accent) 10%,var(--surface-sunken))}
/* sin estar editando, la celda también se puede tocar para añadir (entra en edición): se ve que reacciona */
.wj-shd-sum-cell.is-tap-add{cursor:pointer;transition:background 200ms ease}
.wj-shd-sum-cell.is-tap-add:hover{background:color-mix(in srgb,var(--accent) 6%,var(--surface-sunken))}
.wj-shd-sum-cell.is-tap-add:active{background:color-mix(in srgb,var(--accent) 12%,var(--surface-sunken))}
.wj-shd-add{position:absolute;right:6px;bottom:6px;width:20px;height:20px;border-radius:8px;display:grid;place-items:center;background:var(--surface-raised);color:var(--text-3);opacity:0;transition:opacity 200ms ease;pointer-events:none}
.wj-shd-sum-cell.is-add:hover .wj-shd-add{opacity:1}
.wj-shd-sum-cell.is-over{background:var(--primary-weak);box-shadow:inset 0 0 0 1.5px var(--accent)}
.wj-shd-pill{touch-action:none;position:relative}
.wj-shd-pill.is-moving{opacity:.8;z-index:5;box-shadow:var(--elev-3)}
.wj-shd-sum-copy .wj-shd-tagbtn{justify-self:start}
/* ===== franjas rápidas (turnos) ===== */
.wj-shd-tpls{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.wj-shd-tpl{position:relative;display:inline-flex;align-items:center;gap:7px;min-height:34px;padding:0 26px 0 10px;border-radius:999px;border:1px solid color-mix(in srgb,var(--c) 40%,transparent);background:color-mix(in srgb,var(--c) 16%,transparent);color:var(--text);font-size:13px;font-weight:700;cursor:grab;user-select:none;touch-action:none;transition:transform 200ms ease,box-shadow 200ms ease}
.wj-shd-tpl i{width:9px;height:9px;border-radius:50%;background:var(--c)}
.wj-shd-tpl b{font-variant-numeric:tabular-nums}
.wj-shd-tpl small{color:var(--muted);font-weight:600}
.wj-shd-tpl:hover{transform:translateY(-1px);box-shadow:var(--shadow)}
.wj-shd-tpl.is-armed{box-shadow:0 0 0 2px var(--c),var(--shadow)}
.wj-shd-tpl.is-dragging{opacity:.6}
.wj-shd-tpl-x{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:18px;height:18px;border-radius:50%;display:grid;place-items:center;color:var(--text-3);opacity:0;transition:opacity 200ms ease}
.wj-shd-tpl:hover .wj-shd-tpl-x{opacity:1}
.wj-shd-tpl-x:hover{background:var(--surface-raised);color:var(--danger-text,var(--danger))}
.wj-shd-palette{border:1px solid var(--hairline);border-radius:16px;padding:10px 12px 12px;margin:0;display:flex;flex-wrap:wrap;gap:8px}
.wj-shd-palette legend{font-size:12px;font-weight:700;color:var(--muted);padding:0 6px}
.wj-shd-swatch{position:relative;width:30px;height:30px;cursor:pointer}
.wj-shd-swatch input{position:absolute;inset:0;opacity:0;cursor:pointer}
.wj-shd-swatch i{display:block;width:30px;height:30px;border-radius:50%;background:var(--c);box-shadow:inset 0 0 0 2px rgb(255 255 255 / .6);transition:transform 200ms ease,box-shadow 200ms ease}
.wj-shd-swatch input:checked+i{transform:scale(1.12);box-shadow:0 0 0 3px var(--surface-raised),0 0 0 5px var(--c)}
/* Turnos: arrastrar fuera de la cuadrícula = quitar */
.wj-shd-pill.is-outside{opacity:.45;filter:grayscale(.6);outline:2px dashed var(--danger,rgb(229 72 77));outline-offset:2px}
.wj-shd-pill.is-gone{transform:scale(.6)!important;opacity:0!important;transition:transform 200ms,opacity 200ms}
.wj-chat-ctx{position:fixed;z-index:120;min-width:200px;padding:6px;border-radius:16px;background:var(--surface-raised,var(--surface));border:1px solid var(--border);box-shadow:var(--elev-3);display:grid;gap:2px;opacity:0;transform:translateY(-4px) scale(.98);transition:opacity 200ms,transform 200ms cubic-bezier(.22,.8,.3,1)}
.wj-chat-ctx.open{opacity:1;transform:none}
.wj-chat-ctx button{display:flex;align-items:center;gap:10px;min-height:38px;padding:0 10px;border:0;border-radius:8px;background:transparent;color:var(--text);font:inherit;font-size:14px;text-align:left;cursor:pointer}
.wj-chat-ctx button:hover{background:var(--surface2)}
.wj-chat-ctx button.danger{color:var(--danger,rgb(229 72 77))}
.wj-chat-ctx button svg{color:var(--muted)}
.wj-chat-ctx button.danger svg{color:inherit}
:is(.wj-nav-btn,.wj-solicitud-launch,.wj-metric-card,.wj-overview-card,.wj-person-type-card,.wj-quick-access-card,.wj-btn,.wj-icon-button,.wj-product,.wj-supplier,.wj-candidate,.wj-side-utility-btn,.wj-cal-cell,.wj-pos-card,.wj-tpv-card,.wj-mail-row,.wj-kb-card,.wj-prj-card,.wj-shop-card,.wj-ach,.wj-slot-bar,.wj-shop-start-card,.wj-hb-heart,.wj-hb-comment-btn,.wj-org-tray-item,.wj-trace-node,.wj-kpi,.wj-pedflow-step,.wj-pedhub-card,.wj-shd-pill,.wj-shd-card,.wj-shd-tpl):hover:not(:active):not(.is-gone):not(.is-armed){transform:none!important}
.wj-ctx-more{margin-left:auto;display:inline-flex;color:var(--muted);font-style:normal}
@media (max-width:760px){
 .wj-chat-ctx.ux-as{position:fixed!important;left:8px!important;right:8px!important;top:auto!important;bottom:calc(8px + var(--safe,0px))!important;width:auto!important;max-height:70vh;overflow:auto;padding:6px;border-radius:16px;display:flex;flex-direction:column;gap:2px;transform:translateY(110%);transition:transform 280ms var(--ux-out)!important}
 .wj-chat-ctx.ux-as.open{transform:none}
 .wj-chat-ctx.ux-as>button{min-height:48px;justify-content:flex-start;font-size:15px}
 .ux-as-cancel{display:flex;align-items:center;justify-content:center;min-height:50px;margin-top:8px;border:0;border-radius:16px;background:var(--surface2);color:var(--text);font:inherit;font-size:16px;font-weight:700;width:100%;position:sticky;bottom:0}
 .wj-chat-ctx.ux-as .ux-as-cancel{justify-content:center}
 #mobile-nav-drawer .ux-as-cancel{margin:10px 16px calc(10px + var(--safe,0px));width:calc(100% - 32px)}
}
/* Turnos: semana en la cabecera del cuadrante («‹» antes del primer día, «›» tras el último) y totales de horas */
.wj-shd-sum-corner{display:grid;gap:8px;align-content:center;text-transform:none;letter-spacing:0;font-weight:600}
.wj-shd-corner-top{display:flex;align-items:center;gap:6px;min-width:0}
.wj-shd-corner-top .wj-week-picker{flex:1;min-width:0;display:flex}
.wj-shd-corner-top .wj-date-range-trigger{min-width:0;max-width:100%;height:34px}
.wj-shd-corner-top .wj-date-range-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wj-shd-prev,.wj-shd-next{flex:none;width:30px;height:30px;border-radius:12px}
.wj-shd-prev svg{transform:rotate(180deg)}
.wj-shd-sum-day{position:relative;overflow:hidden;align-content:center}
.wj-shd-sum-day:last-child{padding-right:44px}
/* sin transform (el hover de los botones lo usa y lo hacía saltar); la altura la iguala el JS con «‹» */
.wj-shd-next{position:absolute;right:6px;top:10px}
.wj-shd-prev,.wj-shd-next,.wj-shd-prev:hover,.wj-shd-next:hover,.wj-shd-prev:active,.wj-shd-next:active{transform:none!important;translate:none!important}
.wj-shd-anim{display:grid;will-change:transform}
.wj-shd-sum-day small b{color:var(--text);font-weight:700}
.wj-shd-team{overflow:hidden;display:grid;gap:5px}
.wj-shd-team .wj-shd-anim{display:flex;align-items:baseline;gap:5px;white-space:nowrap}
.wj-shd-team b{font-size:15px;font-weight:700;color:var(--text);font-variant-numeric:tabular-nums}
.wj-shd-team small{font-size:12px;color:var(--text-3);font-weight:600;overflow:hidden;text-overflow:ellipsis}
.wj-shd-team-bar{display:block;height:5px;border-radius:999px;background:var(--hairline);overflow:hidden}
.wj-shd-team-bar em{display:block;height:100%;border-radius:inherit;background:var(--accent);transition:width .5s cubic-bezier(.16,.84,.3,1)}
.wj-shd-team.is-over b{color:var(--danger-text,var(--danger))}
.wj-shd-team.is-over .wj-shd-team-bar em{background:var(--danger)}
/* contador rojo de notas en la pastilla del turno */
.wj-shd-pill{position:relative}
.wj-shd-nbadge{position:absolute;top:-6px;right:-6px;min-width:18px;height:18px;padding:0 5px;display:grid;place-items:center;border-radius:999px;background:var(--danger,rgb(225 29 72));color:rgb(255 255 255);font-style:normal;font-size:12px;font-weight:700;line-height:1;box-shadow:0 0 0 2px var(--surface-raised,rgb(255 255 255));cursor:pointer}
/* notas del turno */
.wj-shd-notes{display:grid;gap:8px;padding:12px;border:1px solid var(--hairline);border-radius:16px;background:var(--surface2)}
.wj-shd-notes header{display:flex;align-items:center;gap:8px}
.wj-shd-notes header b{display:inline-flex;align-items:center;gap:6px;font-size:13px}
.wj-shd-notes header small:not(:empty){min-width:18px;height:18px;padding:0 5px;display:inline-grid;place-items:center;border-radius:999px;background:var(--danger,rgb(225 29 72));color:rgb(255 255 255);font-size:12px;font-weight:700}
.wj-shd-note-list{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.wj-shd-note{display:flex;align-items:center;gap:8px;padding:8px 8px 8px 12px;border-radius:12px;background:var(--surface-raised);border:1px solid var(--hairline)}
.wj-shd-note.is-private{border-color:color-mix(in srgb,var(--accent) 40%,transparent);background:color-mix(in srgb,var(--accent) 6%,var(--surface-raised))}
.wj-shd-note-txt{flex:1;min-width:0;display:grid;gap:2px;font-size:14px;overflow-wrap:anywhere}
.wj-shd-note-txt small{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:var(--text-3)}
.wj-shd-note-empty{font-size:13px;color:var(--text-3);padding:4px 2px}
.wj-shd-note-priv{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--text-2,var(--text-3));white-space:nowrap;cursor:pointer;user-select:none}
.wj-shd-note-priv input{accent-color:var(--accent)}
.wj-shd-note-priv>span{display:inline-flex;align-items:center;gap:4px;line-height:1}
.wj-shd-note-priv>span svg{flex:none}
/* alta de nota: el texto a todo el ancho (como las notas de encima) y debajo «Solo …» + «Añadir» */
.wj-shd-note-add{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;padding-top:2px}
.wj-shd-note-add .wj-input{grid-column:1/-1;width:100%;min-width:0}
.wj-shd-note-add .wj-shd-note-priv{justify-self:start;padding-left:2px}
.wj-shd-note-add [data-note-add]{justify-self:end}
/* Turnos en el móvil: botón «pantalla completa» y aviso de girar el teléfono */
.wj-shd-fs{display:none}
html[data-layout="mobile"] .wj-shd-fs{display:flex;align-items:center;justify-content:center;gap:8px;width:min(320px,100%);margin:14px auto 0}
.wj-shd-wrap.is-fs{position:fixed;inset:0;z-index:1600;background:var(--bg,var(--surface));padding:max(10px,env(safe-area-inset-top)) max(10px,env(safe-area-inset-right)) max(10px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left));overflow:auto;-webkit-overflow-scrolling:touch;animation:wjShdFsIn .26s cubic-bezier(.16,.84,.3,1) both}
.wj-shd-wrap.is-fs .wj-shd-summary{align-content:start;border-radius:16px;padding-top:52px}
.wj-shd-fs-close{position:fixed;z-index:3;top:max(12px,env(safe-area-inset-top));right:max(12px,env(safe-area-inset-right));width:40px;height:40px;border-radius:50%;background:var(--surface-raised);box-shadow:var(--elev-2)}
.wj-shd-rotate{position:fixed;z-index:4;inset:0;margin:auto;width:min(260px,80vw);height:max-content;display:grid;justify-items:center;gap:8px;padding:22px 18px;border:0;border-radius:16px;background:rgba(15,23,42,.88);color:rgb(255 255 255);font:inherit;text-align:center;box-shadow:var(--elev-3);backdrop-filter:blur(8px);animation:wjShdFsIn .3s .1s cubic-bezier(.16,.84,.3,1) both}
.wj-shd-rotate b{font-size:18px}
.wj-shd-rotate small{font-size:13px;opacity:.8}
.wj-shd-rotate-ic{display:grid;place-items:center;animation:wjShdRotate 1.8s ease-in-out .3s infinite}
@media(orientation:landscape){.wj-shd-rotate{display:none}}
@media(prefers-reduced-motion:reduce){.wj-shd-wrap.is-fs,.wj-shd-rotate,.wj-shd-rotate-ic{animation:none}}
/* Pantalla completa en vertical: también se lee bien sin girar el móvil. Columna de personas estrecha y fija a la
   izquierda mientras se desplazan los días; columnas y turnos más compactos. El aviso de girar va abajo y se va solo. */
@media (orientation:portrait){
 .wj-shd-wrap.is-fs .wj-shd-summary{padding:52px 6px 8px;gap:4px}
 .wj-shd-wrap.is-fs .wj-shd-sum-head,.wj-shd-wrap.is-fs .wj-shd-sum-row{gap:4px;min-width:0;width:max-content}
 .wj-shd-wrap.is-fs .wj-shd-sum-corner,.wj-shd-wrap.is-fs .wj-shd-sum-person{position:sticky;left:0;z-index:2;background:var(--surface-raised);box-shadow:var(--elev-2)}
 .wj-shd-wrap.is-fs .wj-shd-sum-corner{padding:6px;gap:6px}
 .wj-shd-wrap.is-fs .wj-shd-corner-top .wj-date-range-label,.wj-shd-wrap.is-fs .wj-shd-corner-top .wj-date-range-trigger>svg:last-of-type{display:none}
 .wj-shd-wrap.is-fs .wj-shd-corner-top .wj-date-range-trigger{width:34px;padding:0;justify-content:center}
 .wj-shd-wrap.is-fs .wj-shd-team small{display:none}
 .wj-shd-wrap.is-fs .wj-shd-sum-day{padding:6px 6px}
 .wj-shd-wrap.is-fs .wj-shd-sum-day:last-child{padding-right:40px}
 .wj-shd-wrap.is-fs .wj-shd-sum-head,.wj-shd-wrap.is-fs .wj-shd-sum-row{grid-template-columns:112px repeat(6,102px) 136px}
 .wj-shd-wrap.is-fs .wj-shd-sum-person{display:grid;grid-template-columns:30px 1fr;grid-template-rows:auto auto;column-gap:6px;row-gap:2px;padding:6px;align-items:center}
 .wj-shd-wrap.is-fs .wj-shd-sum-person .wj-shd-avatar-btn{grid-row:1/3}
 .wj-shd-wrap.is-fs .wj-shd-sum-person .wj-avatar,.wj-shd-wrap.is-fs .wj-shd-sum-person img{width:30px;height:30px}
 .wj-shd-wrap.is-fs .wj-shd-sum-copy strong{font-size:13px}
 .wj-shd-wrap.is-fs .wj-shd-sum-copy .wj-shd-tag,.wj-shd-wrap.is-fs .wj-shd-sum-copy .wj-shd-tagbtn{display:none}
 .wj-shd-wrap.is-fs .wj-shd-sum-h{grid-column:2;font-size:12px}
 .wj-shd-wrap.is-fs .wj-shd-sum-cell{padding:4px;min-height:44px}
 .wj-shd-wrap.is-fs .wj-shd-pill{padding:5px 6px 5px 8px}
 .wj-shd-wrap.is-fs .wj-shd-pill b{font-size:12px}.wj-shd-wrap.is-fs .wj-shd-pill small{font-size:12px}
 .wj-shd-wrap.is-fs .wj-shd-rotate{inset:auto 12px max(14px,env(safe-area-inset-bottom)) 12px;margin:0;width:auto;grid-template-columns:auto 1fr;justify-items:start;align-items:center;column-gap:12px;row-gap:0;padding:12px 16px;border-radius:16px;text-align:left}
 .wj-shd-wrap.is-fs .wj-shd-rotate .wj-shd-rotate-ic{grid-row:1/3}
 .wj-shd-wrap.is-fs .wj-shd-rotate-ic svg{width:30px;height:30px}
 .wj-shd-wrap.is-fs .wj-shd-rotate b{font-size:14px}.wj-shd-wrap.is-fs .wj-shd-rotate small{font-size:12px}
}
/* Turnos: si el cuadrante no cabe a lo ancho, «›» se pone junto a «‹» y la columna de la izquierda queda fija al desplazar */
.wj-shd-next.is-docked{position:static;top:auto}
.wj-shd-summary.is-tight .wj-shd-sum-day:last-child{padding-right:10px}
.wj-shd-summary.is-tight .wj-shd-sum-corner,.wj-shd-summary.is-tight .wj-shd-sum-person{position:sticky;left:0;z-index:2;background:var(--surface-raised);box-shadow:var(--elev-2)}
/* con el cuadrante a pantalla completa, la ficha del turno, las ventanas y los avisos van por encima */
html:has(.wj-shd-wrap.is-fs) .wj-drawer-backdrop{z-index:1650}
html:has(.wj-shd-wrap.is-fs) .wj-detail-drawer{z-index:1700}
html:has(.wj-shd-wrap.is-fs) .wj-modal-backdrop{z-index:1750}
/* Turnos · edición: el botón no cambia de sitio ni de ancho; la barra de edición (copiar semana + franjas) se despliega */
.wj-shd-editbtn{min-width:172px;justify-content:center}
.wj-shd-editbtn.is-on{border-color:color-mix(in srgb,var(--accent) 45%,transparent);color:var(--accent)}
.wj-shd-editbar{overflow:hidden;margin:0 0 14px}
.wj-shd-editbar-in{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;padding:10px 12px;border:1px solid color-mix(in srgb,var(--accent) 30%,var(--hairline));border-radius:16px;background:color-mix(in srgb,var(--accent) 5%,var(--surface2))}
.wj-shd-editbar .wj-shd-tpls{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.wj-shd-tpls-sep{width:1px;height:22px;background:var(--hairline);margin:0 2px}
.wj-shd-edithelp{margin-left:auto;font-size:12px;color:var(--text-3);max-width:420px;text-align:right}
@media(max-width:900px){.wj-shd-edithelp{margin-left:0;text-align:left;max-width:none}}
/* Turnos (ordenador): al pasar el ratón por un día se ilumina su columna y se atenúa el resto; por una persona, su fila
   (como el antiguo «tocar el avatar»). Un pequeño retardo evita parpadeos al cruzar la tabla con el ratón. */
@media (hover:hover) and (pointer:fine){
 .wj-shd-sum-cell,.wj-shd-sum-day,.wj-shd-sum-row{transition:opacity 200ms ease .05s,background-color 200ms ease .05s,box-shadow 200ms ease .05s}
 .wj-shd-sum-day:hover strong{color:var(--accent)}
 .wj-shd-summary:has(.wj-shd-sum-person:hover) .wj-shd-sum-row:not(:has(.wj-shd-sum-person:hover)){opacity:.45}
 .wj-shd-sum-row:has(.wj-shd-sum-person:hover) :is(.wj-shd-sum-cell,.wj-shd-sum-person){background:var(--primary-weak)}
 .wj-shd-sum-row:has(.wj-shd-sum-person:hover) .wj-shd-pill{box-shadow:0 0 0 2px var(--accent)}
 .wj-shd-sum-row:has(.wj-shd-sum-person:hover) .wj-shd-avatar-btn{box-shadow:0 0 0 3px var(--accent)}
 .wj-shd-summary:has(.wj-shd-sum-day[data-col="0"]:hover) :is(.wj-shd-sum-cell,.wj-shd-sum-day):not([data-col="0"]){opacity:.4}
 .wj-shd-summary:has(.wj-shd-sum-day[data-col="0"]:hover) .wj-shd-sum-cell[data-col="0"]{background:var(--primary-weak);box-shadow:inset 0 0 0 1.5px color-mix(in srgb,var(--accent) 35%,transparent)}
 .wj-shd-summary:has(.wj-shd-sum-day[data-col="0"]:hover) .wj-shd-sum-cell[data-col="0"] .wj-shd-pill{box-shadow:0 0 0 2px var(--accent)}
 .wj-shd-summary:has(.wj-shd-sum-day[data-col="1"]:hover) :is(.wj-shd-sum-cell,.wj-shd-sum-day):not([data-col="1"]){opacity:.4}
 .wj-shd-summary:has(.wj-shd-sum-day[data-col="1"]:hover) .wj-shd-sum-cell[data-col="1"]{background:var(--primary-weak);box-shadow:inset 0 0 0 1.5px color-mix(in srgb,var(--accent) 35%,transparent)}
 .wj-shd-summary:has(.wj-shd-sum-day[data-col="1"]:hover) .wj-shd-sum-cell[data-col="1"] .wj-shd-pill{box-shadow:0 0 0 2px var(--accent)}
 .wj-shd-summary:has(.wj-shd-sum-day[data-col="2"]:hover) :is(.wj-shd-sum-cell,.wj-shd-sum-day):not([data-col="2"]){opacity:.4}
 .wj-shd-summary:has(.wj-shd-sum-day[data-col="2"]:hover) .wj-shd-sum-cell[data-col="2"]{background:var(--primary-weak);box-shadow:inset 0 0 0 1.5px color-mix(in srgb,var(--accent) 35%,transparent)}
 .wj-shd-summary:has(.wj-shd-sum-day[data-col="2"]:hover) .wj-shd-sum-cell[data-col="2"] .wj-shd-pill{box-shadow:0 0 0 2px var(--accent)}
 .wj-shd-summary:has(.wj-shd-sum-day[data-col="3"]:hover) :is(.wj-shd-sum-cell,.wj-shd-sum-day):not([data-col="3"]){opacity:.4}
 .wj-shd-summary:has(.wj-shd-sum-day[data-col="3"]:hover) .wj-shd-sum-cell[data-col="3"]{background:var(--primary-weak);box-shadow:inset 0 0 0 1.5px color-mix(in srgb,var(--accent) 35%,transparent)}
 .wj-shd-summary:has(.wj-shd-sum-day[data-col="3"]:hover) .wj-shd-sum-cell[data-col="3"] .wj-shd-pill{box-shadow:0 0 0 2px var(--accent)}
 .wj-shd-summary:has(.wj-shd-sum-day[data-col="4"]:hover) :is(.wj-shd-sum-cell,.wj-shd-sum-day):not([data-col="4"]){opacity:.4}
 .wj-shd-summary:has(.wj-shd-sum-day[data-col="4"]:hover) .wj-shd-sum-cell[data-col="4"]{background:var(--primary-weak);box-shadow:inset 0 0 0 1.5px color-mix(in srgb,var(--accent) 35%,transparent)}
 .wj-shd-summary:has(.wj-shd-sum-day[data-col="4"]:hover) .wj-shd-sum-cell[data-col="4"] .wj-shd-pill{box-shadow:0 0 0 2px var(--accent)}
 .wj-shd-summary:has(.wj-shd-sum-day[data-col="5"]:hover) :is(.wj-shd-sum-cell,.wj-shd-sum-day):not([data-col="5"]){opacity:.4}
 .wj-shd-summary:has(.wj-shd-sum-day[data-col="5"]:hover) .wj-shd-sum-cell[data-col="5"]{background:var(--primary-weak);box-shadow:inset 0 0 0 1.5px color-mix(in srgb,var(--accent) 35%,transparent)}
 .wj-shd-summary:has(.wj-shd-sum-day[data-col="5"]:hover) .wj-shd-sum-cell[data-col="5"] .wj-shd-pill{box-shadow:0 0 0 2px var(--accent)}
 .wj-shd-summary:has(.wj-shd-sum-day[data-col="6"]:hover) :is(.wj-shd-sum-cell,.wj-shd-sum-day):not([data-col="6"]){opacity:.4}
 .wj-shd-summary:has(.wj-shd-sum-day[data-col="6"]:hover) .wj-shd-sum-cell[data-col="6"]{background:var(--primary-weak);box-shadow:inset 0 0 0 1.5px color-mix(in srgb,var(--accent) 35%,transparent)}
 .wj-shd-summary:has(.wj-shd-sum-day[data-col="6"]:hover) .wj-shd-sum-cell[data-col="6"] .wj-shd-pill{box-shadow:0 0 0 2px var(--accent)}
}
/* fila resaltada: se colorean las celdas (no el fondo de la fila, que asomaba entre celdas) */
.wj-shd-sum-row.is-focus{background:transparent}
.wj-shd-sum-row.is-focus :is(.wj-shd-sum-cell,.wj-shd-sum-person){background:var(--primary-weak)}
/* Turnos: «Publicar» sin contador y con ancho fijo (no empuja a los otros botones) */
.wj-shd-publish{min-width:132px;justify-content:center}
/* Turnos fuera de edición: misma franja iluminada; el resto atenuado */
.wj-shd-sum-day:last-child{padding-right:10px}
.wj-shd-summary:not(.is-editing) .wj-shd-pill{cursor:pointer}
.wj-shd-pill{transition:opacity 200ms ease,filter 200ms ease,box-shadow 200ms ease,transform 100ms ease}
.wj-shd-summary.is-same .wj-shd-pill:not(.is-same){opacity:.22;filter:saturate(.3)}
.wj-shd-summary.is-same .wj-shd-pill.is-same{box-shadow:0 0 0 2px var(--bar),0 8px 18px -8px var(--bar)}
.wj-shd-summary.is-same .wj-shd-sum-cell{background:color-mix(in srgb,var(--surface-sunken) 60%,transparent)}
/* panel de notas que sale del punto rojo; todo lo demás en gris */
.wj-shd-nbadge{transition:transform 200ms cubic-bezier(.34,1.56,.64,1)}
.wj-shd-nbadge:hover{transform:scale(1.18)}
.wj-shd-nb-dim{position:fixed;inset:0;z-index:1500;background:rgba(15,23,42,.16);-webkit-backdrop-filter:grayscale(1) blur(1.5px);backdrop-filter:grayscale(1) blur(1.5px)}
.wj-shd-nboard{position:fixed;z-index:1510;width:min(360px,calc(100vw - 20px));max-height:min(70vh,520px);display:flex;flex-direction:column;border-radius:16px;background:var(--surface-raised,var(--surface));border:1px solid var(--hairline,var(--border));box-shadow:var(--elev-3);overflow:hidden}
.wj-shd-nboard header{display:flex;align-items:center;gap:10px;padding:12px 12px 10px 14px;border-bottom:1px solid var(--hairline,var(--border))}
.wj-shd-nboard header>div{flex:1;min-width:0;display:grid}
.wj-shd-nboard header b{font-size:14px}
.wj-shd-nboard header small{font-size:12px;color:var(--text-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wj-shd-nboard-dot{flex:none;display:grid;place-items:center;min-width:24px;height:24px;padding:0 7px;border-radius:999px;background:var(--danger,rgb(225 29 72));color:rgb(255 255 255);font-size:12px;font-weight:700}
.wj-shd-nboard-list{overflow:auto;padding:10px;display:grid;gap:8px}
.wj-shd-nnote{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border-radius:12px;background:var(--surface2);border:1px solid var(--hairline,var(--border));animation:wjNnoteIn .34s cubic-bezier(.16,.84,.3,1) both;animation-delay:calc(140ms + var(--i,0) * 90ms)}
.wj-shd-nnote.is-private{border-color:color-mix(in srgb,var(--accent) 40%,transparent);background:color-mix(in srgb,var(--accent) 6%,var(--surface2))}
.wj-shd-nnote-n{flex:none;display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:color-mix(in srgb,var(--danger,rgb(225 29 72)) 14%,transparent);color:var(--danger,rgb(225 29 72));font-size:12px;font-weight:700;margin-top:1px}
.wj-shd-nnote>div{min-width:0;display:grid;gap:4px}
.wj-shd-nnote p{margin:0;font-size:14px;line-height:1.45;overflow-wrap:anywhere}
.wj-shd-nnote small{display:inline-flex;align-items:center;gap:4px;flex-wrap:wrap;font-size:12px;color:var(--text-3)}
@media(prefers-reduced-motion:reduce){.wj-shd-nnote{animation:none}}
/* menú contextual genérico (clic derecho) */
.wj-ctx-title{padding:6px 10px 4px;font-size:12px;font-weight:700;color:var(--text-3,var(--muted));max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wj-ctx hr{border:0;border-top:1px solid var(--border);margin:4px 2px}
.wj-ctx button small{margin-left:auto;padding-left:12px;font-size:12px;color:var(--muted)}
.wj-ctx button[disabled]{opacity:.45;cursor:default}
.wj-ctx button:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
/* Turnos: día resaltado fijo (desde el menú del clic derecho) */
.wj-shd-summary[data-pin-col="0"] :is(.wj-shd-sum-cell,.wj-shd-sum-day):not([data-col="0"]){opacity:.4}
.wj-shd-summary[data-pin-col="0"] .wj-shd-sum-cell[data-col="0"]{background:var(--primary-weak);box-shadow:inset 0 0 0 1.5px color-mix(in srgb,var(--accent) 35%,transparent)}
.wj-shd-summary[data-pin-col="0"] .wj-shd-sum-day[data-col="0"] strong{color:var(--accent)}
.wj-shd-summary[data-pin-col="1"] :is(.wj-shd-sum-cell,.wj-shd-sum-day):not([data-col="1"]){opacity:.4}
.wj-shd-summary[data-pin-col="1"] .wj-shd-sum-cell[data-col="1"]{background:var(--primary-weak);box-shadow:inset 0 0 0 1.5px color-mix(in srgb,var(--accent) 35%,transparent)}
.wj-shd-summary[data-pin-col="1"] .wj-shd-sum-day[data-col="1"] strong{color:var(--accent)}
.wj-shd-summary[data-pin-col="2"] :is(.wj-shd-sum-cell,.wj-shd-sum-day):not([data-col="2"]){opacity:.4}
.wj-shd-summary[data-pin-col="2"] .wj-shd-sum-cell[data-col="2"]{background:var(--primary-weak);box-shadow:inset 0 0 0 1.5px color-mix(in srgb,var(--accent) 35%,transparent)}
.wj-shd-summary[data-pin-col="2"] .wj-shd-sum-day[data-col="2"] strong{color:var(--accent)}
.wj-shd-summary[data-pin-col="3"] :is(.wj-shd-sum-cell,.wj-shd-sum-day):not([data-col="3"]){opacity:.4}
.wj-shd-summary[data-pin-col="3"] .wj-shd-sum-cell[data-col="3"]{background:var(--primary-weak);box-shadow:inset 0 0 0 1.5px color-mix(in srgb,var(--accent) 35%,transparent)}
.wj-shd-summary[data-pin-col="3"] .wj-shd-sum-day[data-col="3"] strong{color:var(--accent)}
.wj-shd-summary[data-pin-col="4"] :is(.wj-shd-sum-cell,.wj-shd-sum-day):not([data-col="4"]){opacity:.4}
.wj-shd-summary[data-pin-col="4"] .wj-shd-sum-cell[data-col="4"]{background:var(--primary-weak);box-shadow:inset 0 0 0 1.5px color-mix(in srgb,var(--accent) 35%,transparent)}
.wj-shd-summary[data-pin-col="4"] .wj-shd-sum-day[data-col="4"] strong{color:var(--accent)}
.wj-shd-summary[data-pin-col="5"] :is(.wj-shd-sum-cell,.wj-shd-sum-day):not([data-col="5"]){opacity:.4}
.wj-shd-summary[data-pin-col="5"] .wj-shd-sum-cell[data-col="5"]{background:var(--primary-weak);box-shadow:inset 0 0 0 1.5px color-mix(in srgb,var(--accent) 35%,transparent)}
.wj-shd-summary[data-pin-col="5"] .wj-shd-sum-day[data-col="5"] strong{color:var(--accent)}
.wj-shd-summary[data-pin-col="6"] :is(.wj-shd-sum-cell,.wj-shd-sum-day):not([data-col="6"]){opacity:.4}
.wj-shd-summary[data-pin-col="6"] .wj-shd-sum-cell[data-col="6"]{background:var(--primary-weak);box-shadow:inset 0 0 0 1.5px color-mix(in srgb,var(--accent) 35%,transparent)}
.wj-shd-summary[data-pin-col="6"] .wj-shd-sum-day[data-col="6"] strong{color:var(--accent)}
.wj-ctx button.wj-ctx-back svg{transform:rotate(180deg)}
.wj-heart{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;align-items:center;gap:2px 10px;padding:10px 12px;border:1px solid var(--border);border-radius:16px;background:var(--surface);color:var(--text);font:inherit;text-align:left;cursor:pointer;transition:transform 200ms cubic-bezier(.34,1.56,.64,1),border-color 200ms,box-shadow 200ms}
.wj-heart:hover{transform:translateY(-2px);box-shadow:var(--elev-2)}
.wj-heart:active{transform:scale(.97)}
.wj-heart.is-current{border-color:color-mix(in srgb,var(--accent) 50%,var(--border))}
.wj-heart-ic{grid-row:1/3;display:grid;place-items:center;width:34px;height:34px;border-radius:12px;background:color-mix(in srgb,var(--accent) 10%,transparent);color:var(--accent)}
.wj-heart b{font-size:13px;line-height:1.2}
.wj-heart-btn{display:inline-flex;align-items:center;gap:6px;color:var(--muted)}
.wj-heart-btn svg{fill:none;stroke:currentColor;stroke-width:2;transform-origin:center}
.wj-heart.is-on .wj-heart-btn{color:rgb(255 77 109)}
.wj-heart.is-on .wj-heart-btn svg{fill:rgb(255 77 109);stroke:rgb(255 77 109)}
.wj-heart-n{position:relative;display:inline-block;overflow:hidden;height:1.25em;min-width:1.6ch;font-size:13px;font-weight:700;line-height:1.25em;font-variant-numeric:tabular-nums}
.wj-heart-n em{position:absolute;left:0;top:0;font-style:normal}
.wj-heart-n em:only-child{position:static}
.wj-heart-burst{position:fixed;z-index:4000;width:0;height:0;pointer-events:none}
.wj-heart-burst i{position:absolute;left:0;top:0;width:7px;height:7px;border-radius:50%}
.wj-heart-burst .wj-heart-ring{width:30px;height:30px;border:2px solid rgb(255 143 171);background:transparent!important}
.wj-heart.is-solo{display:inline-flex;align-items:center;gap:10px;margin-top:8px;padding:12px 20px 12px 16px;border-radius:999px;font-size:15px}
.wj-heart.is-solo b{font-size:15px}
.wj-heart.is-solo .wj-heart-btn svg{width:24px;height:24px}
.wj-heart.is-solo .wj-heart-n{font-size:16px;min-width:2ch;padding-left:10px;border-left:1px solid var(--border)}
.wj-heart.is-solo.is-on{border-color:color-mix(in srgb,rgb(255 77 109) 45%,var(--border));background:color-mix(in srgb,rgb(255 77 109) 9%,var(--surface))}
.wj-heart.is-solo.is-on .wj-heart-n{color:rgb(255 77 109)}
/* ===== Notas del turno: «leída» la marca la persona del turno; el punto pasa a verde cuando están todas ===== */
.wj-shd-nnote>div{flex:1;min-width:0}
.wj-shd-ncheck{flex:none;align-self:center;display:grid;place-items:center;width:34px;height:34px;padding:0;border-radius:12px;border:2px solid var(--border-strong,var(--border));background:var(--surface);color:transparent;cursor:pointer;transition:background-color 200ms,border-color 200ms,color 200ms,transform 100ms}
.wj-shd-ncheck svg{fill:none;stroke:currentColor;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:24;stroke-dashoffset:24;transition:stroke-dashoffset .28s ease .05s}
.wj-shd-ncheck:not(:disabled):hover{border-color:var(--ok,rgb(34 197 94));transform:scale(1.06)}
.wj-shd-ncheck:not(:disabled):active{transform:scale(.92)}
.wj-shd-ncheck.is-on{background:var(--ok,rgb(34 197 94));border-color:var(--ok,rgb(34 197 94));color:rgb(255 255 255)}
.wj-shd-ncheck.is-on svg{stroke-dashoffset:0}
.wj-shd-ncheck:disabled{cursor:default;opacity:.55}
.wj-shd-ncheck:disabled.is-on{opacity:1}
.wj-shd-nread{display:inline-flex;align-items:center;gap:3px;color:var(--ok,rgb(34 197 94));font-weight:700}
.wj-shd-nbadge.is-read,.wj-shd-nboard-dot.is-read{background:var(--ok,rgb(34 197 94))}
.wj-shd-nnote [data-nread-line]{display:block;flex-basis:100%}
.wj-shd-nnote.is-read .wj-shd-nnote-n{background:color-mix(in srgb,var(--ok,rgb(34 197 94)) 18%,transparent);color:var(--ok,rgb(34 197 94))}
/* Turnos: aviso de borrador y vaciar un día */
.wj-shd-draftbar{display:flex;align-items:center;flex-wrap:wrap;gap:8px 10px;margin:8px 0;padding:8px 10px 8px 12px;border-radius:12px;border:1px solid color-mix(in srgb,var(--warn) 45%,var(--border));background:color-mix(in srgb,var(--warn) 9%,var(--surface));font-size:13px}
.wj-shd-draftbar>span:nth-child(2){flex:1;min-width:200px}
.wj-shd-draftbar-tag{padding:2px 9px;border-radius:999px;background:var(--warn);color:white;font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}
.wj-shd-sum-day{position:relative}
.wj-shd-clearday{position:absolute;top:4px;right:4px;z-index:2;display:grid;place-items:center;width:24px;height:24px;padding:0;border-radius:8px;border:1px solid color-mix(in srgb,var(--danger) 35%,var(--border));background:color-mix(in srgb,var(--danger) 10%,var(--surface));color:var(--danger-text,var(--danger));cursor:pointer}
.wj-shd-clearday:hover{background:var(--danger);color:white}
/* Turnos: borrador en una línea bajo el título y número en el botón Publicar (sin barra extra) */
.wj-shd-draftnote{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:6px 0 0!important;color:var(--warn-text,var(--warn))!important;font-size:13px;font-weight:600}
.wj-shd-draftnote b{padding:1px 8px;border-radius:999px;background:var(--warn);color:white;font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}
.wj-shd-pubcount{display:inline-grid;place-items:center;min-width:20px;height:20px;margin-left:6px;padding:0 6px;border-radius:999px;background:var(--warn);color:white;font-size:12px;font-weight:700}
/* Turnos · barra de edición: franjas a la izquierda, ayuda en medio (se recorta, no empuja) y «Vaciar semana» fijo a la derecha */
.wj-shd-editbar-in{flex-wrap:nowrap}
.wj-shd-editbar .wj-shd-tpls{flex:0 1 auto;min-width:0}
.wj-shd-edithelp{flex:1 1 160px;min-width:0;max-width:420px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.wj-shd-clearweek{flex:none;display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 14px;border-radius:12px;border:1px solid color-mix(in srgb,var(--danger) 35%,var(--border));background:color-mix(in srgb,var(--danger) 8%,var(--surface));color:var(--danger-text,var(--danger));font:inherit;font-size:13px;font-weight:700;white-space:nowrap;cursor:pointer;transition:background-color 200ms,border-color 200ms}
.wj-shd-clearweek:hover:not(:disabled){background:color-mix(in srgb,var(--danger) 16%,var(--surface));border-color:var(--danger)}
.wj-shd-clearweek:disabled{opacity:.45;cursor:not-allowed}
.wj-shd-clearweek:focus-visible{outline:2px solid var(--danger);outline-offset:2px}
@media(max-width:900px){.wj-shd-editbar-in{flex-wrap:wrap}.wj-shd-edithelp{flex-basis:100%;max-width:none;order:3}.wj-shd-clearweek{margin-left:auto}}
/* Turnos en el móvil: la semana entera cabe a lo ancho (zoom) y se amplía con dos dedos; columna de personas estrecha */
html[data-layout="mobile"] .wj-shd-summary{touch-action:pan-x pan-y;padding:6px;gap:4px}
html[data-layout="mobile"] .wj-shd-summary>*{zoom:var(--shd-z,1)}
html[data-layout="mobile"] .wj-shd-sum-head,html[data-layout="mobile"] .wj-shd-sum-row{grid-template-columns:112px repeat(7,104px);gap:4px;min-width:0;width:max-content}
html[data-layout="mobile"] .wj-shd-sum-corner{padding:6px;gap:6px}
html[data-layout="mobile"] .wj-shd-corner-top .wj-date-range-label,html[data-layout="mobile"] .wj-shd-corner-top .wj-date-range-trigger>svg:last-of-type{display:none}
html[data-layout="mobile"] .wj-shd-corner-top .wj-date-range-trigger{width:34px;padding:0;justify-content:center}
html[data-layout="mobile"] .wj-shd-team small{display:none}
html[data-layout="mobile"] .wj-shd-sum-person{display:grid;grid-template-columns:30px 1fr;grid-template-rows:auto auto;column-gap:6px;row-gap:2px;padding:6px;align-items:center}
html[data-layout="mobile"] .wj-shd-sum-person .wj-shd-avatar-btn{grid-row:1/3}
html[data-layout="mobile"] .wj-shd-sum-person .wj-avatar,html[data-layout="mobile"] .wj-shd-sum-person img{width:30px;height:30px}
html[data-layout="mobile"] .wj-shd-sum-copy strong{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
html[data-layout="mobile"] .wj-shd-sum-copy :is(.wj-shd-tag,.wj-shd-tagbtn){display:none}
html[data-layout="mobile"] .wj-shd-sum-h{grid-column:2;font-size:12px}
html[data-layout="mobile"] .wj-shd-sum-day{padding:6px}
html[data-layout="mobile"] .wj-shd-sum-cell{padding:4px;min-height:44px}
.wj-shd-zoom{position:sticky;top:8px;z-index:5;display:inline-flex;align-items:center;gap:6px;justify-self:end;margin:0 0 6px auto;height:32px;padding:0 12px;border-radius:999px;border:1px solid var(--border);background:var(--surface-raised,var(--surface));color:var(--text);font:inherit;font-size:12px;box-shadow:var(--shadow);cursor:pointer}
.wj-shd-zoom[hidden]{display:none}
.wj-shd-zoom b{font-variant-numeric:tabular-nums}
.wj-shd-zoom span{color:var(--accent);font-weight:700}
html[data-layout="mobile"] #content :is(.wj-emp-pb,.wj-emp-ab,.wj-shd-avatar-btn){position:relative}
html[data-layout="mobile"] #content :is(.wj-emp-pb,.wj-emp-ab,.wj-shd-avatar-btn)::after{content:"";position:absolute;left:50%;top:50%;width:max(100%,44px);height:44px;min-width:44px;transform:translate(-50%,-50%)}
.wj-shd-weeklbl::first-letter{text-transform:uppercase}
.wj-shd-dayhead strong::first-letter{text-transform:uppercase}
.wj-shd-sum-day strong::first-letter{text-transform:uppercase}
.wj-shd-empwarn{display:flex;align-items:flex-start;gap:10px;margin:0 0 12px;padding:10px 12px;border-radius:12px;background:var(--warn-weak);color:var(--warn-text,var(--warn))}
.wj-shd-empwarn>svg{flex:none;margin-top:2px}
.wj-shd-empwarn span{display:grid;gap:2px;min-width:0}
.wj-shd-empwarn b{font-weight:600}
.wj-shd-empwarn small{color:var(--text);opacity:.8;font-size:12px}
.wj-shd-nocontract{position:absolute;bottom:-6px;right:-6px;width:18px;height:18px;display:grid;place-items:center;border-radius:999px;background:var(--warn);color:rgb(255 255 255);box-shadow:0 0 0 2px var(--surface-raised,var(--surface))}
/* cuadrante publicado sin cambios: etiqueta de estado (antes un botón principal apagado que parecía pulsable) */
.wj-shd-pubstate{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:0 14px;border-radius:999px;background:var(--success-weak);color:var(--ok-text,var(--ok));font-size:13px;font-weight:600}
/* Cuadrante: horario por defecto (botón con el horario, turnos automáticos más suaves, días de la semana del formulario) */
.wj-shd-defchip{font-weight:500;color:var(--muted);font-size:12px}
.wj-btn.is-on .wj-shd-defchip{color:inherit;opacity:.8}
.wj-shd-pill.is-auto{border-left-style:dotted}
.wj-shd-defdays{display:grid;gap:6px}
.wj-shd-defday{display:grid;grid-template-columns:auto 84px 1fr auto 1fr;align-items:center;gap:8px;font-size:14px}
.wj-shd-defday .wj-input{min-height:36px}
.wj-shd-defday:has(input[type=checkbox]:not(:checked)) .wj-input{opacity:.45}
.wj-shd-defpeople{display:grid;gap:4px;padding:10px 12px;border-radius:12px;background:var(--surface2);font-size:13px}
/* ===== Pedidos (worldjump-platform 1.10.31): seguimiento del proveedor, correos, anular, actividad, escáner ===== */
/* Pedidos · estado del correo a cada proveedor en «Recibir» */
.wj-ped-mail{display:flex;align-items:center;flex-wrap:wrap;gap:5px;margin-top:3px;font-size:12px;font-weight:600;color:var(--muted)}
.wj-ped-mail.is-sent{color:var(--ok-text,var(--ok))}
.wj-ped-mail.is-failed,.wj-ped-mail.is-none{color:var(--danger-text,var(--danger))}
.wj-ped-mail.is-pending{color:var(--warn-text,var(--warn))}
.wj-ped-mail .wj-link-btn{font-size:12px;font-weight:700;padding:0 2px}
.wj-ped-mail .wj-link-btn.is-quiet{color:var(--muted);font-weight:600}
/* Seguimiento de pedidos (proveedor y equipo) */
.wj-trk{display:grid;gap:18px;max-width:980px;margin:0 auto;text-align:left}
.wj-trk-head h1{margin:2px 0 4px;font-size:clamp(22px,4vw,30px);letter-spacing:-.01em}
.wj-trk-head p{margin:0;color:var(--muted)}
.wj-trk-codechip{display:inline-flex;align-items:center;gap:6px;margin-top:10px;padding:5px 12px;border-radius:999px;border:1px dashed var(--accent);color:var(--accent);font-family:var(--font-mono);font-weight:700;letter-spacing:.08em}
.wj-trk-status{display:grid;gap:2px;padding:14px 18px;border-radius:16px;background:var(--surface2);border-left:4px solid var(--accent)}
.wj-trk-status small{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.wj-trk-status b{font-size:22px}
.wj-trk-status.st-shipped{border-left-color:var(--warn)}
.wj-trk-status.st-received{border-left-color:var(--ok)}
.wj-trk-status.st-cancelled{border-left-color:var(--danger)}
.wj-trk-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:18px;align-items:start}
@media(max-width:760px){.wj-trk-grid{grid-template-columns:1fr}}
.wj-trk-steps{list-style:none;margin:0;padding:4px 0;display:grid;gap:0}
.wj-trk-step{position:relative;display:flex;gap:12px;padding:0 0 18px}
.wj-trk-step::before{content:"";position:absolute;left:11px;top:24px;bottom:0;width:2px;background:var(--border)}
.wj-trk-step:last-child::before{display:none}
.wj-trk-step.is-done::before{background:var(--accent)}
.wj-trk-step>i{flex:0 0 24px;height:24px;border-radius:50%;display:grid;place-items:center;border:2px solid var(--border);background:var(--surface);color:white}
.wj-trk-step.is-done>i{background:var(--accent);border-color:var(--accent)}
.wj-trk-step.is-current>i{box-shadow:0 0 0 5px color-mix(in srgb,var(--accent) 20%,transparent)}
.wj-trk-step.is-cancel>i{background:var(--danger);border-color:var(--danger)}
.wj-trk-step>div{display:grid;gap:2px;padding-top:2px}
.wj-trk-step b{font-size:14px}
.wj-trk-step:not(.is-done) b{color:var(--muted);font-weight:600}
.wj-trk-step small{color:var(--muted);font-size:13px}
.wj-trk-note{font-size:13px;color:var(--text)}
.wj-trk-side{display:grid;gap:12px}
.wj-trk-staff{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:12px 14px;border-radius:12px;background:var(--surface2);font-size:13px;color:var(--muted)}
.wj-trk-staff>span{flex:1;min-width:200px}
.wj-trk-box{padding:14px 16px;border-radius:16px;border:1px solid var(--border);background:var(--surface)}
.wj-trk-box h3{display:flex;align-items:center;gap:6px;margin:0 0 6px;font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.wj-trk-box p{margin:0 0 4px;line-height:1.5}
.wj-trk-list header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}
.wj-trk-list h2{margin:0;font-size:18px}
.wj-trk-list h2 small{font-size:13px;color:var(--muted);font-weight:600}
.wj-trk-chk{width:34px}
.wj-trk-chk span{display:block;width:16px;height:16px;border:2px solid var(--border-strong);border-radius:8px}
.wj-trk-warn{display:flex;align-items:center;gap:6px;margin:0;font-size:13px;color:var(--warn-text,var(--warn))}
.wj-trk-gate{max-width:520px}
.wj-trk-gateform{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:end;margin:8px 0}
.wj-trk-gateform input{font-family:var(--font-mono);font-size:18px;letter-spacing:.1em;text-transform:uppercase}
@media(max-width:520px){.wj-trk-gateform{grid-template-columns:1fr}}
.wj-trk-search{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,420px);gap:16px;align-items:center}
@media(max-width:760px){.wj-trk-search{grid-template-columns:1fr}}
.wj-trk-search h3{display:flex;align-items:center;gap:6px;margin:0 0 4px}
.wj-trk-searchrow{display:flex;gap:8px}
.wj-trk-searchrow input{flex:1;font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase}
.wj-trk-card{padding:22px}
.wj-trk-rows{display:grid;gap:4px;margin-top:8px}
.wj-trk-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:12px;width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:12px;background:var(--surface);color:inherit;font:inherit;text-align:left;cursor:pointer}
.wj-trk-row:hover{background:var(--surface2)}
.wj-trk-row code{font-family:var(--font-mono);font-weight:700;letter-spacing:.06em;color:var(--accent)}
.wj-trk-row-main{display:grid;min-width:0}
.wj-trk-row-main small{color:var(--muted);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wj-trk-row-when{color:var(--muted);font-size:12px}
@media(max-width:640px){.wj-trk-row{grid-template-columns:minmax(0,1fr) auto}.wj-trk-row code,.wj-trk-row-when{grid-column:1/-1}}
.wj-trk-pill{padding:3px 10px;border-radius:999px;font-size:12px;font-weight:700;background:var(--surface2);color:var(--muted);white-space:nowrap}
.wj-trk-pill.st-seen,.wj-trk-pill.st-preparing{background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent)}
.wj-trk-pill.st-shipped{background:color-mix(in srgb,var(--warn) 16%,transparent);color:var(--warn-text,var(--warn))}
.wj-trk-pill.st-received{background:color-mix(in srgb,var(--ok) 16%,transparent);color:var(--ok-text,var(--ok))}
.wj-trk-pill.st-cancelled{background:color-mix(in srgb,var(--danger) 14%,transparent);color:var(--danger-text,var(--danger))}
/* Recibir: seguimiento y anular */
.wj-ped-trk{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-top:3px;font-size:12px;font-weight:600;color:var(--muted)}
.wj-ped-trk.st-seen,.wj-ped-trk.st-preparing{color:var(--accent)}
.wj-ped-trk.st-shipped{color:var(--warn-text,var(--warn))}
.wj-ped-trk code{font-family:var(--font-mono);font-size:12px;padding:1px 6px;border-radius:8px;background:var(--surface2);color:var(--text)}
.wj-ped-mail.is-cancel{color:var(--muted)}
.wj-ped-sup-acts{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.wj-ped-cancelbtn,.wj-ped-cancelall{color:var(--danger-text,var(--danger))}
@media print{
 .wj-public-body .wj-trk-noprint,.wj-public-body .wj-public-head,.wj-public-body .wj-public-foot{display:none!important}
 .wj-trk{max-width:none}.wj-trk-grid{grid-template-columns:1fr 1fr}
 .wj-trk-table td,.wj-trk-table th{padding:6px}
}
/* Seguimiento v2: mensaje del estado, nota del proveedor a la derecha, fotos y botones abajo */
.wj-trk{padding-bottom:12px}
.wj-trk:not(.is-staff){padding-bottom:calc(96px + var(--safe,0px))}
.wj-trk-msg{display:flex;align-items:flex-start;gap:10px;padding:14px 16px;border-radius:16px;border:1px solid color-mix(in srgb,var(--accent) 30%,var(--border));background:color-mix(in srgb,var(--accent) 7%,var(--surface))}
.wj-trk-msg p{margin:0;line-height:1.45}
.wj-trk-msg.st-received{border-color:color-mix(in srgb,var(--ok) 40%,var(--border));background:color-mix(in srgb,var(--ok) 8%,var(--surface))}
.wj-trk-msg.st-cancelled{border-color:color-mix(in srgb,var(--danger) 40%,var(--border));background:color-mix(in srgb,var(--danger) 7%,var(--surface))}
.wj-trk-msg.st-shipped{border-color:color-mix(in srgb,var(--warn) 40%,var(--border));background:color-mix(in srgb,var(--warn) 7%,var(--surface))}
.wj-trk-notebox{display:grid;gap:8px}
.wj-trk-notebox.has-note{border-color:color-mix(in srgb,var(--warn) 45%,var(--border));background:color-mix(in srgb,var(--warn) 6%,var(--surface))}
.wj-trk-notebox h3{margin:0}
.wj-trk-notetext{margin:0;font-size:15px;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere}
.wj-trk-notebox textarea{width:100%;resize:vertical;min-height:76px;font-size:15px}
.wj-trk-noteacts{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}
.wj-trk-items{list-style:none;margin:0;padding:0;border-top:1px solid var(--border)}
.wj-trk-items li{display:grid;grid-template-columns:18px 52px minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px 4px;border-bottom:1px solid var(--border)}
.wj-trk-items .wj-trk-chk{width:18px;height:18px;border:2px solid var(--border-strong);border-radius:8px}
.wj-trk-img{width:52px;height:52px;border-radius:12px;object-fit:cover;background:var(--surface2);border:1px solid var(--border);display:block}
.wj-trk-img.is-empty{background:linear-gradient(135deg,var(--surface2),var(--surface3,var(--surface2)))}
.wj-trk-item-main{display:grid;gap:2px;min-width:0}
.wj-trk-item-main b{font-size:15px;overflow-wrap:anywhere}
.wj-trk-item-main small{color:var(--muted);font-size:13px}
.wj-trk-item-main small:empty{display:none}
.wj-trk-qty{display:grid;justify-items:end;line-height:1.1;font-variant-numeric:tabular-nums}
.wj-trk-qty b{font-size:22px}
.wj-trk-qty small{color:var(--muted);font-size:12px}
.wj-trk-bar{position:fixed;left:0;right:0;bottom:0;z-index:30;padding:10px 16px calc(10px + var(--safe,0px));background:color-mix(in srgb,var(--surface) 92%,transparent);backdrop-filter:blur(14px);border-top:1px solid var(--border)}
.wj-trk-bar-in{display:flex;gap:10px;max-width:980px;margin:0 auto;justify-content:flex-end}
.wj-trk-bar .wj-btn{min-height:48px;padding:0 18px;font-size:15px;gap:8px}
.wj-trk-bar .wj-btn.primary{flex:0 1 auto}
@media(max-width:640px){.wj-trk-bar-in{justify-content:stretch}.wj-trk-bar .wj-btn{flex:0 0 auto}.wj-trk-bar .wj-btn.primary{flex:1 1 auto;justify-content:center}.wj-trk-bar .wj-btn:not(.primary) span{display:none}
 .wj-trk-items li{grid-template-columns:18px 44px minmax(0,1fr) auto;gap:10px}.wj-trk-img{width:44px;height:44px}}
@media print{.wj-trk-bar{display:none!important}.wj-trk:not(.is-staff){padding-bottom:0}.wj-trk-img{width:40px;height:40px}}
/* Pedidos · correo «probablemente enviado, sin confirmación» (registros antiguos sin respuesta) */
.wj-ped-mail.is-unknown{color:var(--warn-text,var(--warn))}
.wj-trk-warn svg,.wj-help>svg:first-child{vertical-align:-2px;margin-right:2px}
/* Anulado / cancelado: cerrado, nada que hacer → gris (como en Compras) */
.wj-gx-st.is-cancelado,.wj-trk-pill.st-cancelled{background:var(--surface2);color:var(--muted)}
/* ===== Pregunta corta propia (askFields / askText): sustituye al cuadro nativo del navegador =====
   Capa propia por encima de ventanas y cajones; en el móvil sube desde abajo. */
.ux-ask-back{position:fixed;inset:0;z-index:calc(var(--ux-z,10060) + 5);display:grid;place-items:center;padding:16px;background:rgb(2 6 23 / .45);opacity:0;transition:opacity .2s var(--ux-out,ease)}
.ux-ask-back.on{opacity:1}
.ux-ask-back.out{opacity:0;transition-duration:200ms}
.ux-ask{width:min(420px,100%);display:grid;gap:12px;padding:20px;border-radius:16px;background:var(--surface-raised,var(--surface));color:var(--text);border:1px solid var(--hairline,var(--border));box-shadow:var(--shadow-float,var(--shadow-lg));transform:translateY(8px) scale(.98);transition:transform .2s var(--ux-out,ease)}
.ux-ask-back.on .ux-ask{transform:none}
.ux-ask h2{margin:0;font-size:16px;font-weight:600;line-height:1.3}
.ux-ask-text{margin:0;color:var(--muted);font-size:13px;line-height:1.5}
.ux-ask form{display:grid;gap:12px}
.ux-ask .wj-field{display:grid;gap:6px}
.ux-ask-hint{color:var(--muted);font-size:12px;line-height:1.4}
.ux-ask-err{color:var(--danger-text,var(--danger));font-size:12px;font-weight:600}
.ux-ask .wj-input[aria-invalid="true"]{border-color:var(--danger);box-shadow:0 0 0 3px color-mix(in srgb,var(--danger) 18%,transparent)}
.ux-ask-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:4px}
html[data-layout="mobile"] .ux-ask-back{place-items:end stretch;padding:0}
html[data-layout="mobile"] .ux-ask{width:100%;border-radius:16px 16px 0 0;padding:20px 16px calc(16px + env(safe-area-inset-bottom,0px));transform:translateY(24px)}
html[data-layout="mobile"] .ux-ask-actions .wj-btn{flex:1;min-height:44px}
@media (prefers-reduced-motion:reduce){.ux-ask-back,.ux-ask{transition:none}}
/* ===== Escáner de documentos: pantalla completa oscura, como una app de cámara (igual en los dos temas) ===== */
html.wj-scan-open,html.wj-scan-open body{overflow:hidden}
.wj-scan{position:fixed;inset:0;z-index:4000;display:grid;grid-template-rows:auto minmax(0,1fr) auto;background:rgb(0 0 0);color:rgb(255 255 255);padding:env(safe-area-inset-top,0px) env(safe-area-inset-right,0px) env(safe-area-inset-bottom,0px) env(safe-area-inset-left,0px);-webkit-user-select:none;user-select:none;touch-action:manipulation}
.wj-scan.is-flash::after{content:"";position:absolute;inset:0;background:rgb(255 255 255);pointer-events:none;animation:wj-scan-flash 200ms ease-out forwards}
.wj-scan-top{display:flex;align-items:center;gap:12px;padding:8px 14px}
.wj-scan-top b{flex:1;min-width:0;font-size:16px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wj-scan-count{font-size:13px;color:rgba(255,255,255,.75)}
.wj-scan-icon{width:44px;height:44px;flex:none;border-radius:999px;border:0;background:rgba(255,255,255,.14);color:rgb(255 255 255);display:grid;place-items:center;cursor:pointer}
.wj-scan-view{position:relative;min-height:0;display:grid;grid-template-rows:minmax(0,1fr) auto}
.wj-scan-view[hidden],.wj-scan-row[hidden],.wj-scan-pages[hidden]{display:none!important}
.wj-scan-stage{position:relative;min-height:0;overflow:hidden}
.wj-scan-stage video,.wj-scan-overlay{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.wj-scan-hint{position:absolute;left:50%;bottom:14px;transform:translateX(-50%);width:max-content;max-width:calc(100% - 32px);margin:0;padding:8px 14px;border-radius:999px;background:rgba(0,0,0,.66);font-size:14px;line-height:1.35;text-align:center}
.wj-scan-stage.is-edit{touch-action:none}
.wj-scan-stage.is-edit canvas{position:absolute}
.wj-scan-h{position:absolute;width:44px;height:44px;margin:-22px 0 0 -22px;padding:0;border:0;background:transparent;display:grid;place-items:center;cursor:grab;touch-action:none}
.wj-scan-h i{width:22px;height:22px;border-radius:999px;background:rgb(255 255 255);border:3px solid var(--accent);box-shadow:0 1px 6px rgba(0,0,0,.5);transition:transform 100ms ease}
.wj-scan-h.is-drag i{transform:scale(1.3)}
.wj-scan-loupe{position:absolute;width:132px;height:132px;border-radius:999px;border:3px solid rgb(255 255 255);box-shadow:0 4px 18px rgba(0,0,0,.6);pointer-events:none}
.wj-scan-tip{margin:0;padding:8px 16px;font-size:13px;color:rgba(255,255,255,.8);text-align:center}
.wj-scan-stage.is-result{display:grid;place-items:center;padding:12px}
.wj-scan-stage.is-result canvas{max-width:100%;max-height:100%;background:rgb(255 255 255);box-shadow:0 4px 24px rgba(0,0,0,.5)}
.wj-scan-busy{position:absolute;left:50%;bottom:16px;transform:translateX(-50%);margin:0;padding:8px 14px;border-radius:999px;background:rgba(0,0,0,.72);font-size:14px}
.wj-scan-modes{display:flex;justify-content:center;flex-wrap:wrap;gap:8px;padding:8px 12px 0}
.wj-scan-modes button{min-height:36px;padding:0 14px;border-radius:999px;border:1px solid rgba(255,255,255,.35);background:transparent;color:rgb(255 255 255);font-size:13px;font-weight:600;cursor:pointer}
.wj-scan-modes button.is-on{background:rgb(255 255 255);color:rgb(0 0 0);border-color:rgb(255 255 255)}
.wj-scan-bar{display:grid;gap:12px;padding:12px 16px 16px}
.wj-scan-row{display:flex;align-items:center;justify-content:center;gap:16px;flex-wrap:wrap}
.wj-scan-side{display:grid;justify-items:center;align-content:center;gap:2px;min-width:56px;min-height:56px;border:0;border-radius:12px;background:transparent;color:rgb(255 255 255);font-size:12px;cursor:pointer}
.wj-scan-side[aria-pressed="false"]{opacity:.5}
.wj-scan-shutter{position:relative;width:76px;height:76px;flex:none;padding:0;border:4px solid rgba(255,255,255,.92);border-radius:999px;background:transparent;cursor:pointer}
.wj-scan-shutter i{position:absolute;inset:5px;border-radius:999px;background:rgb(255 255 255);transition:transform 100ms ease}
.wj-scan-shutter:active i{transform:scale(.88)}
.wj-scan-shutter svg{position:absolute;inset:-4px;width:calc(100% + 8px);height:calc(100% + 8px);transform:rotate(-90deg);pointer-events:none}
.wj-scan-shutter circle{fill:none;stroke:var(--ok);stroke-width:5;stroke-dasharray:232;stroke-dashoffset:232}
.wj-scan-pages{display:flex;align-items:center;justify-content:space-between;gap:12px}
.wj-scan-thumbs{display:flex;gap:8px;min-width:0;overflow-x:auto}
.wj-scan-thumb{position:relative;flex:none;width:44px;height:58px;border-radius:8px;overflow:hidden;background:rgb(34 34 34)}
.wj-scan-thumb img{width:100%;height:100%;object-fit:cover}
.wj-scan-thumb button{position:absolute;top:2px;right:2px;width:22px;height:22px;padding:0;border:0;border-radius:999px;background:rgba(0,0,0,.72);color:rgb(255 255 255);display:grid;place-items:center;cursor:pointer}
.wj-scan-ask{position:absolute;inset:0;z-index:2;display:grid;place-items:center;padding:16px;background:rgba(0,0,0,.6)}
.wj-scan-ask>div{width:100%;max-width:340px;display:grid;gap:8px;padding:20px;border-radius:16px;background:rgb(28 28 30)}
.wj-scan-ask p{margin:0;color:rgba(255,255,255,.8)}
@media (prefers-reduced-motion:reduce){.wj-scan.is-flash::after{animation:none;opacity:0}}
/* Factura del proveedor en su página de seguimiento */
.wj-trk-invoice{display:grid;gap:8px}
.wj-trk-invoice.is-todo{border-color:var(--accent)}
.wj-trk-invoice>p{margin:0}
.wj-trk-invline{display:flex;justify-content:space-between;gap:8px;font-size:15px}
.wj-trk-invstate{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--muted)}
.wj-trk-invstate.is-ok b,.wj-trk-invstate.is-paid b{color:var(--ok-text,var(--ok))}
.wj-trk-invstate.is-wait b{color:var(--warn-text,var(--warn))}
.wj-trk-invrej{display:flex;gap:8px;padding:10px 12px;border-radius:12px;background:var(--danger-weak);color:var(--danger-text,var(--danger))}
.wj-trk-invrej>div{display:grid;gap:2px;font-size:13px}
.wj-trk-invfields{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}
.wj-trk-invpicks{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.wj-trk-invpicks[hidden],.wj-trk-invpicked[hidden]{display:none!important}
.wj-trk-invpick{display:grid;justify-items:center;gap:4px;padding:18px 12px;border-radius:16px;border:1px dashed var(--border-strong);background:var(--surface2);color:var(--text);font:inherit;text-align:center;cursor:pointer;transition:border-color 100ms ease}
.wj-trk-invpick:hover{border-color:var(--accent)}
.wj-trk-invpick:active{scale:.98}
.wj-trk-invpick b{font-size:15px}
.wj-trk-invpick small{font-size:12px;color:var(--muted)}
.wj-trk-invpicked{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border-radius:12px;background:var(--surface2)}
.wj-trk-invfile{display:flex;align-items:center;gap:10px;min-width:0}
.wj-trk-invfile>span{display:grid;min-width:0}
.wj-trk-invfile b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wj-trk-invfile small{font-size:12px;color:var(--muted)}
.wj-sup-del-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.wj-sup-del-list li{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border:1px solid var(--border);border-radius:12px;background:var(--surface)}
.wj-sup-del-list li>svg{flex:none;margin-top:2px;color:var(--muted)}
.wj-sup-del-list li>div{display:grid;gap:2px;min-width:0}
.wj-sup-del-list li small{color:var(--muted);font-size:12px;overflow-wrap:anywhere}
/* Pedidos · resumen: actividad (quién crea, cambia o elimina, y cómo avanzan pedidos y pagos), agrupada por día */
.wj-pedact{margin-top:24px;padding:16px;border:1px solid var(--border);border-radius:16px;background:var(--surface);display:grid;grid-template-columns:minmax(0,1fr);gap:12px}
.wj-pedact>*,.wj-pedact-head>*{min-width:0}
.wj-pedact-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:12px}
.wj-pedact-head h3{margin:0;font-size:16px;font-weight:700}
.wj-pedact-head p{margin:4px 0 0}
.wj-pedact-list{list-style:none;margin:0;padding:0;display:grid;max-height:520px;overflow:auto}
.wj-pedact-day{position:sticky;top:0;z-index:1;padding:10px 4px 6px;background:var(--surface);color:var(--muted);font-size:12px;font-weight:600}
.wj-pedact-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:start;padding:10px 4px;border-top:1px solid var(--border)}
.wj-pedact-day+.wj-pedact-row{border-top:0}
.wj-pedact-ico{width:32px;height:32px;border-radius:999px;display:grid;place-items:center;background:var(--primary-weak);color:var(--accent)}
.wj-pedact-ico.is-ok{background:var(--success-weak);color:var(--ok-text,var(--ok))}
.wj-pedact-ico.is-danger{background:var(--danger-weak);color:var(--danger-text,var(--danger))}
.wj-pedact-copy{display:grid;gap:2px;min-width:0;font-size:14px;line-height:1.4}
.wj-pedact-copy b{font-weight:600}
.wj-pedact-copy small{color:var(--muted);font-size:12px;overflow-wrap:anywhere}
.wj-pedact-row time{color:var(--muted);font-size:12px;white-space:nowrap;padding-top:2px}
.wj-pedact-empty{padding:16px 4px;color:var(--muted);font-size:13px}
.wj-pedact-more{justify-self:center}
.wj-pedact-more[hidden]{display:none}
@media (max-width:760px){.wj-pedact{padding:12px}.wj-pedact-head .wj-seg{max-width:100%;overflow-x:auto}}
@keyframes wj-scan-flash{from{opacity:.65}to{opacity:0}}

/* Quejas de clientes (traído de worldjump-platform) */
.wj-status-tab-count{margin-left:4px;font-weight:600;color:var(--muted)}
.wj-status-tab.active .wj-status-tab-count{color:inherit}
.wj-status-tab-count{background:var(--surface3);color:var(--muted);border-radius:999px;padding:0 6px;font-size:11px;font-weight:700;min-width:18px;height:18px;display:inline-grid;place-items:center;margin-left:6px}
.wj-status-tab.active .wj-status-tab-count{background:var(--primary-weak);color:var(--accent)}
.wj-gx-av{display:grid;place-items:center;flex:none;width:30px;height:30px;border-radius:50%;background:color-mix(in srgb,var(--accent) 16%,transparent);color:var(--accent);font-weight:700;font-size:13px}
.wj-gx-search{display:flex;align-items:center;gap:8px;flex:1 1 220px;max-width:340px;height:40px;padding:0 12px;border:1px solid var(--hairline,var(--border));border-radius:12px;background:var(--surface-raised,var(--surface));color:var(--muted)}
.wj-gx-search input{flex:1;min-width:0;border:0;background:transparent;color:var(--text);font:inherit;font-size:14px;outline:0}
.wj-gx-search:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 16%,transparent)}
.wj-gx-picker .wj-gx-search{max-width:none}
.wj-gx-empty{display:grid;justify-items:center;gap:6px;padding:34px 16px;text-align:center;color:var(--muted)}
.wj-gx-empty b{color:var(--text)}
.wj-gx-none-match{margin:8px;text-align:center;color:var(--muted);font-size:13px}
.wj-gxd-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:6px;padding:8px;border:1px solid var(--hairline,var(--border));border-radius:16px;background:var(--surface-raised,var(--surface))}
.wj-gxd-grid.is-tight{padding:0;border:0;background:transparent}
.wj-gxd-cell{display:grid;gap:2px;align-content:start;min-height:56px;padding:9px 12px;border-radius:12px;background:var(--surface-sunken,var(--surface2));min-width:0}
.wj-gxd-cell small{color:var(--text-3,var(--muted));font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.wj-gxd-cell b{font-size:14px;overflow-wrap:anywhere}
.wj-gxd-cell b small{display:block;text-transform:none;letter-spacing:0;font-weight:600;font-size:12px}
.wj-gxd-cell a{color:var(--accent);text-decoration:none}
.wj-gxd-cell.is-alert{background:color-mix(in srgb,var(--danger) 10%,var(--surface-sunken,var(--surface2)))}
.wj-gxd-cell.is-alert b{color:var(--danger-text,var(--danger))}
.wj-gxd-card{display:grid;gap:10px;padding:12px 14px;border:1px solid var(--hairline,var(--border));border-radius:16px;background:var(--surface-raised,var(--surface))}
.wj-gxd-card>header{display:flex;align-items:center;justify-content:space-between;gap:10px}
.wj-gxd-card h3{margin:0;font-size:14px}
.wj-gxd-msg{margin:0;white-space:pre-wrap;color:var(--text);line-height:1.5}
.wj-gxd-people{display:grid;gap:6px}
.wj-gxd-person{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:12px;background:var(--surface-sunken,var(--surface2))}
.wj-gxd-person>span:nth-child(2){display:grid;flex:1;min-width:0}
.wj-gxd-person small{color:var(--muted);font-size:12px}
.wj-gxd-actions{display:flex;flex-wrap:wrap;gap:8px}
@media(max-width:900px){.wj-gx-search{max-width:none;flex-basis:100%}}
.wj-status-tab-count.is-alert{background:var(--danger);color:rgb(255,255,255)}
html[data-layout="mobile"] #content :is(.wj-input,.wj-select,select.wj-input,.wj-gx-search input):not(textarea){min-height:44px}
.wj-status-tab-count{font-size:12px;min-width:20px;height:20px}
.wj-status-tab-count:empty{display:none}
.wj-qj-tabs{margin:0 0 14px}
.wj-qj-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin:0 0 12px}
.wj-qj-bar .wj-qj-filters{flex:1 1 320px;padding-bottom:0}
.wj-qj-search{flex:0 1 280px}
.wj-qj-list{display:grid;gap:8px}
.wj-qj-row{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto 18px;align-items:center;gap:12px;width:100%;min-height:64px;padding:12px 14px 12px 18px;border:1px solid var(--hairline,var(--border));border-radius:12px;background:var(--surface-raised,var(--surface));color:var(--text);font:inherit;text-align:left;cursor:pointer;transition:background-color 200ms ease,border-color 200ms ease}
.wj-qj-row::before{content:"";position:absolute;left:6px;top:10px;bottom:10px;width:3px;border-radius:3px;background:var(--border-strong,var(--border))}
.wj-qj-row.is-media::before{background:var(--warn)}
.wj-qj-row.is-grave::before{background:var(--danger)}
.wj-qj-row:hover{background:var(--surface2);border-color:var(--border-strong,var(--border))}
.wj-qj-row:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.wj-qj-row>svg{color:var(--muted)}
.wj-qj-main{display:grid;gap:3px;min-width:0}
.wj-qj-main b{font-size:14px;font-weight:600;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.wj-qj-main small{color:var(--muted);font-size:13px}
.wj-qj-side{display:grid;gap:4px;justify-items:end}
.wj-qj-cats{display:flex;flex-wrap:wrap;gap:4px;margin-top:2px}
.wj-qj-cats i{font-style:normal;padding:2px 8px;border-radius:999px;background:var(--surface2);color:var(--text);font-size:12px;font-weight:500}
@media(max-width:699px){.wj-qj-row{grid-template-columns:minmax(0,1fr) 18px}.wj-qj-side{grid-column:1;grid-row:2;justify-items:start;display:flex;flex-wrap:wrap}.wj-qj-row>svg{grid-column:2;grid-row:1/span 2}.wj-qj-search{flex-basis:100%}}
.wj-qj-form textarea{min-height:110px;font-size:16px;line-height:1.5}
.wj-qj-chips{display:flex;flex-wrap:wrap;gap:6px}
.wj-qj-chip{min-height:36px;padding:0 12px;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--text);font:inherit;font-size:13px;font-weight:500;cursor:pointer;transition:background-color 200ms ease,border-color 200ms ease,color 200ms ease}
.wj-qj-chip:hover{background:var(--surface2)}
.wj-qj-chip[aria-pressed="true"]{border-color:var(--accent);background:var(--primary-weak);color:var(--info-text,var(--accent));font-weight:600}
html[data-layout="mobile"] .wj-qj-chip{min-height:40px}
.wj-qj-more>summary{display:flex;align-items:center;gap:6px;min-height:40px;color:var(--accent);font-size:14px;font-weight:600;cursor:pointer;list-style:none}
.wj-qj-more>summary::-webkit-details-marker{display:none}
.wj-qj-more>summary svg{transition:transform .2s ease}
.wj-qj-more[open]>summary svg{transform:rotate(90deg)}
.wj-qj-more>.wj-stack{padding-top:8px}
.wj-qj-guest{margin:0;padding:12px;border:1px solid var(--hairline,var(--border));border-radius:12px}
.wj-qj-guest legend{padding:0 4px;font-size:13px;font-weight:600}
.wj-qj-guest legend small{display:block;font-weight:400}
.wj-qj-detail{display:grid;gap:14px}
.wj-qj-dhead{display:flex;flex-wrap:wrap;gap:6px}
.wj-qj-desc{margin:0;font-size:16px;line-height:1.55;white-space:pre-wrap;overflow-wrap:anywhere}
.wj-qj-hist{margin:0;padding:0;list-style:none;display:grid;gap:10px}
.wj-qj-hist li{display:grid;gap:2px;padding-left:14px;border-left:2px solid var(--hairline,var(--border))}
.wj-qj-hist li b{font-size:13px;font-weight:600}
.wj-qj-hist li small{color:var(--muted);font-size:12px}
.wj-qj-hist li p{margin:2px 0 0;font-size:13px}
.wj-qj-resolve{border-color:color-mix(in srgb,var(--accent) 40%,var(--border))}
.wj-qj-stats{display:grid;gap:16px}
.wj-qj-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.wj-qj-kpis>div{display:grid;gap:2px;padding:12px 14px;border:1px solid var(--hairline,var(--border));border-radius:12px;background:var(--surface-raised,var(--surface))}
.wj-qj-kpis small{color:var(--muted);font-size:12px;font-weight:500}
.wj-qj-kpis b{font-size:22px;font-variant-numeric:tabular-nums}
.wj-qj-kpis>.is-alert b{color:var(--danger-text,var(--danger))}
.wj-qj-top,.wj-qj-week,.wj-qj-grid>section{padding:14px 16px;border:1px solid var(--hairline,var(--border));border-radius:16px;background:var(--surface-raised,var(--surface))}
.wj-qj-stats h3{margin:0 0 10px;font-size:14px;font-weight:600}
.wj-qj-top ol{margin:0;padding:0;list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;counter-reset:q}
.wj-qj-top li{counter-increment:q;display:grid;gap:2px;padding:10px 12px;border-radius:12px;background:var(--surface2)}
.wj-qj-top li::before{content:counter(q);font-size:12px;font-weight:700;color:var(--muted)}
.wj-qj-top li b{font-size:15px}
.wj-qj-top li span{color:var(--muted);font-size:13px}
.wj-qj-spark{display:flex;align-items:flex-end;gap:4px;height:72px}
.wj-qj-spark i{flex:1;min-width:4px;height:max(3px,var(--h));border-radius:8px 8px 2px 2px;background:var(--accent);opacity:.8}
.wj-qj-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.wj-qj-bar-row{display:grid;grid-template-columns:minmax(90px,38%) minmax(0,1fr) 32px;align-items:center;gap:10px;min-height:28px;font-size:13px}
.wj-qj-bar-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wj-qj-bar-row i{height:8px;border-radius:999px;background:linear-gradient(var(--accent),var(--accent)) left/var(--w) 100% no-repeat,var(--surface2)}
.wj-qj-bar-row b{text-align:right;font-variant-numeric:tabular-nums}
@media(max-width:899px){.wj-qj-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.wj-qj-grid{grid-template-columns:minmax(0,1fr)}.wj-qj-top ol{grid-template-columns:minmax(0,1fr)}}
@media (prefers-reduced-motion:reduce){.wj-qj-row,.wj-qj-chip,.wj-qj-more>summary svg{transition:none}}

/* Mis tareas (traído de worldjump-platform) */
.wj-tasks-launcher{position:relative}
.wj-tasks-launcher .wj-tasks-badge{background:var(--danger)}
html[data-layout="mobile"] .wj-tasks-launcher{display:none!important}
.wj-tasks-sheet{display:grid;gap:8px}
.wj-tasks-list{display:grid;gap:6px}
.wj-task{display:grid;grid-template-columns:40px minmax(0,1fr) 18px;align-items:center;gap:12px;width:100%;min-height:60px;padding:10px 12px;border:1px solid var(--hairline,var(--border));border-radius:12px;background:var(--surface-raised,var(--surface));color:var(--text);font:inherit;text-align:left;cursor:pointer;transition:background-color 200ms ease,border-color 200ms ease,transform .1s ease}
.wj-task:hover{background:var(--surface2);border-color:var(--border-strong,var(--border))}
.wj-task:active{transform:scale(.99)}
.wj-task:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.wj-task>svg{color:var(--muted)}
.wj-task-ic{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:var(--primary-weak);color:var(--accent)}
.wj-task-copy{display:grid;gap:2px;min-width:0}
.wj-task-copy b{font-size:14px;font-weight:600;line-height:1.3;overflow-wrap:anywhere}
.wj-task-copy small{color:var(--muted);font-size:13px;line-height:1.35}
.wj-task-copy em{font-style:normal}
.wj-task-copy em.is-late{color:var(--warn-text,var(--warn));font-weight:600}
.wj-tasks-empty{display:grid;justify-items:center;gap:6px;padding:40px 16px;border-radius:16px;background:var(--surface-sunken,var(--surface2));color:var(--muted);text-align:center}
.wj-tasks-empty>svg{width:44px;height:44px;padding:10px;border-radius:50%;background:var(--success-weak);color:var(--ok-text,var(--ok))}
.wj-tasks-empty b{color:var(--text);font-size:15px}
.wj-tasks-empty small{max-width:34ch;font-size:13px;line-height:1.5}
@media (prefers-reduced-motion:reduce){.wj-task{transition:none}}
.wj-tasks-sheet{gap:18px}
.wj-tasks-group{display:grid;gap:8px}
.wj-tasks-group h3{display:flex;align-items:center;gap:8px;margin:0 2px;color:var(--muted);font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase}
.wj-tasks-group h3 i{font-style:normal;min-width:20px;padding:1px 7px;border-radius:999px;background:var(--surface2);color:var(--text);text-align:center;letter-spacing:0}
.wj-account-count{margin-left:auto;min-width:22px;height:22px;padding:0 7px;border-radius:999px;background:var(--danger);color:rgb(255 255 255);font-size:12px;font-weight:700;display:inline-grid;place-items:center}
.wj-user-tasks{display:flex;align-items:center}
.wj-top-avatar{position:relative}
.wj-top-avatar .wj-protocol-badge.wj-avatar-tasks{position:absolute;right:-5px;top:-5px;min-width:18px;height:18px;padding:0 5px;box-sizing:border-box;border-radius:999px;background:var(--danger);color:rgb(255 255 255);font-size:11px;font-weight:700;line-height:1;display:grid;place-items:center;border:2px solid var(--surface)}
html:not([data-layout="mobile"]) .wj-top-avatar .wj-protocol-badge.wj-avatar-tasks{display:none}
.wj-tasks-launcher .wj-tasks-badge{position:absolute;top:-4px;right:-4px;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--danger);color:rgb(255 255 255);font-size:11px;font-weight:800;line-height:18px;text-align:center;box-shadow:0 0 0 2px var(--surface)}

/* Personal: hoy (fichaje y turno), pendientes y posibles cuentas repetidas (traído de worldjump-platform) */
[data-staff-body].is-live .wj-staff-row{animation:none}
.wj-staff-today{display:grid;gap:2px;min-width:0}
.wj-staff-today b{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wj-staff-today b.is-off{color:var(--muted);font-weight:500}
.wj-staff-today b.is-on{color:var(--ok-text,var(--ok))}
.wj-staff-today b.is-pause{color:var(--warn-text,var(--warn))}
.wj-staff-today small{display:flex;align-items:center;gap:4px;color:var(--muted);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wj-staff-today.is-loading i{display:block;width:70%;height:10px;border-radius:6px;background:var(--surface2);animation:wj-staff-shimmer 1.2s ease-in-out infinite alternate}
@keyframes wj-staff-shimmer{from{opacity:.45}to{opacity:1}}
.wj-staff-pend{display:inline-flex;align-items:center;gap:4px;margin-top:3px;padding:1px 7px;border-radius:999px;background:var(--warn-weak);color:var(--warn-text,var(--warn));font-size:12px;font-weight:600;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}
.wj-staff-dup{display:inline-block;margin-left:6px;padding:0 6px;border-radius:999px;background:var(--danger-weak);color:var(--danger-text,var(--danger));font-size:11px;font-weight:700;vertical-align:1px}
button.wj-staff-stat{font:inherit;cursor:pointer;border:1px solid transparent}
.wj-staff-dupstat.on{border-color:var(--warn);background:var(--warn-weak)}
@media (prefers-reduced-motion:reduce){.wj-staff-today.is-loading i{animation:none}}
button.wj-staff-stat{background:none;color:inherit;padding:2px 8px;margin:-2px -8px;border-radius:999px}

/* Jerarquía de roles (traído de worldjump-platform) */
.wj-rtree-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin:8px 0 12px}
.wj-rtree-head .wj-help{margin:0;max-width:640px}
.wj-rtree,.wj-rtree ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.wj-rtree ul{margin:8px 0 0 22px;padding-left:16px;border-left:2px solid var(--border)}
.wj-rtree-node{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:10px 14px;border:1px solid var(--border);border-radius:12px;background:var(--surface)}
.wj-rtree-node b{font-size:14px;font-weight:600}
.wj-rtree-node small{color:var(--muted);font-size:12px}
.wj-rtree-node.is-default{border-color:var(--accent)}
.wj-rtree-parent{display:flex;align-items:center;gap:8px;margin-left:auto;font-size:13px;color:var(--muted);flex:0 1 300px}
.wj-rtree-parent>span{white-space:nowrap}
.wj-rtree-parent .wj-select{flex:1;min-width:0}
.wj-rtree-head .wj-btn{flex:none;white-space:nowrap}
@media (max-width:640px){.wj-rtree-parent{flex-basis:100%;margin-left:0}.wj-rtree ul{margin-left:8px;padding-left:12px}}

/* Sesión cerrada en otro dispositivo (traído de worldjump-platform) */
.wj-sessend{position:fixed;inset:0;z-index:10000;display:grid;place-items:center;padding:16px;background:color-mix(in srgb,var(--bg) 72%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.wj-sessend-card{display:grid;justify-items:center;gap:12px;width:min(420px,100%);padding:24px;border:1px solid var(--border);border-radius:16px;background:var(--surface);box-shadow:var(--elev-3);text-align:center}
.wj-sessend-card h2{margin:0;font-size:20px;font-weight:700;line-height:1.3}
.wj-sessend-card p{margin:0;font-size:15px;line-height:1.5}
.wj-sessend-card small{color:var(--muted);font-size:12px}
.wj-sessend-ico{width:56px;height:56px;border-radius:16px;display:grid;place-items:center;background:var(--primary-weak);color:var(--accent)}
.wj-sessend-card p.wj-sessend-warn{padding:8px 12px;border-radius:12px;background:var(--warn-weak);color:var(--warn-text,var(--warn));font-size:13px;font-weight:600}
.wj-sessend-card .wj-btn.primary{width:100%;min-height:48px;justify-content:center}
/* Registro de jornada para la Inspección (/registro/<enlace>) */
.wj-fj-pub{max-width:1000px}
.wj-fj-pub-range{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px;margin:14px 0}
.wj-fj-pub-table{overflow-x:auto}
.wj-fj-pub-table table{width:100%;border-collapse:collapse;font-size:14px}
.wj-fj-pub-table th,.wj-fj-pub-table td{padding:8px 10px;text-align:left;border-bottom:1px solid var(--border);white-space:nowrap}
.wj-fj-pub-table th{font-size:12px;color:var(--muted);font-weight:600}

/* Respuesta al pulsar en todo el panel (auditoría UX traída de worldjump-platform): todo lo que se puede pulsar se hunde
   un poco al tocarlo, con la propiedad «scale» (no choca con los «transform» de cada componente). Los botones ya lo
   tenían. */
@media (prefers-reduced-motion:no-preference){
 body:not(.wj-public-body) :is(.wj-tab,.wj-status-tab,.wj-filter-chip,.wj-chip-btn,.wj-seg button,.wj-segmented button,.wj-secondary-nav button,.wj-mobile-dock a,.wj-mobile-dock button,.wj-user-pop button,.wj-dash-tabs button):active{scale:.96}
 body:not(.wj-public-body) :is(.wj-task,.wj-proto-row,.wj-fj-dayrow,.wj-fj-tr,.wj-staff-grid .row.click,.wj-acct-act):active{scale:.99}
}
/* En pantallas táctiles, los botones pequeños y los de icono tienen 44 px para el dedo aunque se vean más pequeños. */
@media (pointer:coarse){
 :where(body:not(.wj-public-body) :is(.wj-btn.sm,.wj-btn.icon,.wj-chip-btn,.wj-filter-chip)){position:relative}
 body:not(.wj-public-body) :is(.wj-btn.sm,.wj-btn.icon,.wj-chip-btn,.wj-filter-chip)::after{content:'';position:absolute;left:50%;top:50%;width:max(100%,44px);height:max(100%,44px);translate:-50% -50%}
}
/* Avisos de tipo «warn» e «info» (antes salían sin color). */
.wj-toast.warn{background:color-mix(in srgb,var(--warn) 82%,rgb(0,0,0));color:rgb(255,255,255)}
.wj-toast.info{background:color-mix(in srgb,var(--info,rgb(37,99,235)) 82%,rgb(0,0,0));color:rgb(255,255,255)}
/* Pregunta con un campo de texto (askText): por encima de ventanas y paneles. */
.wj-asktext-layer{z-index:2100}
.wj-asktext{width:min(460px,100%)}
.wj-asktext .wj-form-actions{display:flex;justify-content:flex-end;gap:8px}
.wj-field-error{color:var(--danger);font-size:12px}
/* Tarjeta «Ponlo en marcha» de una función recién activada (y su lista en la portada). */
.wj-fsetup{margin-bottom:14px;padding:14px 16px;border-radius:16px;border:1px solid color-mix(in srgb,var(--accent) 40%,var(--border));background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 7%,var(--surface)),var(--surface));display:grid;gap:10px}
.wj-fsetup-head{display:flex;align-items:center;gap:12px}
.wj-fsetup-head>div{flex:1;min-width:0;display:grid;gap:2px}
.wj-fsetup-head small{color:var(--muted)}
.wj-fsetup-ico{width:34px;height:34px;border-radius:12px;display:grid;place-items:center;flex:0 0 auto;background:color-mix(in srgb,var(--accent) 14%,var(--surface));color:var(--accent)}
.wj-fsetup-steps{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.wj-fsetup-steps li{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:12px;background:var(--surface);border:1px solid var(--border)}
.wj-fsetup-steps li>span:nth-child(2){flex:1;min-width:0}
.wj-fsetup-steps li.done{opacity:.65}
.wj-fsetup-steps .wj-guided-num{width:24px;height:24px;font-size:12px}
.wj-fsetup-home{margin-bottom:14px}
.wj-fsetup-home-list{display:grid;gap:8px}
.wj-fsetup-home-row{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:12px;background:var(--surface);border:1px solid var(--border)}
.wj-fsetup-home-row>div{flex:1;min-width:0;display:grid;gap:2px}
.wj-fsetup-home-row small{color:var(--muted)}
.wj-guided-test{display:grid;gap:6px;margin-top:8px;padding:12px;border-radius:12px;border:1px dashed color-mix(in srgb,var(--accent) 45%,var(--border));background:var(--surface)}
.wj-guided-test[hidden]{display:none}
.wj-guided-test p{margin:0}
.wj-guided-ok{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;background:color-mix(in srgb,var(--ok) 12%,var(--surface));border:1px solid color-mix(in srgb,var(--ok) 40%,var(--border));color:var(--text)}
.wj-guided-ok>div{flex:1;min-width:0;display:grid;gap:2px}
.wj-guided-ok small{color:var(--muted)}
.wj-guided-ok>svg{color:var(--ok)}
.wj-guided-foot[hidden]{display:none}
/* Facturas: vista previa en el panel (el documento impreso lleva su propio CSS) */
.wj-public-actions{display:flex;flex-wrap:wrap;gap:10px}.wj-public-actions .wj-btn{flex:1 1 220px;justify-content:center}.wj-invdoc-public{overflow-x:auto}.wj-public-card h2{margin:0;font-size:19px;letter-spacing:-.02em}
.wj-invdoc-wrap{border:1px solid var(--border);border-radius:16px;background:var(--surface);padding:22px;overflow-x:auto}
.wj-invdoc{display:grid;gap:16px;font-size:13px;min-width:0}
.wj-invdoc-head{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;flex-wrap:wrap;padding-bottom:16px;border-bottom:1px solid var(--border)}
.wj-invdoc-brand{display:block;font-size:20px;font-weight:700;letter-spacing:-.01em;margin-bottom:4px}
.wj-invdoc-from h2{margin:0 0 2px;font-size:14px}.wj-invdoc-from p{margin:0;color:var(--muted)}
.wj-invdoc-id{display:grid;gap:8px;text-align:right;min-width:190px}.wj-invdoc-type{font-size:18px;font-weight:700;letter-spacing:-.01em}
.wj-invdoc dl{margin:0;display:grid;gap:3px}.wj-invdoc dl div{display:flex;justify-content:space-between;gap:14px}.wj-invdoc dt{color:var(--muted)}.wj-invdoc dd{margin:0;font-weight:600;font-variant-numeric:tabular-nums}
.wj-invdoc-cust{display:grid;gap:1px;padding:10px 12px;border-radius:12px;background:var(--surface-2,var(--bg));max-width:360px}.wj-invdoc-cust small{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.wj-invdoc-rel{margin:0;padding:8px 12px;border-left:3px solid var(--text);background:var(--surface-2,var(--bg))}
.wj-invdoc table{width:100%;border-collapse:collapse}.wj-invdoc th,.wj-invdoc td{padding:7px 4px;text-align:right;font-variant-numeric:tabular-nums}
.wj-invdoc th:first-child,.wj-invdoc td:first-child{text-align:left;padding-left:0}.wj-invdoc th:last-child,.wj-invdoc td:last-child{padding-right:0}
.wj-invdoc th{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);border-bottom:1px solid var(--text)}.wj-invdoc td{border-bottom:1px solid var(--border)}
.wj-invdoc-sum{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;flex-wrap:wrap}.wj-invdoc-tax{width:auto!important;min-width:240px;flex:1 1 240px;max-width:340px}.wj-invdoc-tax td{color:var(--muted)}
.wj-invdoc-totals{display:grid;gap:4px;min-width:220px;flex:0 1 260px}.wj-invdoc-totals div{display:flex;justify-content:space-between;gap:14px;font-variant-numeric:tabular-nums}.wj-invdoc-totals div span:first-child{color:var(--muted)}
.wj-invdoc-grand{margin-top:4px;padding-top:8px;border-top:2px solid var(--text);align-items:baseline}.wj-invdoc-grand span:first-child{color:var(--text)!important;font-weight:600}.wj-invdoc-grand small{font-weight:400;color:var(--muted)}.wj-invdoc-grand strong{font-size:20px}
.wj-invdoc-note{margin:0;color:var(--muted)}
.wj-invdoc-foot{display:flex;gap:18px;align-items:flex-start;flex-wrap:wrap;border-top:1px solid var(--border);padding-top:14px}
.wj-invdoc-qr{display:grid;justify-items:center;gap:4px;padding:8px;border-radius:8px;background:var(--on-accent);width:150px;text-align:center}.wj-invdoc-qr span{justify-self:start;font-size:11px;font-weight:600;color:var(--brand)}.wj-invdoc-qr svg{width:120px;height:120px}.wj-invdoc-qr b{font-size:11px;color:var(--brand)}.wj-invdoc-qr small{font-size:11px;line-height:1.3;color:var(--brand)}
.wj-invdoc-refs{flex:1;min-width:200px;display:grid;gap:8px}.wj-invdoc-refs p{margin:0;color:var(--muted);font-size:12px}.wj-invdoc-refs dl div{justify-content:flex-start}.wj-invdoc-refs dt{min-width:110px}
html[data-theme="dark"] .wj-invdoc-qr{background:var(--text)}html[data-theme="dark"] .wj-invdoc-qr small,html[data-theme="dark"] .wj-invdoc-qr span,html[data-theme="dark"] .wj-invdoc-qr b{color:var(--bg)}
.wj-inline-alert{display:flex;align-items:flex-start;gap:10px;margin:0 0 12px;padding:12px 14px;border-radius:12px;background:var(--warn-weak);color:var(--warn-text);font-size:13px;line-height:1.45}.wj-inline-alert>svg{flex:none;margin-top:2px}.wj-inline-alert>div{flex:1;min-width:0}.wj-inline-alert p{margin:2px 0 0}.wj-inline-alert strong{display:block}.wj-inline-alert.danger{background:var(--danger-weak);color:var(--danger-text)}.wj-inline-alert .wj-btn{flex:none;align-self:center}.wj-inline-alert details{margin-top:6px}.wj-inline-alert summary{cursor:pointer;font-weight:600}.wj-inline-alert ul{margin:6px 0 0;padding-left:18px}.wj-inv-miss-links{display:flex;flex-wrap:wrap;gap:4px 12px}.wj-inv-miss-links a{color:inherit;font-weight:600}
@media (max-width:640px){.wj-inline-alert{flex-wrap:wrap}.wj-inline-alert .wj-btn{width:100%}}
.wj-inv-alert{margin:0;padding:10px 12px;border-radius:12px;background:var(--primary-weak);color:var(--accent-2);font-size:13px}.wj-inv-alert.warn{background:var(--warn-weak);color:var(--warn-text)}
.wj-inv-rel{width:100%;text-align:left;cursor:pointer;border:1px solid var(--border);border-radius:12px;padding:8px 10px;background:var(--surface)}.wj-inv-rel:hover{border-color:var(--accent)}
.wj-inv-full summary{cursor:pointer;display:grid;gap:2px;list-style:none}.wj-inv-full summary::-webkit-details-marker{display:none}.wj-inv-full summary small{color:var(--muted)}.wj-inv-full[open] summary{margin-bottom:12px}
.wj-tx-split{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px;margin:-4px 0 14px}
.wj-tx-split>div{border:1px solid var(--border);border-radius:16px;background:var(--surface);padding:10px 14px;display:grid;gap:4px}
.wj-tx-split h4{margin:0 0 2px;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.wj-tx-split-row{display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:baseline}.wj-tx-split-row small{color:var(--muted)}.wj-tx-split-row strong{font-variant-numeric:tabular-nums}
/* Alergias: solo para el personal. Arriba de la reserva, en rojo y con cada menor y su alergia. */
.wj-allergy-alert{border:2px solid var(--danger);background:var(--danger-weak);border-radius:16px;padding:12px 14px;margin:0 0 12px}
.wj-allergy-alert-head{display:flex;align-items:flex-start;gap:10px}
.wj-allergy-alert-head .wj-inv-bang{width:26px;height:26px;font-size:16px;margin-top:1px}
.wj-allergy-alert-head strong{display:block;color:var(--danger-text,var(--danger));font-size:16px}
.wj-allergy-alert-head small{display:flex;align-items:center;gap:4px;color:var(--muted);font-size:12px;margin-top:2px}
.wj-allergy-alert ul{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:6px}
.wj-allergy-alert li{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:baseline;background:var(--surface);border-radius:12px;padding:8px 10px}
.wj-allergy-alert li strong{font-size:15px}
.wj-allergy-alert li span{color:var(--danger-text,var(--danger));font-weight:700}
.wj-allergy-badge{display:inline-flex;align-items:center;gap:5px;color:var(--danger-text,var(--danger))!important;font-weight:800}
.wj-inv-private{display:flex;align-items:flex-start;gap:5px;margin-top:6px}
.wj-inv-private svg{flex:none;margin-top:2px}
/* TPV → Contingencia: una tarjeta por venta de papel, con sus productos debajo. */
.wj-cont-rows{display:grid;gap:10px}
.wj-cont-row{display:grid;grid-template-columns:minmax(110px,1fr) minmax(170px,1.3fr) minmax(120px,1fr) minmax(110px,1fr) auto;gap:10px;align-items:end;border:1px solid var(--border);border-radius:16px;background:var(--surface);padding:12px 14px}
.wj-cont-items{grid-column:1/-1;display:grid;gap:8px;padding-top:8px;border-top:1px dashed var(--border)}
.wj-cont-item{display:grid;grid-template-columns:minmax(180px,2.4fr) 80px minmax(110px,1fr) auto;gap:10px;align-items:end}
.wj-cont-items>.wj-btn{justify-self:start}
@media (max-width:760px){.wj-cont-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-auto-flow:dense;padding:12px}.wj-cont-row>label:nth-child(2){grid-column:1/-1}.wj-cont-row>.wj-btn.icon{grid-column:2;justify-self:end}.wj-cont-item{grid-template-columns:minmax(0,1fr) 72px}.wj-cont-item .wj-cont-prod{grid-column:1/-1}.wj-cont-item .wj-field>span:empty{display:none}}
/* Facturas → VERI*FACTU: estado del envío a la AEAT. */
.wj-inv-vfcard{display:grid;gap:10px;margin-bottom:14px}
.wj-inv-vfhead{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;flex-wrap:wrap}.wj-inv-vfhead h3{margin:0 0 2px}
.wj-inv-vfstats{display:flex;gap:8px;flex-wrap:wrap}
.wj-inv-vfstats>span{border:1px solid var(--border);border-radius:999px;padding:4px 12px;font-size:13px;color:var(--muted)}.wj-inv-vfstats strong{color:var(--text);margin-left:4px}
.wj-inv-vfstats .ok strong{color:var(--ok)}.wj-inv-vfstats .warn strong{color:var(--warn)}.wj-inv-vfstats .bad strong{color:var(--danger)}
.wj-inv-vfrej{margin:0;padding-left:18px;display:grid;gap:4px;font-size:13px}
.wj-inv-vf{display:flex;gap:6px;align-items:center;margin:0;font-size:13px;color:var(--muted)}.wj-inv-vf.ok{color:var(--ok)}.wj-inv-vf.bad{color:var(--danger)}
.wj-inv-vfline{display:flex;align-items:center;gap:8px;margin:0 0 12px;padding:8px 12px;border:1px solid var(--border);border-radius:12px;font-size:13px;color:var(--muted)}.wj-inv-vfline>span{flex:1}.wj-inv-vfline.bad{color:var(--danger)}
.wj-inv-vfcert{display:flex;align-items:center;gap:10px}.wj-inv-vfcert>div{flex:1;display:grid;gap:2px}
/* ===== transición circular (como worldjump): la pantalla nueva se abre desde el toque ===== */
::view-transition-old(root),::view-transition-new(root){animation:none;mix-blend-mode:normal}
html.wj-reveal::view-transition-old(root){z-index:1}html.wj-reveal::view-transition-new(root){z-index:2}
@media (prefers-reduced-motion: reduce){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}}

/* ---- Tornos (complemento a medida) ---- */
.wj-gate-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 16px}
.wj-gate-empty{display:grid;grid-template-columns:200px 1fr;gap:20px;align-items:center;padding:20px}
.wj-gate-empty h3{margin:0 0 6px}
.wj-gate-sim{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:16px;align-items:start}
.wj-gate-device{padding:16px;display:flex;flex-direction:column;gap:12px;transition:box-shadow .25s,border-color .25s}
.wj-gate-device-head{display:flex;justify-content:space-between;gap:10px;align-items:center}
.wj-gate-device-head small{display:block;color:var(--muted);font-size:12px}
.wj-gate-stage{display:flex;justify-content:center;padding:8px 0;border-radius:12px;background:var(--surface-sunken)}
.wj-gate-svg{width:100%;max-width:280px;height:auto}
.wj-gate-floor{fill:var(--border)}
.wj-gate-post{fill:var(--surface-raised);stroke:var(--border-strong);stroke-width:2}
.wj-gate-reader{fill:var(--text);opacity:.75}
.wj-gate-led{fill:rgb(59 130 246);transition:fill .2s}
.wj-gate-arm rect{fill:rgb(220 38 38);transition:fill .2s}
.wj-gate-arm{transform-origin:56px 82px;transition:transform .45s cubic-bezier(.2,.8,.2,1)}
[data-gate-state="open"] .wj-gate-arm{transform:rotate(-80deg)}
[data-gate-state="open"] .wj-gate-arm rect,[data-gate-state="open"] .wj-gate-led{fill:rgb(22 163 74)}
[data-gate-state="denied"] .wj-gate-led{fill:rgb(220 38 38)}
[data-gate-state="checking"] .wj-gate-led{fill:rgb(234 179 8)}
.wj-gate-device[data-gate-state="open"]{border-color:rgb(22 163 74);box-shadow:0 0 0 3px rgb(22 163 74 / .18)}
.wj-gate-device[data-gate-state="denied"]{border-color:rgb(220 38 38);box-shadow:0 0 0 3px rgb(220 38 38 / .16)}
.wj-gate-screen{border-radius:12px;padding:14px;text-align:center;background:rgb(15 23 42);color:rgb(226 232 240);min-height:72px;display:flex;flex-direction:column;justify-content:center;gap:4px}
.wj-gate-screen strong{font-size:18px}
.wj-gate-screen small{opacity:.75}
[data-gate-state="open"] .wj-gate-screen{background:rgb(22 101 52);color:rgb(240 253 244)}
[data-gate-state="denied"] .wj-gate-screen{background:rgb(127 29 29);color:rgb(254 242 242)}
.wj-gate-relay{display:flex;align-items:center;gap:10px;font-size:13px;flex-wrap:wrap}
.wj-gate-relay small{color:var(--muted);flex-basis:100%;padding-left:24px}
.wj-gate-relay-led{width:14px;height:14px;border-radius:50%;background:var(--border-strong);box-shadow:inset 0 0 0 2px rgb(0 0 0 / .12)}
.wj-gate-relay-led.on{animation:wj-gate-pulse 1s ease-out}
@keyframes wj-gate-pulse{0%,60%{background:rgb(22 163 74);box-shadow:0 0 0 6px rgb(22 163 74 / .25)}100%{background:var(--border-strong);box-shadow:none}}
.wj-gate-scanner{padding:16px;display:flex;flex-direction:column;gap:12px}
.wj-gate-scanner h3{margin:0;display:flex;align-items:center;gap:8px}
.wj-gate-scan-form{display:flex;gap:8px}
.wj-gate-scan-form .wj-input{flex:1;min-width:0}
.wj-gate-samples{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px}
.wj-gate-sample{display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;padding:8px 10px;border:1px solid var(--border);border-radius:12px;background:var(--surface);color:var(--text);cursor:pointer;font:inherit}
.wj-gate-sample:hover{border-color:var(--accent)}
.wj-gate-sample code{font-weight:700;font-size:12px}
.wj-gate-sample span{font-size:12px}
.wj-gate-sample small{font-size:11px;color:var(--muted)}
.wj-gate-flow{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.wj-gate-flow-step{display:grid;grid-template-columns:24px auto 1fr;gap:10px;align-items:center;padding:8px 10px;border-radius:12px;background:var(--surface-sunken);color:var(--muted);font-size:13px}
.wj-gate-flow-step em{font-style:normal;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wj-gate-flow-n{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:var(--border);color:var(--text);font-size:11px;font-weight:700}
.wj-gate-flow-step.run{color:var(--text)}
.wj-gate-flow-step.run .wj-gate-flow-n{background:rgb(234 179 8);color:rgb(255 255 255)}
.wj-gate-flow-step.done{color:var(--text)}
.wj-gate-flow-step.done .wj-gate-flow-n{background:rgb(22 163 74);color:rgb(255 255 255)}
.wj-gate-flow-step.fail{color:rgb(185 28 28)}
.wj-gate-flow-step.fail .wj-gate-flow-n{background:rgb(220 38 38);color:rgb(255 255 255)}
.wj-gate-flow-step.skip{opacity:.6}
.wj-gate-recent{padding:12px 16px;margin-top:16px}
.wj-gate-recent h3{margin:4px 0 8px}
.wj-gate-ev{display:grid;grid-template-columns:26px 1fr auto;gap:10px;align-items:center;padding:9px 0;border-top:1px solid var(--hairline)}
.wj-gate-ev:first-child{border-top:0}
.wj-gate-ev-dot{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;color:rgb(255 255 255)}
.wj-gate-ev.ok .wj-gate-ev-dot{background:rgb(22 163 74)}
.wj-gate-ev.ko .wj-gate-ev-dot{background:rgb(220 38 38)}
.wj-gate-ev-main{min-width:0}
.wj-gate-ev-main strong{display:block;font-size:13px}
.wj-gate-ev-main small,.wj-gate-ev-side small{display:block;color:var(--muted);font-size:12px;overflow:hidden;text-overflow:ellipsis}
.wj-gate-ev-side{text-align:right}
.wj-gate-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px}
.wj-gate-item{padding:14px;display:flex;flex-direction:column;gap:10px}
.wj-gate-item header{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.wj-gate-item header small{display:block;color:var(--muted);font-size:12px}
.wj-gate-kv{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0}
.wj-gate-kv dt{font-size:11px;color:var(--muted)}
.wj-gate-kv dd{margin:0;font-size:13px}
.wj-gate-howto{padding:16px;margin-top:16px}
.wj-gate-howto h3{margin:0 0 10px}
.wj-gate-steps{margin:0 0 10px;padding-left:20px;display:flex;flex-direction:column;gap:8px}
.wj-gate-steps b{display:block}
.wj-gate-steps span{color:var(--muted);font-size:13px}
.wj-gate-mode{display:flex;flex-direction:column;gap:10px;grid-column:1/-1}
.wj-gate-kiosk{position:fixed;inset:0;z-index:9000;display:flex;flex-direction:column;background:rgb(15 23 42);color:rgb(241 245 249);transition:background .25s}
.wj-gate-kiosk header{display:flex;align-items:center;gap:10px;justify-content:space-between;padding:12px 16px}
.wj-gate-kiosk header span{display:flex;align-items:center;gap:8px}
.wj-gate-kiosk main{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:24px;gap:12px}
.wj-gate-kiosk h1{font-size:clamp(28px,6vw,64px);margin:0}
.wj-gate-kiosk p{font-size:clamp(16px,3vw,28px);margin:0;opacity:.85}
.wj-gate-kiosk form{position:absolute;left:-9999px;top:0;opacity:0}
.wj-gate-kiosk[data-gate-state="open"]{background:rgb(21 128 61)}
.wj-gate-kiosk[data-gate-state="denied"]{background:rgb(185 28 28)}
.wj-gate-kiosk[data-gate-state="checking"]{background:rgb(30 41 59)}
@media (max-width:900px){.wj-gate-sim{grid-template-columns:1fr}.wj-gate-empty{grid-template-columns:1fr}.wj-gate-empty .wj-gate-svg{max-width:200px}}
@media (max-width:560px){.wj-gate-kv{grid-template-columns:1fr}.wj-gate-list{grid-template-columns:1fr}.wj-gate-ev{grid-template-columns:26px 1fr}.wj-gate-ev-side{grid-column:2;text-align:left}}
.wj-gate-form .wj-check-row,.wj-gate-form .wj-form-actions{grid-column:1/-1}
/* Título repetido con el de arriba (hideRepeatedTitle): no se pinta. */
.wj-title-dup{display:none!important}

/* TPV: estado de la caja (verde abierta / gris cerrada) y aforo en directo en la barra */
.wj-tpv-rail-top>*{min-width:0;max-width:100%}
.wj-tpv-till-state{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:2px 6px;margin-top:6px;padding:5px 8px;border-radius:12px;font-size:11px;font-weight:800;line-height:1.15;text-align:center;min-width:0}
.wj-tpv-till-state>i{width:8px;height:8px;border-radius:50%;flex:none;background:currentColor}
.wj-tpv-till-state small{font-size:11px;font-weight:600;opacity:.75}
.wj-tpv-till-state.is-open{background:color-mix(in srgb,var(--ok) 16%,transparent);color:var(--ok)}
.wj-tpv-till-state.is-open>i{box-shadow:0 0 0 0 color-mix(in srgb,var(--ok) 60%,transparent);animation:wj-till-pulse 2s ease-out infinite}
.wj-tpv-till-state.is-closed{background:color-mix(in srgb,var(--muted) 14%,transparent);color:var(--muted)}
@keyframes wj-till-pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--ok) 55%,transparent)}70%{box-shadow:0 0 0 7px transparent}100%{box-shadow:0 0 0 0 transparent}}
@media (prefers-reduced-motion:reduce){.wj-tpv-till-state.is-open>i{animation:none}}
.wj-tpv-aforo{display:grid;gap:3px;justify-items:center;width:100%;margin-top:6px;padding:7px 6px;border-radius:12px;border:1px solid var(--hairline,var(--border));background:var(--surface);color:var(--text);font:inherit;cursor:pointer}
.wj-tpv-aforo:hover{border-color:var(--accent)}
.wj-tpv-aforo-lbl{font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.wj-tpv-aforo strong{font-size:20px;font-weight:800;line-height:1;font-variant-numeric:tabular-nums}
.wj-tpv-aforo strong small{font-size:12px;font-weight:700;color:var(--muted)}
.wj-tpv-aforo-bar,.wj-floor-gauge-bar,.wj-floor-bar{display:block;width:100%;height:5px;border-radius:99px;background:color-mix(in srgb,var(--muted) 20%,transparent);overflow:hidden}
.wj-tpv-aforo-bar>i,.wj-floor-gauge-bar>i,.wj-floor-bar>i{display:block;height:100%;width:0;border-radius:inherit;background:var(--ok);transition:width .4s ease}
.wj-tpv-aforo.is-mid .wj-tpv-aforo-bar>i,.wj-floor-gauge.is-mid .wj-floor-gauge-bar>i{background:var(--accent)}
.wj-tpv-aforo.is-high .wj-tpv-aforo-bar>i,.wj-floor-gauge.is-high .wj-floor-gauge-bar>i{background:var(--warn)}
.wj-tpv-aforo.is-full .wj-tpv-aforo-bar>i,.wj-floor-gauge.is-full .wj-floor-gauge-bar>i{background:var(--danger)}
.wj-tpv-aforo.is-full strong,.wj-floor-gauge.is-full .wj-floor-gauge-num strong{color:var(--danger)}
@media(max-width:820px){.wj-tpv-till-state,.wj-tpv-aforo{margin-top:0}}

/* TPV → En sala → «Sala ahora» */
.wj-floor{padding:14px;display:grid;gap:12px}
.wj-floor-top{display:grid;grid-template-columns:minmax(220px,300px) 1fr;gap:12px}
.wj-floor-gauge{background:var(--surface);border:1px solid var(--border);border-radius:20px;padding:16px 18px;display:grid;gap:8px;align-content:start}
.wj-floor-gauge-lbl{font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.wj-floor-gauge-num{display:flex;align-items:baseline;gap:8px}
.wj-floor-gauge-num strong{font-size:56px;line-height:.95;font-weight:800;letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.wj-floor-gauge-num span{font-size:22px;font-weight:700;color:var(--muted)}
.wj-floor-gauge-bar{height:10px}
.wj-floor-gauge small{color:var(--muted);font-size:13px}
.wj-floor-cap{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.wj-floor .wj-linkbtn{border:0;background:none;padding:0;font:inherit;font-weight:700;color:var(--accent);cursor:pointer}
.wj-floor-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px}
.wj-floor-stat{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:14px 16px;display:grid;gap:4px;align-content:center;position:relative;overflow:hidden}
.wj-floor-stat::before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:var(--muted)}
.wj-floor-stat b{font-size:30px;line-height:1;font-weight:800;font-variant-numeric:tabular-nums}
.wj-floor-stat span{font-size:13px;color:var(--muted);font-weight:600}
.wj-floor-stat.is-playing::before,.wj-floor-row.is-playing .wj-floor-dot{background:var(--ok)}
.wj-floor-stat.is-paused::before,.wj-floor-row.is-paused .wj-floor-dot{background:var(--warn)}
.wj-floor-stat.is-booking::before,.wj-floor-row.is-booking .wj-floor-dot{background:var(--accent)}
.wj-floor-stat.is-out::before,.wj-floor-row.is-out .wj-floor-dot{background:var(--danger)}
.wj-floor-h{margin:6px 2px 0;font-size:12px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.wj-floor-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(380px,1fr));gap:8px}
.wj-floor-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:10px 12px;background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:10px 12px}
.wj-floor-row.is-out{border-color:color-mix(in srgb,var(--danger) 45%,var(--border))}
.wj-floor-dot{width:10px;height:10px;border-radius:50%;background:var(--muted)}
.wj-floor-row.is-playing .wj-floor-dot{box-shadow:0 0 0 3px color-mix(in srgb,var(--ok) 22%,transparent)}
.wj-floor-who{min-width:0;display:grid;gap:2px}
.wj-floor-who strong{font-size:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wj-floor-who strong em{font-style:normal;color:var(--muted);font-weight:700}
.wj-floor-who small{font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wj-floor-time{display:grid;grid-template-columns:auto auto;grid-template-areas:"clock price" "bar bar" "left left";gap:3px 10px;justify-items:end;min-width:150px}
.wj-floor-time .wj-visit-clock,.wj-floor-time>b{grid-area:clock;font-size:22px}
.wj-floor-time .wj-floor-price{grid-area:price;font-weight:800;font-size:15px;align-self:center}
.wj-floor-time .wj-floor-bar{grid-area:bar}
.wj-floor-time small{grid-area:left;font-size:11px;color:var(--muted)}
.wj-floor-bar.is-near>i{background:var(--warn)}
.wj-floor-bar.is-over>i{background:var(--danger)}
.wj-floor-row.is-paused .wj-visit-clock{color:var(--warn)}
.wj-floor-row.is-out .wj-visit-clock{opacity:.6}
@media(max-width:900px){.wj-floor-top{grid-template-columns:1fr}.wj-floor-list{grid-template-columns:1fr}}
@media(max-width:520px){.wj-floor-row{grid-template-columns:auto minmax(0,1fr) auto}.wj-floor-row>button{grid-column:2/-1;justify-self:end}.wj-floor-time{min-width:0}}
/* Panel → TPV y Dispositivos: punto verde (caja abierta) o gris (cerrada) */
.wj-pos-till{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;color:var(--muted)}
.wj-pos-till>i{width:9px;height:9px;border-radius:50%;background:currentColor;flex:none}
.wj-pos-till.is-open{color:var(--ok)}
.wj-pos-till.is-open>i{animation:wj-till-pulse 2s ease-out infinite}
.wj-pos-till-head{display:flex;align-items:center;gap:8px}
.wj-pos-till-head .wj-pos-till>i{width:12px;height:12px}
.wj-pos-device-btn.is-open{border-color:color-mix(in srgb,var(--ok) 55%,var(--border))}
.wj-pos-device-btn .wj-pos-till{margin-left:4px;font-size:11px}
@media (prefers-reduced-motion:reduce){.wj-pos-till.is-open>i{animation:none}}
/* Pantalla del cliente (segunda pantalla del TPV, customerDisplayApp). Oscura, grande y legible a 1–2 m. */
body.wj-cd-body{margin:0;background:rgb(8 13 24);color:rgb(241 245 249);overflow:hidden;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;-webkit-font-smoothing:antialiased;user-select:none}
body.wj-cd-body.wj-cd-nocursor,body.wj-cd-body.wj-cd-nocursor *{cursor:none}
.wj-cd-body #app{height:100vh;height:100dvh}
.wj-cd{position:relative;height:100vh;height:100dvh;display:flex;flex-direction:column;overflow:hidden;background:radial-gradient(1200px 700px at 85% -10%,rgb(13 148 136 / .28),transparent 60%),radial-gradient(900px 600px at -10% 110%,rgb(234 88 12 / .16),transparent 60%),rgb(8 13 24);font-size:clamp(14px,1.45vw,26px)}
.wj-cd-head{display:flex;align-items:flex-end;justify-content:space-between;gap:1em;padding:1.6em 2.2em .8em}
.wj-cd-head small{display:block;color:rgb(148 163 184);font-size:.8em;font-weight:600;letter-spacing:.08em;text-transform:uppercase}
.wj-cd-head h1{margin:.1em 0 0;font-size:2.1em;font-weight:800;letter-spacing:-.02em}
.wj-cd-hello{font-size:1.25em;color:rgb(203 213 225)}.wj-cd-hello b{color:rgb(255 255 255)}
.wj-cd-since{color:rgb(148 163 184);font-size:1em}
.wj-cd-split{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:1.4em;padding:.4em 2.2em 1.2em}
.wj-cd-lines,.wj-cd-kids{min-height:0;overflow:auto;display:flex;flex-direction:column;gap:.55em;padding-right:.3em;scrollbar-width:none}
.wj-cd-lines::-webkit-scrollbar,.wj-cd-kids::-webkit-scrollbar{display:none}
.wj-cd-line{display:grid;grid-template-columns:3em minmax(0,1fr) auto;align-items:center;gap:.9em;padding:.7em .9em;border-radius:.9em;background:rgb(255 255 255 / .05);border:1px solid rgb(255 255 255 / .07)}
.wj-cd-line.is-new{animation:wj-cd-in .5s cubic-bezier(.2,.9,.3,1.2);border-color:rgb(45 212 191 / .55);background:rgb(45 212 191 / .1)}
.wj-cd-line.is-due{border-style:dashed}
.wj-cd-line-img{width:3em;height:3em;border-radius:.6em;object-fit:cover;background:rgb(255 255 255 / .08)}
.wj-cd-line-qty{width:2.4em;height:2.4em;margin:0 auto;border-radius:50%;display:grid;place-items:center;background:rgb(45 212 191 / .16);color:rgb(94 234 212);font-weight:800}
.wj-cd-line-name{min-width:0}.wj-cd-line-name strong{display:block;font-size:1.1em;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wj-cd-line-name small{display:block;margin-top:.15em;color:rgb(148 163 184);font-size:.85em}
.wj-cd-line>b{font-size:1.15em;font-variant-numeric:tabular-nums;font-weight:700}
.wj-cd-band{display:inline-block;width:.8em;height:.8em;border-radius:50%;vertical-align:-.05em;margin-right:.3em;background:rgb(148 163 184);box-shadow:0 0 0 2px rgb(255 255 255 / .25)}
.wj-cd-sum{align-self:end;display:flex;flex-direction:column;gap:.5em;padding:1.3em 1.4em;border-radius:1.2em;background:rgb(255 255 255 / .06);border:1px solid rgb(255 255 255 / .09);backdrop-filter:blur(8px)}
.wj-cd-row{display:flex;justify-content:space-between;gap:1em;color:rgb(203 213 225);font-size:1em}.wj-cd-row b{font-variant-numeric:tabular-nums;color:rgb(241 245 249)}
.wj-cd-row.is-disc b{color:rgb(134 239 172)}.wj-cd-row.is-tax{font-size:.85em;color:rgb(148 163 184)}
.wj-cd-row.big{font-size:1.35em;font-weight:800}.wj-cd-row.big b{color:rgb(134 239 172)}
.wj-cd-total{margin-top:.4em;padding-top:.7em;border-top:1px solid rgb(255 255 255 / .12)}
.wj-cd-total small{display:block;color:rgb(148 163 184);font-size:.9em;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.wj-cd-total strong{display:block;font-size:3.6em;line-height:1.05;font-weight:800;letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.wj-cd-total:first-child{margin-top:0;padding-top:0;border-top:0}
.wj-cd-total p{margin:.4em 0 0;color:rgb(203 213 225);font-size:.9em}
.wj-cd-total.is-paying strong{color:rgb(251 191 36);animation:wj-cd-pulse 1.8s ease-in-out infinite}
.wj-cd-sale.is-paying .wj-cd-sum{border-color:rgb(251 191 36 / .45);box-shadow:0 0 0 1px rgb(251 191 36 / .2),0 20px 60px rgb(251 191 36 / .12)}
.wj-cd-foot{display:flex;align-items:center;gap:.8em;padding:.7em 2.2em 1em;color:rgb(100 116 139);font-size:.85em}
.wj-cd-foot-logo{height:1.6em;max-width:7em;object-fit:contain;border-radius:.3em;background:rgb(255 255 255);padding:.15em .35em}
.wj-cd-foot b{margin-left:auto;font-variant-numeric:tabular-nums;color:rgb(148 163 184)}
/* Tiempo de juego */
.wj-cd-kid{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:1.2em;padding:.9em 1.1em;border-radius:1em;background:rgb(255 255 255 / .05);border:1px solid rgb(255 255 255 / .08)}
.wj-cd-kid-who{display:flex;align-items:center;gap:.8em;min-width:0}.wj-cd-kid-who strong{display:block;font-size:1.2em}.wj-cd-kid-who small{color:rgb(148 163 184);font-size:.85em}
.wj-cd-kid-av{flex:none;width:2.4em;height:2.4em;border-radius:50%;display:grid;place-items:center;font-weight:800;background:linear-gradient(135deg,rgb(45 212 191),rgb(14 165 233));color:rgb(8 13 24)}
.wj-cd-kid-clock{font-size:2.2em;font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:-.02em;color:rgb(94 234 212)}
.wj-cd-kid.is-paused .wj-cd-kid-clock,.wj-cd-kid.is-out .wj-cd-kid-clock{color:rgb(148 163 184)}
.wj-cd-kid-price{font-size:1.2em;font-weight:700;font-variant-numeric:tabular-nums}
.wj-cd-extras{margin-top:.4em;padding:.8em 1.1em;border-radius:1em;background:rgb(255 255 255 / .03)}
.wj-cd-extras small{display:block;color:rgb(148 163 184);font-size:.8em;text-transform:uppercase;letter-spacing:.06em;margin-bottom:.3em}
.wj-cd-extras div{display:flex;justify-content:space-between;padding:.2em 0}
/* Gracias / empieza el tiempo */
.wj-cd-done .wj-cd-done-card,.wj-cd-welcome .wj-cd-done-card{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:.5em;animation:wj-cd-in .6s cubic-bezier(.2,.9,.3,1.2)}
.wj-cd-done h1,.wj-cd-welcome h1{margin:.2em 0 0;font-size:4em;font-weight:800;letter-spacing:-.03em}.wj-cd-done h1 span{color:rgb(94 234 212)}
.wj-cd-check svg{width:7em;height:7em;fill:none;stroke-width:3.5;stroke-linecap:round;stroke-linejoin:round}
.wj-cd-check circle{stroke:rgb(45 212 191);stroke-dasharray:151;stroke-dashoffset:151;animation:wj-cd-draw .7s ease-out forwards}
.wj-cd-check path{stroke:rgb(241 245 249);stroke-dasharray:40;stroke-dashoffset:40;animation:wj-cd-draw .45s .55s ease-out forwards}
.wj-cd-done-total small{display:block;color:rgb(148 163 184);text-transform:uppercase;letter-spacing:.08em;font-weight:700}
.wj-cd-done-total strong{font-size:3em;font-weight:800;font-variant-numeric:tabular-nums}
.wj-cd-done-change{display:flex;gap:.8em;align-items:baseline;font-size:1.6em;padding:.3em 1em;border-radius:999px;background:rgb(34 197 94 / .14);color:rgb(134 239 172)}.wj-cd-done-change b{font-size:1.2em}
.wj-cd-done-points{font-size:1.2em;font-weight:700;color:rgb(251 191 36)}
.wj-cd-done p,.wj-cd-welcome-sub{margin:.4em 0 0;font-size:1.4em;color:rgb(203 213 225)}
.wj-cd-ref{color:rgb(100 116 139)}
.wj-cd-go{width:2.6em;height:2.6em;border-radius:50%;display:grid;place-items:center;font-size:2.4em;padding-left:.15em;background:linear-gradient(135deg,rgb(45 212 191),rgb(14 165 233));color:rgb(8 13 24);box-shadow:0 0 0 .35em rgb(45 212 191 / .2)}
.wj-cd-welcome-time{font-size:3.2em;font-weight:800;font-variant-numeric:tabular-nums;color:rgb(94 234 212)}
/* En reposo */
.wj-cd-idle{align-items:center;justify-content:center}
.wj-cd-blob{position:absolute;border-radius:50%;filter:blur(70px);opacity:.55;pointer-events:none}
.wj-cd-blob.a{width:46vw;height:46vw;left:-12vw;top:-14vw;background:rgb(13 148 136);animation:wj-cd-float 26s ease-in-out infinite}
.wj-cd-blob.b{width:38vw;height:38vw;right:-10vw;bottom:-14vw;background:rgb(234 88 12);opacity:.35;animation:wj-cd-float 32s ease-in-out infinite reverse}
.wj-cd-blob.c{width:26vw;height:26vw;right:22vw;top:-8vw;background:rgb(99 102 241);opacity:.3;animation:wj-cd-float 38s ease-in-out infinite}
.wj-cd-idle-main{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;gap:.4em;animation:wj-cd-drift 120s ease-in-out infinite}
.wj-cd-logo{display:grid;place-items:center;min-width:6em;max-width:30vw;padding:1em 1.6em;border-radius:1.4em;background:rgb(255 255 255);box-shadow:0 30px 80px rgb(0 0 0 / .35)}
.wj-cd-logo img{display:block;max-width:100%;max-height:22vh;object-fit:contain}
.wj-cd-logo.is-text{font-size:2.2em;font-weight:800;color:rgb(15 23 42)}
.wj-cd-idle h1{margin:.6em 0 0;font-size:4.2em;font-weight:800;letter-spacing:-.035em;background:linear-gradient(90deg,rgb(255 255 255),rgb(153 246 228));-webkit-background-clip:text;background-clip:text;color:transparent}
.wj-cd-venue{margin:0;font-size:1.4em;color:rgb(203 213 225)}
.wj-cd-bigclock{margin-top:1em;display:flex;flex-direction:column;align-items:center}
.wj-cd-bigclock b{font-size:3em;font-weight:300;font-variant-numeric:tabular-nums;letter-spacing:.02em}
.wj-cd-bigclock small{color:rgb(148 163 184);font-size:1em}
.wj-cd-promo{position:absolute;right:1.8em;bottom:1.8em;width:min(15em,21vw);border-radius:1.2em;overflow:hidden;background:rgb(255 255 255 / .07);border:1px solid rgb(255 255 255 / .12);backdrop-filter:blur(10px);animation:wj-cd-in .8s ease-out}
.wj-cd-promo small{display:block;padding:.7em 1em .5em;color:rgb(148 163 184);font-size:.75em;text-transform:uppercase;letter-spacing:.08em;font-weight:700}
.wj-cd-promo img{display:block;width:100%;aspect-ratio:16/10;object-fit:cover}
.wj-cd-promo div{display:flex;justify-content:space-between;gap:.8em;padding:.8em 1em}.wj-cd-promo strong{font-size:1.05em}.wj-cd-promo b{color:rgb(94 234 212)}
.wj-cd-fs-hint{position:fixed;left:50%;bottom:1.2em;transform:translateX(-50%);padding:.7em 1.2em;border:0;border-radius:999px;background:rgb(255 255 255 / .12);color:rgb(226 232 240);font:inherit;font-size:14px;transition:opacity 1s}
.wj-cd-fs-hint.is-faded{opacity:.25}
@keyframes wj-cd-in{from{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:none}}
@keyframes wj-cd-pulse{0%,100%{opacity:1}50%{opacity:.72}}
@keyframes wj-cd-draw{to{stroke-dashoffset:0}}
@keyframes wj-cd-float{0%,100%{transform:translate(0,0)}50%{transform:translate(6vw,4vw)}}
@keyframes wj-cd-drift{0%,100%{transform:translate(0,0)}25%{transform:translate(1.2vw,-1vh)}50%{transform:translate(-1vw,1.2vh)}75%{transform:translate(-1.4vw,-.8vh)}}
@media (max-width:820px),(orientation:portrait){.wj-cd-split{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) auto}.wj-cd-sum{align-self:stretch}.wj-cd{font-size:clamp(14px,2.6vw,24px)}.wj-cd-promo{position:relative;right:auto;bottom:auto;margin-top:2em;width:min(19em,70vw)}}
@media (prefers-reduced-motion:reduce){.wj-cd *{animation:none!important}.wj-cd-check circle,.wj-cd-check path{stroke-dashoffset:0}}
/* Anuncio del login: pantalla del cliente */
.wj-lscd{display:flex;flex-direction:column;align-items:center;justify-content:center}
.wj-lscd-screen{width:min(300px,86%);padding:14px 16px;border-radius:16px;background:rgb(8 13 24);border:5px solid rgb(30 41 59);box-shadow:0 22px 50px rgb(2 6 23 / .45);color:rgb(241 245 249);font-size:12px}
.wj-lscd-screen>small{display:block;color:rgb(148 163 184);font-weight:700;letter-spacing:.06em;text-transform:uppercase;font-size:11px;margin-bottom:6px}
.wj-lscd-screen p{display:flex;justify-content:space-between;gap:8px;margin:0 0 5px;padding:6px 8px;border-radius:8px;background:rgb(255 255 255 / .06)}
.wj-lscd-screen p.kid b{color:rgb(94 234 212)}
.wj-lscd-total{margin-top:8px;padding-top:6px;border-top:1px solid rgb(255 255 255 / .12)}.wj-lscd-total small{color:rgb(148 163 184);font-size:11px;text-transform:uppercase}.wj-lscd-total strong{display:block;font-size:24px;font-weight:800}
.wj-lscd-stand{width:60px;height:22px;background:rgb(30 41 59);clip-path:polygon(30% 0,70% 0,100% 100%,0 100%)}
/* Inicio: mi fichaje y mis turnos arriba (como en worldjump-platform) */
.wj-home-staff{display:grid;gap:16px;margin-bottom:16px}
.wj-home-staff.is-two{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);align-items:stretch}
.wj-home-staff>.wj-panel-week{grid-column:auto}
.wj-home-staff>.wj-panel-week,.wj-home-fichaje>.wj-fj-clock{height:100%;box-sizing:border-box}
/* Al lado del reloj: la semana en filas (un día por línea), que cabe sin cortar los textos */
.wj-home-staff.is-two .wj-week-strip{grid-template-columns:1fr;gap:6px;flex:1;align-content:space-between}
.wj-home-staff.is-two .wj-week-day{grid-template-columns:72px minmax(0,1fr);grid-auto-flow:row;align-items:center;column-gap:10px;row-gap:4px;padding:8px 12px;min-height:0}
.wj-home-staff.is-two .wj-week-day>:not(.wj-week-day-lbl){grid-column:2}
.wj-home-staff.is-two .wj-week-day-lbl{grid-row:1/span 4;font-size:12px}
.wj-home-staff.is-two .wj-week-shift{display:flex;align-items:baseline;gap:8px;padding:5px 10px}
.wj-home-staff.is-two .wj-week-shift small{font-size:12px}
.wj-week-day.is-past{opacity:.55}
.wj-week-next{display:flex;align-items:center;gap:6px;margin:-4px 0 0;font-size:13px;color:var(--muted)}
.wj-week-next b{color:var(--text);font-variant-numeric:tabular-nums}
.wj-week-next svg{flex:none}
@media(max-width:1100px){.wj-home-staff.is-two{grid-template-columns:1fr}}

.wj-home-fichaje>.wj-fj-clock.is-compact{padding:18px;border:1px solid var(--hairline,var(--border));background:var(--surface-raised,var(--surface));box-shadow:var(--shadow-soft,var(--shadow));border-radius:var(--radius-panel,18px)}
/* Caja sin conexión: aviso fijo arriba en el centro (sin conexión, subiendo, fallos, todo subido). */
.wj-offline-pill{position:fixed;left:50%;bottom:18px;transform:translateX(-50%);z-index:1200;display:inline-flex;align-items:center;gap:8px;max-width:calc(100vw - 32px);padding:7px 14px;border-radius:999px;border:1px solid transparent;font:600 13px/1.2 inherit;cursor:pointer;box-shadow:0 6px 20px rgb(0 0 0/.18);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wj-offline-pill[hidden]{display:none}
/* En la caja va abajo a la izquierda, sobre los productos: no tapa el buscador, el ticket ni los avisos. */
body.wj-tpv-body .wj-offline-pill{left:108px;transform:none;bottom:18px}
.wj-offline-pill>i{flex:none;width:9px;height:9px;border-radius:50%;background:currentColor}
.wj-offline-pill>span{overflow:hidden;text-overflow:ellipsis}
.wj-offline-pill[data-state="down"]{background:rgb(255 237 213);color:rgb(154 52 18);border-color:rgb(253 186 116)}
.wj-offline-pill[data-state="down"]>i{animation:wj-off-blink 1.4s ease-in-out infinite}
.wj-offline-pill[data-state="sync"],.wj-offline-pill[data-state="pending"]{background:rgb(219 234 254);color:rgb(30 64 175);border-color:rgb(147 197 253)}
.wj-offline-pill[data-state="failed"]{background:rgb(254 226 226);color:rgb(153 27 27);border-color:rgb(252 165 165)}
.wj-offline-pill[data-state="ok"]{background:rgb(220 252 231);color:rgb(22 101 52);border-color:rgb(134 239 172)}
@keyframes wj-off-blink{50%{opacity:.25}}
.wj-offline-list{display:flex;flex-direction:column;border:1px solid var(--border);border-radius:12px;max-height:40vh;overflow:auto}
.wj-offline-row{display:flex;padding:8px 12px;border-top:1px solid var(--hairline,var(--border))}
.wj-offline-row:first-child{border-top:0}
.wj-offline-row>span{display:flex;flex-direction:column;gap:2px;min-width:0}
.wj-offline-row small{color:var(--muted)}
.wj-offline-row.is-failed small{color:rgb(185 28 28)}
@media (prefers-reduced-motion:reduce){.wj-offline-pill[data-state="down"]>i{animation:none}}
.wj-lsqr-row{display:flex;gap:14px;align-items:center}.wj-lsqr-row>div{flex:1;min-width:0}
.wj-lsqr-code{position:relative;flex:none;width:84px;height:84px;border-radius:8px;background:rgb(255 255 255) repeating-conic-gradient(rgb(15 23 42) 0 25%,rgb(255 255 255) 0 50%) 0 0/14px 14px;border:6px solid rgb(255 255 255)}
.wj-lsqr-code i{position:absolute;width:22px;height:22px;background:rgb(255 255 255);border:5px solid rgb(15 23 42);box-shadow:inset 0 0 0 3px rgb(255 255 255),inset 0 0 0 9px rgb(15 23 42)}.wj-lsqr-code i:nth-child(1){left:0;top:0}.wj-lsqr-code i:nth-child(2){right:0;top:0}.wj-lsqr-code i:nth-child(3){left:0;bottom:0}
.wj-lsqr-bar{display:block;height:6px;border-radius:99px;background:rgb(255 255 255 / .12);overflow:hidden;margin-top:8px}.wj-lsqr-bar i{display:block;height:100%;width:70%;background:rgb(94 234 212);border-radius:inherit}
.wj-lsqr-secs{display:block;font-weight:800;color:rgb(94 234 212);margin-top:4px;font-size:11px}
.wj-lsqr-ok{display:inline-flex;align-items:center;gap:6px;margin-top:14px;padding:7px 12px;border-radius:99px;background:rgb(220 252 231);color:rgb(21 128 61);font-size:11px;font-weight:800;box-shadow:0 10px 24px rgb(2 6 23 / .3)}
/* Cobro: botones de método con respuesta al tocar y el elegido marcado. */
.wj-tpv-tender-btn{transition:transform .12s ease,border-color .15s ease,background-color .15s ease,box-shadow .15s ease}
.wj-tpv-tender-btn:active{transform:scale(.97)}
.wj-tpv-tender-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.wj-tpv-tender-btn.is-picked{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset;color:var(--accent)}
.wj-tpv-tender-btn[data-tender="qr"]{border-color:rgb(13 148 136 / .55);background:linear-gradient(135deg,rgb(13 148 136 / .12),rgb(14 165 233 / .08))}
/* Pago con QR en la caja */
.wj-tpv-qr{display:grid;grid-template-columns:auto minmax(0,1fr);gap:22px;align-items:center;padding:4px 2px}
.wj-tpv-qr-code{width:236px;height:236px;display:grid;place-items:center;border-radius:20px;background:rgb(255 255 255);padding:8px;box-shadow:0 10px 30px rgb(2 6 23 / .18)}
.wj-tpv-qr-code svg{width:100%;height:100%;display:block}
.wj-tpv-qr[data-qr-state="opened"] .wj-tpv-qr-code svg{opacity:.18;filter:blur(2px);transition:opacity .4s,filter .4s}
.wj-tpv-qr-ok{width:96px;height:96px;border-radius:50%;display:grid;place-items:center;background:var(--ok);color:rgb(255 255 255);animation:wj-cd-in .45s cubic-bezier(.2,.9,.3,1.2)}
.wj-tpv-qr-gone{color:var(--muted)}
.wj-tpv-qr-side{display:grid;gap:10px;min-width:0}
.wj-tpv-qr-label{color:var(--muted);font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.wj-tpv-qr-amount{font-size:40px;line-height:1;font-weight:800;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.wj-tpv-qr-msg{margin:0;display:flex;align-items:center;gap:8px;color:var(--text);font-size:15px;min-height:22px}
.wj-tpv-qr[data-qr-state="paid"] .wj-tpv-qr-msg{color:var(--ok);font-weight:700}
.wj-tpv-qr-bar{position:relative;height:8px;border-radius:99px;background:var(--surface3);overflow:visible;margin-top:2px}
.wj-tpv-qr-bar>i{position:absolute;inset:0;border-radius:inherit;background:var(--accent);transform-origin:left center}
.wj-tpv-qr-bar.is-low>i{background:var(--warn)}
.wj-tpv-qr-bar::after{content:attr(data-secs);position:absolute;right:0;top:12px;font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}
.wj-tpv-qr-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px}
@media (max-width:640px){.wj-tpv-qr{grid-template-columns:1fr;justify-items:center;text-align:center}.wj-tpv-qr-actions{justify-content:center}}
/* Pantalla del cliente: pago con QR */
.wj-cd-qr-main{flex:1;min-height:0;display:grid;grid-template-columns:auto minmax(0,30em);justify-content:center;gap:3.5em;align-items:center;padding:.5em 3em 1em}
.wj-cd-qr-card{width:min(44vh,26em);aspect-ratio:1;display:grid;place-items:center;border-radius:1.4em;background:rgb(255 255 255);padding:1em;box-shadow:0 0 0 .5em rgb(45 212 191 / .18),0 30px 80px rgb(0 0 0 / .45);animation:wj-cd-in .5s cubic-bezier(.2,.9,.3,1.2)}
.wj-cd-qr-card svg{width:100%;height:100%;display:block}
.wj-cd-qr.is-opened .wj-cd-qr-card,.wj-cd-qr.is-expired .wj-cd-qr-card{background:rgb(255 255 255 / .06);box-shadow:none;border:1px solid rgb(255 255 255 / .1)}
.wj-cd-qr-phone{position:relative;width:34%;aspect-ratio:9/16;border-radius:1.2em;border:.35em solid rgb(94 234 212);display:grid;place-items:center}
.wj-cd-qr-phone i{width:40%;aspect-ratio:1;border-radius:50%;border:.3em solid rgb(94 234 212 / .25);border-top-color:rgb(94 234 212);animation:wj-cd-spin 1s linear infinite}
.wj-cd-qr-gone{font-size:5em;opacity:.5}
.wj-cd-qr-copy{display:flex;flex-direction:column;gap:.9em;min-width:0}
.wj-cd-qr-copy .wj-cd-total{margin:0;padding:0;border:0}
.wj-cd-qr-msg{margin:0;font-size:1.35em;color:rgb(226 232 240)}
.wj-cd-qr-timer{display:flex;align-items:center;gap:1em}
.wj-cd-qr-bar{flex:1;height:.55em;border-radius:99px;background:rgb(255 255 255 / .1);overflow:hidden}
.wj-cd-qr-bar i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,rgb(45 212 191),rgb(14 165 233));transform-origin:left center}
.wj-cd-qr-bar.is-low i{background:linear-gradient(90deg,rgb(251 191 36),rgb(249 115 22))}
.wj-cd-qr-timer b{min-width:3.2em;text-align:right;font-variant-numeric:tabular-nums;color:rgb(203 213 225)}
.wj-cd-qr-steps{list-style:none;margin:.4em 0 0;padding:0;display:grid;gap:.5em;color:rgb(203 213 225)}
.wj-cd-qr-steps li{display:flex;align-items:center;gap:.7em}
.wj-cd-qr-steps b{width:1.7em;height:1.7em;border-radius:50%;display:grid;place-items:center;font-size:.8em;background:rgb(45 212 191 / .16);color:rgb(94 234 212)}
.wj-cd-qr-secure{color:rgb(100 116 139)}
@keyframes wj-cd-spin{to{transform:rotate(360deg)}}
@media (max-width:820px),(orientation:portrait){.wj-cd-qr-main{grid-template-columns:1fr;justify-items:center;text-align:center;gap:1.5em}.wj-cd-qr-steps li{justify-content:center}}
/* Pago con QR en el móvil del cliente (/pagar/<token>) */
.wj-qrpay{justify-items:center;text-align:center;max-width:440px;margin:0 auto}
.wj-qrpay h1{margin:0}
.wj-qrpay-venue{margin:0;color:var(--muted)}
.wj-qrpay-amount{font-size:38px;font-weight:800;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.wj-qrpay-items{list-style:none;margin:0;padding:0;color:var(--muted);display:grid;gap:4px}
.wj-qrpay-items span{font-variant-numeric:tabular-nums}
.wj-qrpay-ok{width:76px;height:76px;animation:wj-cd-in .45s cubic-bezier(.2,.9,.3,1.2)}
.wj-qrpay-gone{width:64px;height:64px;display:grid;place-items:center;border-radius:50%;background:var(--surface2);color:var(--muted)}
.wj-qrpay .wj-public-actions{justify-content:center}

/* TPV → Cerrar caja (informe Z): resumen del sistema a la izquierda, recuento a la derecha */
.wj-zclose{display:flex;flex-direction:column;gap:16px;min-height:0}
.wj-zclose-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:20px;align-items:start}
.wj-zcol{display:grid;gap:12px;min-width:0}
.wj-zmeta{margin:0;color:var(--muted);font-size:13px}
.wj-zcard{border:1px solid var(--border);border-radius:16px;background:var(--surface);padding:14px 16px;display:grid;gap:6px}
.wj-zcard.is-soft{background:transparent}
.wj-zcard h4{margin:0 0 4px;display:flex;align-items:center;gap:8px;font-size:13px;font-weight:800;letter-spacing:.03em;text-transform:uppercase;color:var(--muted)}
.wj-zline{display:flex;justify-content:space-between;align-items:baseline;gap:12px;font-size:14px;padding:3px 0}
.wj-zline b{font-variant-numeric:tabular-nums;font-weight:700;white-space:nowrap}
.wj-zline small{display:inline-grid;place-items:center;min-width:20px;height:18px;padding:0 6px;margin-left:4px;border-radius:99px;background:var(--surface2,var(--surface3));color:var(--muted);font-size:11px;font-weight:700}
.wj-zline.is-total{margin-top:4px;padding-top:10px;border-top:1px solid var(--border);font-size:15px;font-weight:800}
.wj-zline.is-total b{font-size:22px;font-weight:800;letter-spacing:-.01em}
.wj-zops summary{cursor:pointer;color:var(--accent);font-weight:700;font-size:13px;padding:6px 0;list-style-position:inside}
.wj-zops table{width:100%;border-collapse:collapse;font-size:13px;font-variant-numeric:tabular-nums;margin-top:4px}
.wj-zops th{text-align:left;font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;padding:6px 4px;border-bottom:1px solid var(--border)}
.wj-zops td{padding:7px 4px;border-bottom:1px solid color-mix(in srgb,var(--border) 60%,transparent)}
.wj-zops th:last-child,.wj-zops td:last-child{text-align:right}
.wj-zops tr.is-refund td{color:var(--danger)}
.wj-zterm{margin-top:6px}
.wj-zhint{font-size:13px;font-weight:700;min-height:16px;color:var(--muted)}
.wj-zhint.is-ok{color:var(--ok)}.wj-zhint.is-off{color:var(--warn)}
.wj-zfoot{margin:0;display:flex;gap:6px;align-items:flex-start;color:var(--muted);font-size:13px;line-height:1.45}
.wj-zcount-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.wj-zcount-head h4{margin:0;font-size:13px;font-weight:800;letter-spacing:.03em;text-transform:uppercase;color:var(--muted)}
.wj-zdens{display:grid;grid-template-columns:1fr 1fr;gap:6px 10px}
.wj-zgroup{grid-column:1/-1;font-size:11px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);margin-top:4px}
.wj-zden{display:grid;grid-template-columns:62px minmax(0,1fr) 74px;align-items:center;gap:8px;padding:6px 8px;border:1px solid var(--border);border-radius:12px;background:var(--surface);transition:border-color .15s ease,background .15s ease}
.wj-zden.has-value{border-color:color-mix(in srgb,var(--accent) 45%,var(--border));background:color-mix(in srgb,var(--accent) 6%,var(--surface))}
.wj-zden-face{display:inline-grid;place-items:center;height:30px;border-radius:8px;font-size:13px;font-weight:800;font-variant-numeric:tabular-nums}
.wj-zden-face.is-bill{background:color-mix(in srgb,var(--ok) 14%,transparent);color:var(--text)}
.wj-zden-face.is-coin{background:color-mix(in srgb,var(--warn) 16%,transparent);color:var(--text);border-radius:99px}
.wj-zden-step{display:grid;grid-template-columns:34px minmax(0,1fr) 34px;align-items:center;gap:4px}
.wj-zden-step button{height:34px;border:0;border-radius:8px;background:var(--surface2,var(--surface3));color:var(--text);font:inherit;font-size:18px;font-weight:700;cursor:pointer;transition:transform .1s ease,background .12s ease}
.wj-zden-step button:active{transform:scale(.92)}
.wj-zden-step .wj-input{min-height:34px;height:34px;padding:0 4px;text-align:center;font-weight:800;font-variant-numeric:tabular-nums;-moz-appearance:textfield}
.wj-zden-step .wj-input::-webkit-outer-spin-button,.wj-zden-step .wj-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.wj-zden>b{text-align:right;font-size:13px;font-variant-numeric:tabular-nums;color:var(--muted)}
.wj-zden.has-value>b{color:var(--text)}
.wj-zresult{display:grid;grid-template-columns:1fr 1fr;border-radius:16px;overflow:hidden;border:1px solid var(--border);transition:background .2s ease,border-color .2s ease}
.wj-zresult>div{padding:12px 16px;display:grid;gap:2px}
.wj-zresult>div+div{border-left:1px solid var(--border)}
.wj-zresult span{font-size:11px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.wj-zresult strong{font-size:26px;font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.wj-zresult.is-ok{border-color:color-mix(in srgb,var(--ok) 50%,var(--border));background:color-mix(in srgb,var(--ok) 8%,var(--surface))}
.wj-zresult.is-ok>div+div strong,.wj-zresult.is-ok>div+div span{color:var(--ok)}
.wj-zresult.is-off{border-color:color-mix(in srgb,var(--warn) 55%,var(--border));background:color-mix(in srgb,var(--warn) 8%,var(--surface))}
.wj-zresult.is-off>div+div strong,.wj-zresult.is-off>div+div span{color:var(--warn)}
.wj-zresult.is-idle>div+div strong{color:var(--muted)}
.wj-zactions{position:sticky;bottom:0;display:flex;align-items:center;gap:10px;padding:14px 0 2px;background:linear-gradient(to bottom,transparent,var(--surface-raised,var(--surface)) 30%);border-top:1px solid var(--border)}
.wj-zactions .wj-btn.lg{min-width:200px}
.wj-zactions .wj-btn.busy{opacity:.7;pointer-events:none}
.wj-zdone{display:grid;justify-items:center;text-align:center;gap:14px;padding:28px 12px 18px;max-width:640px;margin:0 auto}
.wj-zdone-check{width:72px;height:72px;border-radius:50%;display:grid;place-items:center;background:color-mix(in srgb,var(--ok) 16%,transparent);color:var(--ok);animation:wj-zpop .35s cubic-bezier(.2,.9,.3,1.3)}
@keyframes wj-zpop{from{transform:scale(.6);opacity:0}to{transform:scale(1);opacity:1}}
.wj-zdone h3{margin:0;font-size:24px}
.wj-zdone-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;width:100%}
.wj-zdone-kpis>div{border:1px solid var(--border);border-radius:16px;padding:12px;display:grid;gap:2px;background:var(--surface)}
.wj-zdone-kpis span{font-size:11px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.wj-zdone-kpis strong{font-size:20px;font-variant-numeric:tabular-nums}
.wj-zdone-kpis small{color:var(--muted);font-size:12px}
.wj-zdone-kpis .is-ok strong{color:var(--ok)}.wj-zdone-kpis .is-off strong{color:var(--warn)}
.wj-zdone-hint{margin:6px 0 0;display:flex;gap:8px;align-items:flex-start;text-align:left;padding:12px 14px;border-radius:12px;background:color-mix(in srgb,var(--accent) 9%,transparent);font-size:14px;line-height:1.45}
.wj-zdone-print{width:100%;max-width:420px;min-height:56px;font-size:16px}
@media (prefers-reduced-motion:reduce){.wj-zdone-check{animation:none}}
@media(max-width:900px){.wj-zclose-grid{grid-template-columns:1fr}.wj-zdone-kpis{grid-template-columns:1fr}}
@media(max-width:520px){.wj-zdens{grid-template-columns:1fr}}
.wj-zprint-row{justify-content:flex-start;margin-bottom:8px}
/* ===== UI 4 · escala única y respuesta al tocar (2026-11-04) =====
   Una sola escala para todo el panel: textos 11 · 12 · 13 · 14 · 15 · 16 · 18 · 20 · 22 · 24 · 26 px
   (11 solo para etiquetas pequeñas y ejes) y esquinas 8 · 12 · 16 · 20 · 24 · 999 px.
   Las páginas públicas (.wj-public-body) no cambian. */
:root{--r-sm:8px;--r-md:12px;--r-lg:16px;--r-xl:20px;--r-pill:999px;--tap:40px}
body:not(.wj-public-body) .wj-kicker{font-size:11px;letter-spacing:.07em;line-height:1.3;text-transform:uppercase}
/* Foco visible y uniforme con teclado, en todo lo que se puede pulsar. */
body:not(.wj-public-body) :where(button,a[href],[role="button"],[role="tab"],summary,[data-route]):focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--r-sm)}
/* Respuesta al pulsar: lo que se puede tocar se hunde un poco (150 ms). */
body:not(.wj-public-body) :where(.wj-filter-chip,.wj-status-tab,.wj-seg>button,.wj-chat-filters>button,.wj-nav-item,[data-route]):active{transform:scale(.97)}
body:not(.wj-public-body) :where(.wj-filter-chip,.wj-status-tab,.wj-seg>button,.wj-chat-filters>button){transition:background-color .15s ease,color .15s ease,transform .15s ease,box-shadow .15s ease}
@media (prefers-reduced-motion:reduce){body:not(.wj-public-body) :where(.wj-filter-chip,.wj-status-tab,.wj-seg>button,.wj-chat-filters>button,.wj-nav-item,[data-route]):active{transform:none}}
/* Filas de filtros que se deslizan: el borde derecho se difumina para que se vea que hay más,
   y el último botón siempre puede quedar entero a la vista. */
body:not(.wj-public-body) :where(.wj-filter-chips,.wj-status-tabs,.wj-chat-filters){scrollbar-width:none}
@media (max-width:699px){
 body:not(.wj-public-body) :where(.wj-filter-chips,.wj-status-tabs,.wj-chat-filters){flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-right:28px;-webkit-mask-image:linear-gradient(to right,black calc(100% - 28px),transparent);mask-image:linear-gradient(to right,black calc(100% - 28px),transparent);scroll-padding-inline:0 28px}
 body:not(.wj-public-body) :where(.wj-filter-chips,.wj-status-tabs,.wj-chat-filters)::-webkit-scrollbar{display:none}
 /* Zona de toque de al menos 40 px en el móvil (antes 25–30 px). */
 body:not(.wj-public-body) :where(.wj-filter-chip,.wj-status-tab,.wj-seg>button,.wj-chat-filters>button){min-height:var(--tap);flex:0 0 auto}
 /* La barra de arriba deja sitio al nombre de la pantalla: el TPV se abre desde «Más» en el móvil. */
 body:not(.wj-public-body) .wj-tpv-launcher{display:none!important}
 body:not(.wj-public-body) #page-title{font-size:20px;letter-spacing:-.01em}
}
/* Textos que estaban por debajo de 12 px: etiquetas de campo, filtros, notas de las guías y logros. */
body:not(.wj-public-body) #content small{font-size:12px}
body:not(.wj-public-body) .wj-field>span{font-size:12px}
body:not(.wj-public-body) .wj-filter-chip{font-size:13px}
body:not(.wj-public-body) .wj-section-heading p{font-size:13px}
body:not(.wj-public-body) .wj-ach small{font-size:12px}
body:not(.wj-public-body) .wj-ach-emoji{color:var(--muted)}
body:not(.wj-public-body) .wj-ach.on .wj-ach-emoji{color:var(--accent)}
/* Fechas: solo la primera letra en mayúscula («Todas las fechas», no «Todas Las Fechas»). */
body:not(.wj-public-body) .wj-range-btn>span{text-transform:none;display:inline-block}
body:not(.wj-public-body) .wj-range-btn>span::first-letter{text-transform:uppercase}
/* Estado vacío de las listas: título, una frase de qué hacer y aire alrededor. */
body:not(.wj-public-body) .wj-empty-rich{display:grid;justify-items:center;gap:6px;text-align:center;padding:36px 20px}
body:not(.wj-public-body) .wj-empty-rich strong{font-size:15px;font-weight:700;color:var(--text)}
body:not(.wj-public-body) .wj-empty-rich span{font-size:13px;color:var(--muted);max-width:46ch;line-height:1.5}
/* Sin filas no hay nada que ordenar: el botón de orden se esconde. */
body:not(.wj-public-body) .wj-list-sortbar:has(+ .wj-empty){display:none}
body:not(.wj-public-body) .wj-calendar-period>span{text-transform:none;display:inline-block}
body:not(.wj-public-body) .wj-calendar-period>span::first-letter{text-transform:uppercase}
/* Filtros de Personal en el móvil: con su nombre (Centro, Rol, Estado), no solo el icono. */
@media (max-width:980px){body:not(.wj-public-body) .wj-sfilter-btn span{display:inline}}
/* Nombre de pantalla largo en el móvil: un poco más pequeño antes que cortado. */
@media (max-width:699px){body:not(.wj-public-body) #page-title.is-long{font-size:18px}}
/* Inicio: las dos guías de puesta en marcha, juntas; en el ordenador una al lado de la otra. */
body:not(.wj-public-body) .wj-home-setup{display:grid;gap:16px;align-items:start}
@media (min-width:1100px){body:not(.wj-public-body) .wj-home-setup.is-pair{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}
body:not(.wj-public-body) .wj-home-setup>*{margin:0}
/* Turnos en el móvil: al deslizar los días, la columna de personas se queda fija a la izquierda. */
html[data-layout="mobile"] body:not(.wj-public-body) .wj-shd-summary{overflow-x:auto}
html[data-layout="mobile"] body:not(.wj-public-body) .wj-shd-sum-corner,html[data-layout="mobile"] body:not(.wj-public-body) .wj-shd-sum-person{position:sticky;left:0;z-index:2;background:var(--surface-raised,var(--surface))}
html[data-layout="mobile"] body:not(.wj-public-body) .wj-shd-summary>.wj-empty{position:sticky;left:0;width:calc(100vw - 64px);zoom:1}
/* Lista CV vacía: un solo mensaje (el de la lista); el panel de la derecha no repite otro vacío. */
body:not(.wj-public-body) .wj-cv-split:has(.wj-cv-split-list .wj-empty) .wj-cv-split-detail>*{display:none}
/* Tarjetas de ajuste con interruptor: mismo título que las demás tarjetas (15 px) y nota de 13 px. */
body:not(.wj-public-body) .wj-card .wj-switch-row>span>strong{font-size:15px;font-weight:700;line-height:1.3}
body:not(.wj-public-body) .wj-card .wj-switch-row>span>small{font-size:13px;line-height:1.5}
/* Filtros-icono (Incidencias, Mantenimiento…): en el ordenador se ve siempre qué filtran («Todos los estados»),
   no solo un icono; en el móvil siguen plegados y se abren al tocarlos. */
@media (min-width:1100px){
 body:not(.wj-public-body) .wj-exp-filter .wj-exp-filter-btn,body:not(.wj-public-body) .wj-exp-filter:not(:hover):not(.is-open):not(.has-value):not(.is-picked) .wj-exp-filter-btn{max-width:min(240px,30vw)!important}
 body:not(.wj-public-body) .wj-exp-filter .wj-exp-filter-btn>span{opacity:1}
}
/* Ficha en el móvil: las acciones (Aceptar, Devolver, Editar…) estaban al final de la página y solo con
   iconos. Ahora van fijas abajo, encima de la barra de secciones, con su nombre; si no caben, se deslizan. */
@media (max-width:699px){
 html[data-layout="mobile"] body:not(.wj-public-body) .wj-drawer-foot:has(.wj-actionbar-compact){position:sticky;bottom:calc(var(--dock,74px) + var(--safe,0px) + 10px);z-index:20;background:var(--surface-raised,var(--surface));border-top:1px solid var(--hairline,var(--border));box-shadow:0 -8px 24px rgb(0 0 0 / .18)}
 html[data-layout="mobile"] body:not(.wj-public-body) .wj-drawer-foot .wj-actionbar-compact{flex-wrap:nowrap!important;overflow-x:auto;scrollbar-width:none;padding-right:28px;-webkit-mask-image:linear-gradient(to right,black calc(100% - 28px),transparent);mask-image:linear-gradient(to right,black calc(100% - 28px),transparent)}
 html[data-layout="mobile"] body:not(.wj-public-body) .wj-drawer-foot .wj-actionbar-compact::-webkit-scrollbar{display:none}
 body:not(.wj-public-body) .wj-actionbar-compact .wj-btn span{display:inline}
 body:not(.wj-public-body) .wj-actionbar-compact .wj-btn{min-height:40px;padding:0 14px;flex:0 0 auto}
 html[data-layout="mobile"] body:not(.wj-public-body) .wj-drawer-foot .wj-actionbar-compact .wj-btn.primary,html[data-layout="mobile"] body:not(.wj-public-body) .wj-drawer-foot .wj-actionbar-compact .wj-btn.success{margin-left:0}
}
/* Números de los avisos del menú y textos de ayuda que aún salían a 10–10,5 px o en tamaños sueltos. */
body:not(.wj-public-body) .wj-nav-count{font-size:11px}
body:not(.wj-public-body) .wj-help{font-size:12px}
body:not(.wj-public-body) #content h3{font-size:max(15px,1em)}

/* Ficha de reserva: la cabecera de la ficha ya dice número, producto y hora; el cuerpo solo añade estado y sala. */
body:not(.wj-public-body) .wj-bk-what+.wj-bk-venue::before{content:" · "}
body:not(.wj-public-body) :is(.wj-detail-sheet,.wj-detail-drawer) .wj-drawer-body .wj-bk-head>.wj-bk-num,body:not(.wj-public-body) :is(.wj-detail-sheet,.wj-detail-drawer) .wj-drawer-body .wj-bk-head .wj-bk-what{display:none}
body:not(.wj-public-body) :is(.wj-detail-sheet,.wj-detail-drawer) .wj-drawer-body .wj-bk-head .wj-bk-what+.wj-bk-venue::before{content:none}
/* Botones del formulario movidos al pie de la ficha: el pie ya es la barra; sin segunda barra dentro. */
body:not(.wj-public-body) .wj-drawer-foot>.wj-form-actions{position:static;flex:1 1 auto;margin:0;padding:0;border:0;background:none;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}
body:not(.wj-public-body) .wj-empty-cta{display:flex;justify-content:center;margin-top:10px}
/* El campo de fecha propio se ve igual que los demás campos del formulario. */
body:not(.wj-public-body) .wj-field .wj-date-btn{min-height:44px;border-color:transparent;background:var(--surface2);border-radius:12px}
/* Campos obligatorios: asterisco discreto junto al nombre. */
body:not(.wj-public-body) label.wj-field:has(> :is(input,select,textarea)[required])>span:first-child:not(.has-star)::after,body:not(.wj-public-body) label.wj-field:has(.wj-date > input[required])>span:first-child:not(.has-star)::after{content:" *";color:var(--danger,rgb(239 68 68));font-weight:700}
body:not(.wj-public-body) .wj-point{animation:wj-point 1.6s ease-out 1}
@keyframes wj-point{0%,60%{box-shadow:0 0 0 0 rgb(59 130 246 / .55)}30%{box-shadow:0 0 0 10px rgb(59 130 246 / .25)}100%{box-shadow:0 0 0 14px rgb(59 130 246 / 0)}}
@media (prefers-reduced-motion:reduce){body:not(.wj-public-body) .wj-point{animation:none;outline:3px solid rgb(59 130 246)}}
/* Pasos de mantenimiento en móvil: solo se lee el paso actual; los demás quedan como números. */
@media (max-width:520px){body:not(.wj-public-body) .wj-mnt-flow li:not(.active)>span:not(.wj-mnt-flow-n){display:none}body:not(.wj-public-body) .wj-mnt-flow li.active{white-space:nowrap;z-index:1}}
/* «Persona nueva» va dentro de un recuadro del mismo color que los campos: los campos llevan borde y los botones no forman otra barra. */
body:not(.wj-public-body) .wj-bk-new-person :is(.wj-input,.wj-select,.wj-textarea){background:var(--surface);border-color:var(--hairline,var(--border))}
body:not(.wj-public-body) .wj-bk-new-person .wj-form-actions{position:static;background:none;border:0;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;padding:4px 0 0;margin:0}
/* Escritorio: todos los campos a 14px (había 12 y 13 mezclados). En móvil siguen a 16px para que iOS no amplíe. */
@media (min-width:700px){body:not(.wj-public-body) :is(#overlay-root,#drawer-root,#content) :is(.wj-input,.wj-select,.wj-textarea){font-size:14px}}
/* ===== TPV · UI 4 (2026-11-04) =====
   Todo cabe en la pantalla de la tableta (1024×768): la fila no crece con el contenido del carril,
   el carril desplaza sus categorías y el botón de cobrar queda siempre a la vista. */
@media (min-width:821px){
 body.wj-tpv-body .wj-tpv{grid-template-rows:minmax(0,1fr);height:100dvh;overflow:hidden}
 body.wj-tpv-body .wj-tpv>*{min-height:0}
 body.wj-tpv-body .wj-tpv-rail-top{flex:0 0 auto}
 body.wj-tpv-body .wj-tpv-rail-cats{flex:1 1 auto;min-height:0;overflow-y:auto;scrollbar-width:none}
 body.wj-tpv-body .wj-tpv-rail-cats::-webkit-scrollbar{display:none}
}
@media (min-width:821px) and (max-height:820px){
 body.wj-tpv-body .wj-tpv-rail-top{gap:3px;padding:8px 6px}
 body.wj-tpv-body .wj-tpv-rail-top #tpv-clock{font-size:18px}
}
/* Carril: nada cortado con «…». Centro en dos líneas, persona bajo su inicial, caja sin la línea de plantilla (está en el aviso al pasar). */
body.wj-tpv-body .wj-tpv-rail-top .wj-tpv-venue{white-space:normal;line-height:1.2;text-align:center;border-radius:12px}
body.wj-tpv-body .wj-tpv-rail-top .wj-tpv-venue>span{white-space:normal;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
body.wj-tpv-body .wj-tpv-operator{flex-direction:column;gap:3px}
body.wj-tpv-body .wj-tpv-operator strong{max-width:100%;white-space:normal;overflow-wrap:anywhere;line-height:1.2}
body.wj-tpv-body .wj-tpv-devchip{justify-items:center;text-align:center}
body.wj-tpv-body .wj-tpv-devchip small{display:none}
/* Pestañas de la zona central: como el resto del panel, sin mayúsculas forzadas. */
body.wj-tpv-body .wj-tpv-tab{text-transform:none;letter-spacing:0;font-size:13px}
body.wj-tpv-body .wj-tpv-discount-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;text-transform:none;letter-spacing:0;font-size:14px}
/* Productos sin foto: tarjeta compacta (franja de color con el icono) en vez de un cuadrado vacío; caben el doble en pantalla. */
body.wj-tpv-body .wj-tpv-card.is-noimg .wj-tpv-card-img{aspect-ratio:auto;height:40px;justify-content:flex-start;padding:0 12px}
body.wj-tpv-body .wj-tpv-card.is-noimg .wj-tpv-card-img svg{width:20px;height:20px}
body.wj-tpv-body .wj-tpv-card.is-noimg .wj-tpv-card-body{min-height:70px;align-content:space-between}
body.wj-tpv-body .wj-tpv-card-foot i{font-style:normal;font-size:12px;color:var(--muted)}
/* Línea del ticket en dos filas: el nombre entero (hasta dos líneas) con su total a la derecha; debajo, precio unitario y cantidad. */
body.wj-tpv-body .wj-tpv-ticket-lines .wj-tpv-line:not(.wj-tpv-line-due){grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"name total" "actions actions";row-gap:6px}
body.wj-tpv-body .wj-tpv-ticket-lines .wj-tpv-line:not(.wj-tpv-line-due) .wj-tpv-line-name{grid-area:name;align-self:start;gap:2px}
body.wj-tpv-body .wj-tpv-ticket-lines .wj-tpv-line:not(.wj-tpv-line-due) .wj-tpv-line-total{grid-area:total;justify-self:end}
body.wj-tpv-body .wj-tpv-ticket-lines .wj-tpv-line:not(.wj-tpv-line-due) .wj-tpv-line-actions{grid-area:actions;justify-self:end}
body.wj-tpv-body .wj-tpv-line-name strong{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.3}
/* Cobrar sin nada en el ticket: se ve apagado de verdad, no verde a medias. */
body.wj-tpv-body .wj-tpv-pay-btn:disabled{background:var(--surface2);color:var(--muted);opacity:1;cursor:not-allowed}
/* Abrir caja: importe grande con su €, e importes rápidos en lugar de las flechitas del número. */
.wj-tpv-cash-input{position:relative;display:block}
.wj-tpv-cash-input .wj-input{font-size:24px;font-weight:700;font-variant-numeric:tabular-nums;padding-right:40px;height:56px;text-align:right}
.wj-tpv-cash-input b{position:absolute;right:14px;top:50%;transform:translateY(-50%);font-size:18px;color:var(--muted);pointer-events:none}
.wj-tpv-quick{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}
.wj-tpv-quick .wj-btn{min-height:44px;min-width:76px;border-radius:999px;font-variant-numeric:tabular-nums}
.wj-modal[tabindex="-1"]:focus{outline:none}
/* Tableta: el carril gana unos píxeles para que «Complementos», «Sin dispositivo» o el nombre del centro se lean enteros. */
@media (min-width:821px) and (max-width:1100px){body.wj-tpv-body .wj-tpv{grid-template-columns:100px minmax(0,1fr) 300px}}
body.wj-tpv-body .wj-tpv-rail{hyphens:auto}
body.wj-tpv-body .wj-tpv-cat{padding:10px 2px;height:auto;overflow:visible}
body.wj-tpv-body .wj-tpv-cat>span:last-child{white-space:normal;overflow-wrap:normal;word-break:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;max-width:100%}
body.wj-tpv-body .wj-tpv-cat>svg{color:var(--muted)}
/* Cabecera de venta: la búsqueda se queda el sitio; la fecha ocupa lo que necesita. */
body.wj-tpv-body .wj-tpv-head .wj-date{flex:0 1 210px;max-width:210px;min-width:0}
body.wj-tpv-body .wj-tpv-head .wj-tpv-search{flex:1 1 auto;min-width:0}
/* Cobrar: el importe nunca parte en dos líneas. */
body.wj-tpv-body .wj-tpv-pay-btn{white-space:nowrap;min-width:0}
body.wj-tpv-body .wj-tpv-pay-btn b{font-variant-numeric:tabular-nums}
@media (max-width:1100px){body.wj-tpv-body .wj-tpv-pay-btn{font-size:16px;padding:14px 18px}}
body.wj-tpv-body .wj-tpv-ticket-lines .wj-tpv-line{padding:9px 14px}
body.wj-tpv-body .wj-tpv-book-row .wj-badge.ok{display:inline-flex;align-items:center;gap:4px}

/* ---- «Añadir funciones» (botón + del menú) ---- */
body:not(.wj-public-body) .wj-rail .wj-rail-add .wj-rail-ico{display:grid;place-items:center;width:34px;height:34px;border-radius:12px;border:1.5px dashed color-mix(in srgb,var(--muted) 55%,transparent);color:var(--muted);transition:border-color .15s,color .15s,background .15s}
body:not(.wj-public-body) .wj-rail .wj-rail-add:hover .wj-rail-ico,body:not(.wj-public-body) .wj-rail .wj-rail-add:focus-visible .wj-rail-ico{border-color:var(--accent);color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,transparent)}
body:not(.wj-public-body) .wj-rail .wj-rail-add{margin-top:6px!important}
.wj-addons-drawer-btn{display:flex;align-items:center;gap:12px;width:100%;margin:6px 0 10px;padding:12px 14px;border:1.5px dashed var(--line);border-radius:16px;background:transparent;color:var(--text);font:inherit;font-weight:600;font-size:15px;cursor:pointer}
.wj-addons{position:fixed;inset:0;z-index:60;overflow-y:auto;overscroll-behavior:contain;background:var(--bg);color:var(--text);opacity:0;transform:translateY(12px);transition:opacity .2s ease,transform .2s ease}
.wj-addons.is-in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.wj-addons{transition:none;transform:none}}
html.wj-addons-open{overflow:hidden}
.wj-addons-top{position:sticky;top:0;z-index:2;display:flex;align-items:center;gap:16px;padding:16px 24px;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(12px);border-bottom:1px solid var(--line,rgba(127,127,127,.18))}
.wj-addons-back{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:0 14px;border:0;border-radius:999px;background:var(--surface-2,rgba(127,127,127,.12));color:var(--text);font:inherit;font-weight:600;font-size:14px;cursor:pointer}
.wj-addons-title h1{margin:0;font-size:20px;line-height:1.2}
.wj-addons-title p{margin:2px 0 0;color:var(--muted);font-size:14px}
.wj-addons-main{max-width:1080px;margin:0 auto;padding:28px 24px 48px}
.wj-addons-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:22px 14px}
.wj-addon{display:grid;justify-items:center;gap:8px;padding:14px 8px;border:0;border-radius:20px;background:transparent;color:var(--text);font:inherit;text-align:center;cursor:pointer;transition:background .15s,transform .12s}
.wj-addon:hover{background:var(--surface-2,rgba(127,127,127,.08))}
.wj-addon:active{transform:scale(.96)}
.wj-addon:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.wj-addon b{font-size:14px;line-height:1.3;font-weight:600}
.wj-addon small{font-size:12px;color:var(--muted)}
.wj-addon-ico{display:grid;place-items:center;width:72px;height:72px;border-radius:22px;color:rgb(255,255,255);background:linear-gradient(145deg,var(--a1),var(--a2));box-shadow:0 8px 20px -8px var(--a1),inset 0 1px 0 rgba(255,255,255,.25)}
.wj-addon-ico svg{filter:drop-shadow(0 1px 1px rgba(0,0,0,.18))}
.wj-addon-skel{display:block;height:128px;border-radius:20px;background:var(--surface-2,rgba(127,127,127,.1));animation:wj-addon-pulse 1.2s ease-in-out infinite}
@keyframes wj-addon-pulse{50%{opacity:.5}}
.wj-addons-empty{grid-column:1/-1;display:grid;justify-items:center;gap:8px;padding:48px 0;color:var(--muted)}
.wj-addon-detail{display:grid;gap:16px;padding-bottom:8px}
.wj-addon-detail-head{display:flex;align-items:center;gap:16px}
.wj-addon-detail-head .wj-addon-ico{width:64px;height:64px;border-radius:20px}
.wj-addon-price{margin:0;display:flex;align-items:baseline;gap:6px;flex-wrap:wrap}
.wj-addon-price b{font-size:24px}
.wj-addon-price small{color:var(--muted);font-size:13px}
.wj-addon-desc{margin:0;font-size:15px;line-height:1.55;color:var(--text)}
.wj-addon-demo{position:relative;height:340px;border-radius:16px;overflow:hidden;background:var(--surface-2,rgba(127,127,127,.08));border:1px solid var(--line,rgba(127,127,127,.18))}
.wj-addon-foot{position:sticky;bottom:0;display:grid;gap:8px;padding:12px 0 4px;background:linear-gradient(transparent,var(--surface,var(--bg)) 30%)}
.wj-addon-buy{width:100%;min-height:48px;justify-content:center;font-size:16px}
.wj-addon-note{margin:0;font-size:13px;line-height:1.45;color:var(--muted);text-align:center}
@media (min-width:900px){.wj-addon-sheet .ux-sheet{max-width:720px;margin-inline:auto}}
@media (max-width:640px){.wj-addons-top{padding:12px 16px}.wj-addons-main{padding:20px 16px 40px}.wj-addons-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px 6px}.wj-addon{padding:8px 2px}.wj-addon-ico{width:60px;height:60px;border-radius:18px}.wj-addon b{font-size:12px}.wj-addon-demo{height:260px}}
/* ===== Modo «Editar» (2026-11-04) =====
   Lo que cambia o borra datos solo se ve tras pulsar «Editar». */
/* Casillas para elegir varias filas */
.wj-bulk-row{position:relative}
.wj-bulk-check{width:20px;height:20px;margin:0 12px 0 0;flex:none;accent-color:var(--accent);cursor:pointer;align-self:center}
#content.is-selecting .wj-bulk-row{cursor:pointer}
#content.is-selecting .wj-bulk-row.is-picked{background:color-mix(in srgb,var(--accent) 10%,transparent)}
#content.is-selecting .wj-row.wj-bulk-row{display:flex;align-items:center}
#content.is-selecting .wj-row.wj-bulk-row>div:nth-last-child(2){flex:1;min-width:0}
#content.is-selecting .wj-user-list-row.wj-bulk-row{grid-template-columns:32px minmax(0,1fr) auto!important}
#content:not(.is-selecting) .wj-user-list-row{grid-template-columns:minmax(0,1fr) auto!important}
#content.is-selecting .wj-user-list-row{grid-template-columns:32px minmax(0,1fr) auto!important}
/* Barra inferior con lo elegido */
.wj-bulk-bar{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);z-index:60;display:flex;align-items:center;gap:8px;padding:8px 8px 8px 16px;border-radius:999px;background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-lg);max-width:calc(100vw - 32px);animation:wj-bulk-in .18s ease-out}
.wj-bulk-count{font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;margin-right:4px}
@keyframes wj-bulk-in{from{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%,0)}}
html[data-layout="mobile"] .wj-bulk-bar{bottom:calc(var(--dock,64px) + 24px + env(safe-area-inset-bottom,0px));left:12px;right:12px;transform:none;flex-wrap:wrap;border-radius:20px;justify-content:flex-end}
html[data-layout="mobile"] .wj-bulk-count{flex:1 1 100%;margin:0 0 2px}
@media (prefers-reduced-motion:reduce){.wj-bulk-bar{animation:none}}
html[data-layout="mobile"] .wj-bulk-bar{animation:none}
/* El botón «Editar» siempre con su palabra: un lápiz o un ✓ solos no dicen qué hacen. */
/* Casillas que forman columna (Personal): se ocultan sin mover la tabla. */

/* UX 5 (2026-11-04): acciones en un sitio fijo, sin modos. Solo panel. */
body:not(.wj-public-body) .wj-actionbar-compact{justify-content:flex-end;flex-wrap:nowrap;gap:8px;padding:0;width:auto}
body:not(.wj-public-body) .wj-drawer-foot .wj-actionbar-compact{width:100%}
body:not(.wj-public-body) .wj-detail-sheet>.wj-drawer-head{display:flex;align-items:center;gap:16px;overflow:visible}
body:not(.wj-public-body) .wj-detail-sheet>.wj-drawer-head>div:not(.wj-actionbar){flex:1 1 auto;min-width:0}
body:not(.wj-public-body) .wj-detail-sheet>.wj-drawer-head>.wj-actionbar{flex:0 0 auto;margin-left:auto}
body:not(.wj-public-body) .wj-drawer-head.is-swapped>.wj-actionbar{display:none}
.wj-more{position:relative;display:inline-flex;flex:none}
.wj-more-btn{width:36px;min-width:36px;padding:0;justify-content:center}
.wj-more-menu{position:absolute;right:0;top:calc(100% + 6px);z-index:80;display:grid;gap:2px;min-width:220px;max-width:min(320px,calc(100vw - 24px));padding:6px;border:1px solid var(--border);border-radius:12px;background:var(--surface-raised,var(--surface));box-shadow:0 12px 32px rgb(0 0 0 / .28)}
.wj-more-menu[hidden]{display:none}
.wj-more.up .wj-more-menu{top:auto;bottom:calc(100% + 6px)}
.wj-more-item{display:flex;align-items:center;gap:10px;width:100%;min-height:40px;padding:8px 10px;border:0;border-radius:8px;background:none;color:var(--text);font:inherit;font-size:14px;text-align:left;cursor:pointer}
.wj-more-item:hover,.wj-more-item:focus-visible{background:var(--surface2)}
.wj-more-item.danger{color:var(--danger,rgb(220 38 38))}
.wj-page-head-actions{margin-left:auto;align-items:center;justify-content:flex-end}
.wj-page-head-lite{min-height:0;margin-bottom:8px;justify-content:flex-end}
.wj-page-head-actions>.wj-btn.primary:last-child{order:9}
.wj-toolbar>.wj-select-toggle{margin-left:auto;flex:0 0 auto}
.wj-select-bar{display:flex;justify-content:flex-end;margin:0 0 12px}
.wj-select-toggle{display:inline-flex;align-items:center;gap:6px}
.wj-select-reveal{visibility:hidden;pointer-events:none}
#content.is-selecting .wj-select-reveal{visibility:visible;pointer-events:auto}
html[data-layout="mobile"] body:not(.wj-public-body) .wj-page-head{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
html[data-layout="mobile"] body:not(.wj-public-body) .wj-page-head>div:first-child:not(.wj-page-head-actions){flex:1 1 100%}
html[data-layout="mobile"] body:not(.wj-public-body) .wj-page-head .wj-btn{margin-top:0}
body:not(.wj-public-body) .wj-page-head>.wj-btn.primary{margin-left:auto}
html[data-layout="mobile"] body:not(.wj-public-body) .wj-page-head-actions .wj-btn.primary{min-height:44px;width:auto}
html[data-layout="mobile"] body:not(.wj-public-body) .wj-drawer-foot .wj-actionbar-compact{overflow:visible;-webkit-mask-image:none;mask-image:none;padding-right:0;flex-wrap:nowrap!important}
html[data-layout="mobile"] body:not(.wj-public-body) .wj-actionbar-compact .wj-btn.primary{flex:1 1 auto;justify-content:center}
html[data-layout="mobile"] body:not(.wj-public-body) .wj-actionbar-compact .wj-more-btn{width:44px;min-width:44px;min-height:44px;padding:0}
html[data-layout="mobile"] body:not(.wj-public-body) .wj-actionbar-compact .wj-btn{min-height:44px}
body:not(.wj-public-body) .wj-detail-drawer .wj-form-actions{justify-content:flex-end}
.wj-me-widgets-body>#save-widgets{justify-self:end;width:auto}
/* ===== Móvil: ficha como hoja inferior (2026-11-04) ===== */
html[data-layout="mobile"] .wj-detail-drawer.is-sheet{top:auto!important;left:0;right:0;bottom:0;width:100%!important;max-height:94dvh;border-radius:24px 24px 0 0;transform:translateY(100%);box-shadow:0 -16px 48px rgb(0 0 0 / .28);overflow:hidden}
html[data-layout="mobile"] .wj-drawer-backdrop.open .wj-detail-drawer.is-sheet{transform:translateY(0)}
html[data-layout="mobile"] .wj-detail-drawer.is-sheet .wj-drawer-resize{display:none}
html[data-layout="mobile"] .wj-detail-drawer.is-sheet .wj-drawer-head{position:relative;padding:26px 16px 12px;touch-action:none;flex:none}
html[data-layout="mobile"] .wj-detail-drawer.is-sheet .wj-drawer-head .ux-grip{position:absolute;left:50%;top:0;width:72px;transform:translateX(-50%);color:var(--text)}
html[data-layout="mobile"] .wj-detail-drawer.is-sheet .wj-drawer-body{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
html[data-layout="mobile"] body:not(.wj-public-body) .wj-detail-drawer.is-sheet .wj-drawer-foot,html[data-layout="mobile"] body:not(.wj-public-body) .wj-detail-drawer.is-sheet .wj-drawer-foot:has(.wj-actionbar-compact){position:static;flex:none;bottom:auto;box-shadow:none;padding:10px 12px calc(10px + env(safe-area-inset-bottom,0px))}
/* Móvil: la barra de arriba tapa también lo que queda por encima (iOS deja ver la página bajo la hora). */
html[data-layout="mobile"] body:not(.wj-public-body) .wj-topbar{background:var(--bg)!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important}
html[data-layout="mobile"] .wj-topbar::before{content:"";position:absolute;left:0;right:0;bottom:100%;height:120px;background:var(--bg);pointer-events:none}
