/* CSS/business-manager.css — Gestor de negocios: tarjetas con icono propio, buscador, orden y editor de nombre, icono y color.
   Escritorio: ventana centrada. Teléfono: hoja inferior a todo el ancho, una sola columna y sin scroll horizontal. */

/* ---- Avatar de negocio (lo pinta FelixBizIcons.paint) ---- */
.biz-tile {
    --biz-a: #2dd4bf; --biz-b: #0f766e;
    display: grid; place-items: center; flex: none; box-sizing: border-box; overflow: hidden;
    color: #fff; font-weight: 800; text-transform: uppercase; line-height: 1;
    background: linear-gradient(135deg, var(--biz-a), var(--biz-b));
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.28), 0 4px 12px -6px var(--biz-b);
}
.biz-tile svg { display: block; }

/* ---- Ventana ---- */
#business-manager-modal .bm {
    position: relative; display: flex; flex-direction: column; box-sizing: border-box;
    width: 100%; max-width: 720px !important; min-height: 0 !important; height: auto !important; max-height: min(92dvh, 860px);
    padding: 0 !important; overflow: hidden !important; overflow-wrap: anywhere;
    background: var(--card-bg) !important; color: var(--text-primary);
}
.bm-scroll { flex: 1; min-height: 0; overflow-y: auto; overflow-x: hidden; padding: 26px 28px 28px; -webkit-overflow-scrolling: touch; overscroll-behavior: contain; }
.bm-x {
    position: absolute; top: 14px; right: 14px; z-index: 5; display: grid; place-items: center; width: 40px; height: 40px;
    border: 1px solid var(--card-border); border-radius: 12px; background: var(--card-bg); color: var(--text-secondary); cursor: pointer;
}
.bm-x:hover { color: var(--text-primary); border-color: var(--text-secondary); }
.bm-x svg { width: 18px; height: 18px; }

/* ---- Cabecera ---- */
.bm-head { display: flex; align-items: center; gap: 14px; margin: 0 48px 18px 0; }
.bm-headico { display: grid; place-items: center; flex: none; width: 46px; height: 46px; border-radius: 14px; color: var(--primary-color); background: color-mix(in srgb, var(--primary-color) 14%, transparent); }
.bm-headico svg { width: 24px; height: 24px; }
.bm-headt { min-width: 0; }
.bm-headt h2 { margin: 0; font-size: 1.4rem; font-weight: 800; line-height: 1.2; color: var(--text-primary); }
.bm-headt p { margin: 3px 0 0; font-size: 0.86rem; color: var(--text-secondary); }
.bm-back { display: grid; place-items: center; flex: none; width: 40px; height: 40px; border: 1px solid var(--card-border); border-radius: 12px; background: none; color: var(--text-primary); cursor: pointer; }
.bm-back svg { width: 18px; height: 18px; }

/* ---- Buscador y orden ---- */
.bm-toolbar { display: flex; gap: 10px; margin-bottom: 14px; }
.bm-search { position: relative; flex: 1; min-width: 0; display: block; }
.bm-search svg { position: absolute; left: 13px; top: 50%; transform: translateY(-50%); width: 17px; height: 17px; color: var(--text-secondary); pointer-events: none; }
.bm-search input, .bm-sort, .bm-input {
    box-sizing: border-box; width: 100%; height: 44px; border-radius: 12px; border: 1px solid var(--input-border, var(--card-border));
    background: var(--input-bg, transparent); color: var(--text-primary); font: inherit; font-size: 16px;
}
.bm-search input { padding: 0 14px 0 39px; }
.bm-sort { width: auto; max-width: 46%; padding: 0 12px; font-size: 0.88rem; cursor: pointer; }
.bm-input { padding: 0 14px; }
.bm-search input:focus, .bm-sort:focus, .bm-input:focus { outline: 2px solid var(--primary-color); outline-offset: 1px; }

/* ---- Tarjetas de negocio ---- */
.bm-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(290px, 1fr)); gap: 12px; }
.bm-card {
    position: relative; display: flex; flex-direction: column; gap: 12px; min-width: 0; padding: 14px; box-sizing: border-box;
    border: 1px solid var(--card-border); border-radius: 18px; background: color-mix(in srgb, var(--text-primary) 3%, transparent);
    transition: border-color 0.15s ease, transform 0.15s ease, background 0.15s ease;
}
.bm-card:hover { border-color: color-mix(in srgb, var(--primary-color) 55%, var(--card-border)); background: color-mix(in srgb, var(--text-primary) 5%, transparent); }
.bm-card.is-current { border-color: var(--primary-color); background: color-mix(in srgb, var(--primary-color) 8%, transparent); }
.bm-open { display: flex; align-items: center; gap: 13px; width: 100%; min-width: 0; padding: 0; text-align: left; border: 0; background: none; color: inherit; font: inherit; cursor: pointer; }
.bm-open:focus-visible, .bm-ico:focus-visible, .bm-new:focus-visible, .bm-btn:focus-visible, .bm-x:focus-visible, .bm-back:focus-visible, .bm-swatch:focus-visible, .bm-pick:focus-visible {
    outline: 2px solid var(--primary-color); outline-offset: 2px;
}
.bm-card .biz-tile { width: 52px; height: 52px; border-radius: 16px; font-size: 1.3rem; }
.bm-cardt { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.bm-name { font-size: 1.02rem; font-weight: 700; line-height: 1.25; color: var(--text-primary); overflow-wrap: anywhere; }
.bm-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; font-size: 0.76rem; color: var(--text-secondary); }
.bm-pill { display: inline-flex; align-items: center; gap: 4px; padding: 2px 8px; border-radius: 99px; font-size: 0.7rem; font-weight: 700; white-space: nowrap; background: color-mix(in srgb, var(--text-primary) 8%, transparent); color: var(--text-secondary); }
.bm-pill.is-now { background: color-mix(in srgb, var(--primary-color) 16%, transparent); color: var(--primary-color); }
.bm-pill svg { width: 11px; height: 11px; }

.bm-tools { display: flex; align-items: center; gap: 6px; }
.bm-tools .bm-go { flex: 1; }
.bm-ico {
    display: grid; place-items: center; flex: none; width: 40px; height: 40px; border: 1px solid var(--card-border); border-radius: 12px; background: none;
    color: var(--text-secondary); cursor: pointer; transition: color 0.15s ease, border-color 0.15s ease, background 0.15s ease;
}
.bm-ico:hover { color: var(--text-primary); border-color: var(--text-secondary); }
.bm-ico svg { width: 17px; height: 17px; }
.bm-ico.is-pinned { color: #f59e0b; border-color: color-mix(in srgb, #f59e0b 45%, transparent); background: color-mix(in srgb, #f59e0b 12%, transparent); }
.bm-ico.is-pinned svg { fill: currentColor; }
.bm-ico.danger:hover { color: var(--danger-color, #dc3545); border-color: color-mix(in srgb, var(--danger-color, #dc3545) 55%, transparent); background: color-mix(in srgb, var(--danger-color, #dc3545) 10%, transparent); }
.bm-go {
    display: inline-flex; align-items: center; justify-content: center; gap: 6px; height: 40px; padding: 0 14px; border: 0; border-radius: 12px;
    background: color-mix(in srgb, var(--primary-color) 14%, transparent); color: var(--primary-color); font: inherit; font-size: 0.88rem; font-weight: 700; cursor: pointer;
}
.bm-go:hover { background: color-mix(in srgb, var(--primary-color) 24%, transparent); }
.bm-go[disabled] { cursor: default; opacity: 0.7; }
.bm-go svg { width: 16px; height: 16px; }

.bm-empty { grid-column: 1 / -1; padding: 28px 12px; text-align: center; color: var(--text-secondary); line-height: 1.5; }

/* ---- Botón "crear" ---- */
.bm-new {
    display: flex; align-items: center; gap: 13px; width: 100%; margin-top: 14px; padding: 14px; box-sizing: border-box; text-align: left; font: inherit; color: var(--text-primary);
    border: 1.5px dashed color-mix(in srgb, var(--primary-color) 45%, var(--card-border)); border-radius: 18px; background: color-mix(in srgb, var(--primary-color) 5%, transparent); cursor: pointer;
}
.bm-new:hover { background: color-mix(in srgb, var(--primary-color) 10%, transparent); }
.bm-newico { display: grid; place-items: center; flex: none; width: 52px; height: 52px; border-radius: 16px; color: var(--primary-color); background: color-mix(in srgb, var(--primary-color) 16%, transparent); }
.bm-newico svg { width: 24px; height: 24px; }
.bm-newt { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.bm-newt strong { font-size: 1rem; }
.bm-newt small { font-size: 0.8rem; color: var(--text-secondary); }

/* ---- Editor ---- */
.bm-preview { display: flex; align-items: center; gap: 14px; margin-bottom: 18px; padding: 14px; border: 1px solid var(--card-border); border-radius: 18px; background: color-mix(in srgb, var(--text-primary) 3%, transparent); }
.bm-preview-tile { width: 64px; height: 64px; border-radius: 20px; font-size: 1.6rem; }
.bm-preview-t { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.bm-preview-t strong { font-size: 1.1rem; overflow-wrap: anywhere; }
.bm-preview-t small { font-size: 0.78rem; color: var(--text-secondary); }
.bm-lab { display: block; margin: 16px 0 8px; font-size: 0.74rem; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; color: var(--text-secondary); }
.bm-hint { display: flex; align-items: center; gap: 8px; margin: 8px 0 0; font-size: 0.82rem; color: var(--text-secondary); }
.bm-hint[hidden] { display: none; }
.bm-hint button { border: 0; background: none; padding: 4px 0; font: inherit; font-weight: 700; color: var(--primary-color); cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }

.bm-icons { display: grid; grid-template-columns: repeat(auto-fill, minmax(76px, 1fr)); gap: 8px; }
.bm-pick {
    display: flex; flex-direction: column; align-items: center; gap: 6px; min-width: 0; padding: 10px 4px 8px; border: 1.5px solid var(--card-border); border-radius: 14px;
    background: none; color: var(--text-secondary); font: inherit; font-size: 0.68rem; line-height: 1.2; text-align: center; cursor: pointer;
}
.bm-pick .biz-tile { width: 40px; height: 40px; border-radius: 13px; }
.bm-pick:hover { border-color: var(--text-secondary); }
.bm-pick[aria-checked="true"] { border-color: var(--primary-color); color: var(--text-primary); background: color-mix(in srgb, var(--primary-color) 9%, transparent); }
.bm-pick span:last-child { overflow-wrap: normal; word-break: normal; hyphens: none; }

.bm-colors { display: flex; flex-wrap: wrap; gap: 10px; }
.bm-swatch {
    display: grid; place-items: center; width: 40px; height: 40px; padding: 0; border: 3px solid transparent; border-radius: 50%; cursor: pointer; color: #fff;
    background: linear-gradient(135deg, var(--biz-a), var(--biz-b)); box-shadow: 0 0 0 1px var(--card-border);
}
.bm-swatch[aria-checked="true"] { border-color: var(--card-bg); box-shadow: 0 0 0 2.5px var(--text-primary); }
.bm-swatch svg { width: 16px; height: 16px; opacity: 0; }
.bm-swatch[aria-checked="true"] svg { opacity: 1; }

.bm-actions { display: flex; gap: 10px; justify-content: flex-end; margin-top: 24px; }
.bm-btn { height: 46px; padding: 0 22px; border: 0; border-radius: 13px; font: inherit; font-weight: 700; cursor: pointer; }
.bm-btn.ghost { background: none; border: 1px solid var(--card-border); color: var(--text-primary); }
.bm-btn.primary { background: var(--primary-color); color: #fff; }
.bm-btn[disabled] { opacity: 0.55; cursor: default; }

/* ---- Teléfono ---- */
@media (max-width: 768px) {
    #business-manager-modal .bm { max-width: none !important; max-height: 92dvh; border-radius: 22px 22px 0 0 !important; }
    .bm-scroll { padding: 22px 16px calc(20px + env(safe-area-inset-bottom, 0px)); }
    .bm-head { margin-right: 46px; }
    .bm-headt h2 { font-size: 1.2rem; }
    .bm-toolbar { flex-direction: column; }
    .bm-sort { width: 100%; max-width: none; }
    .bm-grid { grid-template-columns: 1fr; }
    .bm-icons { grid-template-columns: repeat(auto-fill, minmax(72px, 1fr)); }
    .bm-actions { flex-direction: column-reverse; }
    .bm-btn { width: 100%; }
}
@media (prefers-reduced-motion: reduce) { .bm-card, .bm-ico { transition: none; } }
