/* Etapa 7 · Centro de operaciones: búsqueda, filtros, fichas y calendario. Diseño propio ELEJEM, táctil primero. */
.ok7-search{position:sticky;top:0;z-index:5;display:grid;gap:10px;margin:14px 0 16px;padding:12px;border:1px solid var(--e-border-strong,#ffffff2b);border-radius:var(--e-r,12px);background:color-mix(in srgb,var(--e-surface-2,#1b1f27) 92%,transparent);backdrop-filter:blur(8px)}
.ok7-field{position:relative;display:flex;align-items:center}
.ok7-field input{width:100%;min-height:48px;padding:0 48px 0 44px;font-size:16px;border-radius:999px;border:1px solid var(--e-border-strong,#ffffff2b);background:var(--e-bg,#0c0e12);color:var(--e-text,#f5f3ee)}
.ok7-field input:focus{outline:2px solid var(--e-gold,#e8b84a);outline-offset:1px;border-color:transparent}
.ok7-field input::-webkit-search-cancel-button{display:none}
.ok7-ico{position:absolute;left:16px;font-size:20px;color:var(--e-faint,#8a8f99);pointer-events:none}
.ok7-clear{position:absolute;right:4px;width:40px;height:40px;border:0;border-radius:50%;background:transparent;color:var(--e-muted,#b0b4bc);font-size:24px;line-height:1;cursor:pointer}
.ok7-chips{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding-bottom:2px}
.ok7-chips::-webkit-scrollbar{display:none}
.ok7-chip{flex:0 0 auto;min-height:40px;padding:0 16px;border-radius:999px;border:1px solid var(--e-border-strong,#ffffff2b);background:transparent;color:var(--e-muted,#b0b4bc);font:600 14px/1 inherit;letter-spacing:0;text-transform:none;cursor:pointer}
.ok7-chip[aria-pressed="true"]{background:var(--e-gold,#e8b84a);border-color:var(--e-gold,#e8b84a);color:var(--e-gold-ink,#17120a)}
.ok7-n{opacity:.7;font-weight:500}
.ok7-count{margin:0;font-size:13px;color:var(--e-faint,#8a8f99);min-height:1em}
mark{background:var(--e-gold-soft,#e8b84a33);color:var(--e-gold-2,#f3cf7a);border-radius:3px;padding:0 1px}
.eu7-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}
.eu7-head h3{margin:0}.eu7-sub{margin:4px 0 0;color:var(--e-muted,#b0b4bc);font-size:14px}
.eu7-new{margin:14px 0;padding:16px;border:1px dashed var(--e-gold,#e8b84a);border-radius:var(--e-r,12px);background:var(--e-gold-soft,#e8b84a1f)}
.eu7-list{display:grid;gap:8px}
.eu7-user{border:1px solid var(--e-border,#ffffff17);border-radius:var(--e-r,12px);background:var(--e-surface,#15181e);overflow:hidden}
.eu7-user[open]{border-color:var(--e-gold,#e8b84a)}
.eu7-user.is-off{opacity:.72}
.eu7-user>summary{list-style:none;display:grid;grid-template-columns:44px 1fr auto 20px;align-items:center;gap:12px;min-height:64px;padding:10px 14px;cursor:pointer}
.eu7-user>summary::-webkit-details-marker{display:none}
.eu7-av{display:inline-grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--e-surface-3,#232833);color:var(--e-gold-2,#f3cf7a);font-weight:700;font-size:15px;flex:0 0 auto}
.eu7-who{display:grid;min-width:0}.eu7-who strong,.eu7-who span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eu7-who span{color:var(--e-faint,#8a8f99);font-size:14px}
.eu7-tags{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.eu7-role,.eu7-state{display:inline-block;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:600;background:var(--e-surface-3,#232833);color:var(--e-muted,#b0b4bc)}
.eu7-role.r-admin{background:#e8b84a26;color:var(--e-gold-2,#f3cf7a)}.eu7-role.r-operator{background:#8fb3d926;color:var(--e-info,#8fb3d9)}.eu7-role.r-technician{background:#3cc48822;color:var(--e-ok,#3cc488)}.eu7-role.r-open{background:#ef6a6222;color:#f5a39d}
.eu7-user:not(.is-off) .eu7-state{color:var(--e-ok,#3cc488)}.eu7-user.is-off .eu7-state{color:var(--e-danger,#ef6a62)}
.eu7-chev{width:10px;height:10px;border-right:2px solid var(--e-faint,#8a8f99);border-bottom:2px solid var(--e-faint,#8a8f99);transform:rotate(45deg);transition:transform .15s}
.eu7-user[open] .eu7-chev{transform:rotate(225deg)}
.eu7-body{padding:4px 16px 16px;border-top:1px solid var(--e-border,#ffffff17)}
.eu7-switch{display:flex!important;align-items:center;gap:10px;min-height:48px}.eu7-switch input{width:22px;height:22px}
.eu7-pass{margin-top:12px}.eu7-pass>summary{min-height:44px;display:flex;align-items:center;cursor:pointer;color:var(--e-info,#8fb3d9)}
.eu7-empty{padding:28px 16px;text-align:center;color:var(--e-muted,#b0b4bc);border:1px dashed var(--e-border-strong,#ffffff2b);border-radius:var(--e-r,12px)}
.ec7-client{display:grid!important;grid-template-columns:44px 1fr auto;gap:12px;align-items:center}
.ec7-main{min-width:0}.ec7-main p{margin:4px 0;overflow-wrap:anywhere}.ec7-main a{color:var(--e-info,#8fb3d9)}
@media(max-width:600px){.eu7-user>summary{grid-template-columns:40px 1fr 16px}.eu7-tags{grid-column:2;justify-content:flex-start}.eu7-chev{grid-row:1;grid-column:3}.eu7-av{width:40px;height:40px}.ec7-client{grid-template-columns:40px 1fr}.ec7-client>button{grid-column:1/-1;width:100%}.eu7-head>button{width:100%}}
/* 7B · Agenda calendario */
.ag7-bar{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;margin:16px 0 10px;position:sticky;top:0;z-index:6;padding:10px;border-radius:var(--e-r,12px);background:color-mix(in srgb,var(--e-surface-2,#1b1f27) 94%,transparent);border:1px solid var(--e-border-strong,#ffffff2b)}
.ag7-views{display:inline-flex;padding:4px;border-radius:999px;background:var(--e-bg,#0c0e12);border:1px solid var(--e-border,#ffffff17)}
.ag7-views button{min-height:40px;min-width:64px;padding:0 14px;border:0;border-radius:999px;background:transparent;color:var(--e-muted,#b0b4bc);font:600 14px inherit;cursor:pointer}
.ag7-views button[aria-pressed="true"]{background:var(--e-gold,#e8b84a);color:var(--e-gold-ink,#17120a)}
.ag7-nav{display:flex;align-items:center;gap:6px;flex:1 1 320px;justify-content:flex-end}
.ag7-icon{width:44px;height:44px;flex:0 0 44px;border-radius:50%;border:1px solid var(--e-border-strong,#ffffff2b);background:transparent;color:var(--e-text,#f5f3ee);font-size:22px;line-height:1;cursor:pointer}
.ag7-datewrap{position:relative;flex:1 1 auto;min-width:0;max-width:300px}
.ag7-date{width:100%;min-height:44px;display:flex;align-items:center;justify-content:center;gap:8px;padding:0 14px;border-radius:999px;border:1px solid var(--e-border-strong,#ffffff2b);background:var(--e-bg,#0c0e12);color:var(--e-text,#f5f3ee);font:700 15px inherit;cursor:pointer;text-transform:capitalize;white-space:nowrap;overflow:hidden}
.ag7-date span:first-child{overflow:hidden;text-overflow:ellipsis}
.ag7-today{min-height:44px}
.ag7-pop{position:absolute;top:calc(100% + 8px);left:50%;transform:translateX(-50%);z-index:30;width:min(320px,92vw);padding:14px;border-radius:var(--e-r-lg,18px);background:var(--e-surface-2,#1b1f27);border:1px solid var(--e-border-strong,#ffffff2b);box-shadow:0 18px 40px #000a}
.ag7-mini-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;text-transform:capitalize}
.ag7-mini-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;text-align:center}
.ag7-dn{font-size:12px;color:var(--e-faint,#8a8f99);padding:4px 0}
.ag7-mini-grid button{aspect-ratio:1;min-height:38px;border:0;border-radius:50%;background:transparent;color:var(--e-text,#f5f3ee);font:500 14px inherit;cursor:pointer}
.ag7-mini-grid button.out{color:var(--e-faint,#8a8f99);opacity:.55}.ag7-mini-grid button.is-today{box-shadow:inset 0 0 0 1px var(--e-gold,#e8b84a)}.ag7-mini-grid button.is-sel{background:var(--e-gold,#e8b84a);color:var(--e-gold-ink,#17120a);font-weight:700}
.ag7-native{display:grid;gap:4px;margin-top:10px;font-size:13px;color:var(--e-muted,#b0b4bc)}.ag7-native input{min-height:44px;font-size:16px}
.ag7-adv{margin:0 0 10px}.ag7-adv>summary{min-height:44px;display:inline-flex;align-items:center;cursor:pointer;color:var(--e-info,#8fb3d9);font-size:14px}
.ag7-cal-mode [data-agenda-list],.ag7-cal-mode [data-agenda-prev],.ag7-cal-mode [data-agenda-next],.ag7-cal-mode [data-agenda-count]{display:none!important}
.ag7-legend{display:flex;gap:16px;flex-wrap:wrap;font-size:13px;color:var(--e-muted,#b0b4bc);margin:6px 0 12px}.ag7-legend i,.ag7-dots i{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px;vertical-align:middle}
.t-visita_presupuesto{--c:#8fb3d9}.t-ejecucion{--c:#e8b84a}
.ag7-legend i,.ag7-dots i{background:var(--c,#888)}
.ag7-ev{display:grid;gap:2px;width:100%;text-align:left;padding:8px 10px;margin:0 0 6px;border:0;border-left:4px solid var(--c,#888);border-radius:8px;background:color-mix(in srgb,var(--c,#888) 14%,var(--e-surface,#15181e));color:var(--e-text,#f5f3ee);font:inherit;cursor:pointer;overflow:hidden}
.ag7-ev.is-off{opacity:.5;text-decoration:line-through}
.ag7-t{font-weight:700;font-size:13px;color:var(--c)}.ag7-c{font-weight:700;font-size:14px}.ag7-d{font-size:13px;color:var(--e-muted,#b0b4bc);overflow-wrap:anywhere}
.ag7-day{position:relative;display:grid;grid-template-columns:56px 1fr;max-height:70vh;overflow-y:auto;border:1px solid var(--e-border,#ffffff17);border-radius:var(--e-r,12px);background:var(--e-surface,#15181e);padding:10px 8px 10px 0}
.ag7-hours{position:relative}.ag7-hours span{position:absolute;right:8px;font-size:12px;color:var(--e-faint,#8a8f99);transform:translateY(-50%)}
.ag7-track{position:relative;background:repeating-linear-gradient(to bottom,var(--e-border,#ffffff17) 0 1px,transparent 1px 60px)}
.ag7-slot{position:absolute;padding:1px 3px;box-sizing:border-box}.ag7-slot .ag7-ev{height:100%;margin:0}
.ag7-now{position:absolute;left:0;right:0;height:2px;background:var(--e-danger,#ef6a62);z-index:2}.ag7-now:before{content:"";position:absolute;left:-5px;top:-4px;width:10px;height:10px;border-radius:50%;background:var(--e-danger,#ef6a62)}
.ag7-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}
.ag7-col{min-width:0;padding:8px;border-radius:var(--e-r,12px);background:var(--e-surface,#15181e);border:1px solid var(--e-border,#ffffff17);min-height:180px}
.ag7-col.is-today{border-color:var(--e-gold,#e8b84a)}
.ag7-colhead{display:grid;justify-items:center;width:100%;padding:6px 0 10px;border:0;background:transparent;color:var(--e-muted,#b0b4bc);cursor:pointer;font:inherit}
.ag7-colhead strong{font-size:22px;color:var(--e-text,#f5f3ee)}.ag7-colhead small{font-size:12px}
.ag7-col.is-today .ag7-colhead strong{color:var(--e-gold-2,#f3cf7a)}
.ag7-col .ag7-d{display:none}.ag7-col .ag7-ev{padding:6px 8px}
.ag7-month{border:1px solid var(--e-border,#ffffff17);border-radius:var(--e-r,12px);overflow:hidden}
.ag7-mrow,.ag7-mgrid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.ag7-mhead span{padding:8px;text-align:center;font-size:12px;text-transform:uppercase;color:var(--e-faint,#8a8f99);background:var(--e-surface-2,#1b1f27)}
.ag7-cell{display:flex;flex-direction:column;align-items:stretch;gap:3px;min-height:104px;padding:6px;border:0;border-top:1px solid var(--e-border,#ffffff17);border-left:1px solid var(--e-border,#ffffff17);background:var(--e-surface,#15181e);color:var(--e-text,#f5f3ee);text-align:left;cursor:pointer;font:inherit;min-width:0}
.ag7-cell.out{background:var(--e-bg,#0c0e12);color:var(--e-faint,#8a8f99)}.ag7-cell.is-today .ag7-num{background:var(--e-gold,#e8b84a);color:var(--e-gold-ink,#17120a)}
.ag7-num{align-self:flex-start;display:inline-grid;place-items:center;min-width:28px;height:28px;border-radius:50%;font-weight:700;font-size:14px}
.ag7-list{display:grid;gap:2px}.ag7-mini{font-size:12px;padding:2px 6px;border-radius:4px;background:color-mix(in srgb,var(--c,#888) 22%,transparent);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ag7-more{font-size:12px;color:var(--e-muted,#b0b4bc)}
.ag7-dots{display:none}
.ag7-empty,.ag7-loading{padding:16px;text-align:center;color:var(--e-muted,#b0b4bc)}
@media(max-width:900px){.ag7-week{grid-template-columns:1fr}.ag7-col{min-height:0;display:grid;grid-template-columns:64px 1fr;gap:4px 10px;align-items:start}.ag7-col .ag7-ev{grid-column:2}.ag7-col .ag7-colhead{grid-row:1/span 9;padding:0}.ag7-col.is-empty{opacity:.65}.ag7-col .ag7-d{display:block}}
@media(max-width:700px){.ag7-bar{padding:8px}.ag7-views{width:100%}.ag7-views button{flex:1;min-width:0}.ag7-nav{flex-basis:100%}.ag7-datewrap{max-width:none}.ag7-cell{min-height:58px;padding:4px;align-items:center}.ag7-list{display:none}.ag7-dots{display:flex;gap:2px}.ag7-dots i{width:7px;height:7px;margin:0}.ag7-num{font-size:13px;min-width:26px;height:26px;align-self:center}.ag7-day{grid-template-columns:48px 1fr;max-height:none}}
@media(max-width:700px){.ag7-nav{position:relative}.ag7-datewrap{position:static}.ag7-pop{width:calc(100% - 8px)}}
/* 7C · Táctil, modo app y coherencia visual */
.ops7-ai{border-left:3px solid var(--e-gold,#e8b84a)}
html.is-touch .btn,html.is-touch button,html.is-touch select,html.is-touch input:not([type=checkbox]):not([type=radio]),html.is-touch [data-section]{min-height:44px}
html.is-touch input[type=checkbox],html.is-touch input[type=radio]{width:22px;height:22px}
input,select,textarea{font-size:max(16px,1em)}
button,a,summary,[data-section]{-webkit-tap-highlight-color:transparent;touch-action:manipulation}
@media(hover:none){.btn:hover,button:hover{transform:none!important}}
:focus-visible{outline:2px solid var(--e-gold,#e8b84a);outline-offset:2px}
[data-ops-pane] table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%}
[data-ops-pane] .ev4-card,[data-ops-pane] .eag-card{border-radius:var(--e-r,12px)}
[data-ops-pane] [hidden]{display:none!important}
.ops7-offline{position:fixed;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));z-index:60;display:none;padding:12px 16px;border-radius:var(--e-r,12px);background:#3a2a10;border:1px solid var(--e-gold,#e8b84a);color:var(--e-gold-2,#f3cf7a);font-size:14px;box-shadow:0 10px 30px #0008}
html.is-offline .ops7-offline{display:block}
html.is-app body{overscroll-behavior-y:contain;padding-bottom:env(safe-area-inset-bottom)}
html.is-app .ok7-search,html.is-app .ag7-bar{top:env(safe-area-inset-top)}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}}
.ok7-count:empty{display:none}.ok7-search[data-ok7-quick]{padding:8px;margin:10px 0}
