/* WispSmart - Orders Module · Enterprise Design System (ocw-*) */
/* OS-2.9B.2A — Shared tokens (wizard + index) */
.ocw-page,
.ws-orders-page {
    --ocw-bg: #f7f9fc;
    --ocw-card: #ffffff;
    --ocw-border: #e5eaf2;
    --ocw-muted: #64748b;
    --ocw-text: #0f172a;
    --ocw-primary: #2563eb;
    --ocw-primary-soft: #eff6ff;
    --ocw-success: #16a34a;
    --ocw-success-soft: #f0fdf4;
    --ocw-warning: #f97316;
    --ocw-warning-soft: #fff7ed;
    --ocw-danger: #dc2626;
    --ocw-danger-soft: #fef2f2;
    --ocw-info: #2563eb;
    --ocw-info-soft: #eff6ff;
    --ocw-radius-sm: 10px;
    --ocw-radius-md: 12px;
    --ocw-radius-lg: 16px;
    --ocw-radius-xl: 18px;
    --ocw-shadow-sm: 0 1px 3px rgba(15, 23, 42, 0.04);
    --ocw-shadow-md: 0 14px 34px rgba(15, 23, 42, 0.06);
    --ocw-shadow-lg: 0 24px 60px rgba(15, 23, 42, 0.15);
    --ocw-control-height: 44px;
    --ocw-control-radius: 12px;
    --ocw-btn-radius: 12px;
    --ocw-btn-height: 44px;
    --ocw-btn-height-sm: 38px;
    --ocw-font-xs: 0.72rem;
    --ocw-font-sm: 0.82rem;
    --ocw-font-md: 0.88rem;
    --ocw-space-1: 4px;
    --ocw-space-2: 8px;
    --ocw-space-3: 12px;
    --ocw-space-4: 16px;
    --ocw-space-5: 20px;
    --ocw-icon-size: 18px;
}

.ocw-page {
    background: var(--ocw-bg);
    min-height: calc(100vh - 90px);
    padding: 18px;
    color: var(--ocw-text);
    position: relative;
}

.ocw-shell {
    display: grid;
    grid-template-columns: 260px minmax(0, 1fr) 300px;
    gap: 18px;
    max-width: 1480px;
    margin: 0 auto;
}

.ocw-page.is-modal-step {
    min-height: calc(100vh - 90px);
}

.ocw-page.is-modal-step::before {
    content: "";
    position: fixed;
    inset: 0;
    background: rgba(15, 23, 42, .46);
    backdrop-filter: blur(5px);
    z-index: 1;
    pointer-events: none;
}

.ocw-page.is-modal-step .ocw-header {
    filter: blur(1px);
    opacity: .55;
}

.ocw-page.is-modal-step .ocw-shell {
    position: relative;
    z-index: 2;
    display: block;
    max-width: 760px;
    min-height: auto;
    margin-top: 18px;
}

.ocw-page.is-modal-step .ocw-sidebar,
.ocw-page.is-modal-step .ocw-summary {
    display: none;
}

.ocw-page.is-modal-step .ocw-card {
    min-height: auto;
    border-radius: 18px;
    box-shadow: 0 26px 80px rgba(15, 23, 42, .28);
}

.ocw-page.is-modal-step .ocw-card-head {
    border-bottom: 0;
    padding: 24px 28px 8px;
    text-align: center;
}

.ocw-page.is-modal-step .ocw-breadcrumb {
    justify-content: flex-start;
    margin-bottom: 18px;
    text-align: left;
}

.ocw-page.is-modal-step .ocw-step-title {
    font-size: 24px;
}

.ocw-page.is-modal-step .ocw-main-progress {
    max-width: 520px;
    margin: 18px auto 0;
}

.ocw-page.is-modal-step .ocw-step-panel {
    padding: 22px 52px 26px;
}

.ocw-page.is-modal-step .ocw-actions {
    padding: 18px 28px;
}

.ocw-scope-modal {
    position: fixed;
    inset: 0;
    z-index: 2140;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
    background: rgba(15, 23, 42, .48);
    backdrop-filter: blur(6px);
    pointer-events: auto;
}

.ocw-scope-modal.is-hidden {
    display: none;
}

.ocw-scope-card {
    width: min(620px, 100%);
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 18px;
    padding: 20px;
    box-shadow: 0 24px 70px rgba(15, 23, 42, .24);
    animation: ocwFade .18s ease;
    position: relative;
    pointer-events: auto;
}

.ocw-scope-head {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 18px;
}

.ocw-scope-head__icon {
    width: 38px;
    height: 38px;
    border-radius: 999px;
    background: #eff6ff;
    color: #2563eb;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
}

.ocw-scope-head__icon svg,
.ocw-scope-option__icon svg,
.ocw-scope-option .ocw-check svg {
    width: 18px;
    height: 18px;
    display: block;
}

.ocw-scope-title {
    margin: 0;
    font-size: 18px;
    line-height: 1.2;
    font-weight: 850;
    letter-spacing: -0.025em;
    color: #0f172a;
}

.ocw-scope-copy {
    margin: 3px 0 0;
    font-size: 13px;
    color: #64748b;
    line-height: 1.35;
}

.ocw-scope-grid {
    display: grid;
    gap: 12px;
}

.ocw-scope-option {
    min-height: 96px;
    border: 1px solid #e2e8f0;
    border-radius: 16px;
    background: #fff;
    padding: 16px;
    display: grid;
    grid-template-columns: 44px minmax(0, 1fr) 28px;
    gap: 13px;
    align-items: center;
    cursor: pointer;
    position: relative;
    transition: border-color .16s ease, background .16s ease, box-shadow .16s ease, transform .16s ease;
}

.ocw-scope-option:hover {
    border-color: #93c5fd;
    box-shadow: 0 10px 24px rgba(15, 23, 42, .07);
    transform: translateY(-1px);
}

.ocw-scope-option.is-selected {
    border-color: #2563eb;
    background: #eff6ff;
    box-shadow: 0 12px 28px rgba(37, 99, 235, .10);
}

.ocw-scope-option__icon {
    width: 44px;
    height: 44px;
    border-radius: 14px;
    background: #eff6ff;
    color: #2563eb;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.ocw-scope-option__icon svg {
    width: 22px;
    height: 22px;
}

.ocw-scope-option--business .ocw-scope-option__icon {
    background: #f3e8ff;
    color: #7e22ce;
}

.ocw-scope-option__body {
    display: grid;
    gap: 3px;
    min-width: 0;
}

.ocw-scope-option__body strong {
    color: #0f172a;
    font-size: 14px;
    font-weight: 850;
    line-height: 1.2;
}

.ocw-scope-option__body small {
    color: #64748b;
    font-size: 12.5px;
    line-height: 1.35;
}

.ocw-scope-option .ocw-check {
    position: static;
    width: 24px;
    height: 24px;
    justify-self: end;
    color: transparent;
    background: #fff;
}

.ocw-scope-option .ocw-check svg {
    width: 14px;
    height: 14px;
}

.ocw-scope-option.is-selected .ocw-check {
    background: #2563eb;
    border-color: #2563eb;
    color: #fff;
}

.ocw-scope-actions {
    margin: 18px -20px -20px;
    padding: 14px 20px;
    border-radius: 0 0 18px 18px;
    position: relative;
    z-index: 2;
    background: #fff;
}

.ocw-scope-actions .ocw-btn {
    box-shadow: none;
    transform: none;
}

.ocw-scope-actions .ocw-btn:hover {
    transform: none;
    box-shadow: none;
}

.ocw-scope-actions .ocw-btn--primary {
    box-shadow: 0 4px 12px rgba(37, 99, 235, 0.18);
}

.ocw-scope-actions .ocw-btn--primary:hover {
    box-shadow: 0 6px 16px rgba(37, 99, 235, 0.22);
}

.ocw-business-block {
    margin-top: 20px;
    padding: 18px;
    border: 1px solid #ddd6fe;
    border-radius: 18px;
    background: linear-gradient(180deg, #faf5ff, #ffffff);
}

.ocw-card,
.ocw-sidebar,
.ocw-summary {
    background: var(--ocw-card);
    border: 1px solid var(--ocw-border);
    border-radius: 18px;
    box-shadow: 0 14px 34px rgba(15, 23, 42, 0.06);
}

.ocw-header {
    max-width: 1480px;
    margin: 0 auto 16px;
    display: flex;
    justify-content: space-between;
    gap: 16px;
    align-items: center;
}

.ocw-title {
    margin: 0;
    font-size: 22px;
    font-weight: 800;
    letter-spacing: -0.03em;
}

.ocw-subtitle {
    margin: 4px 0 0;
    color: var(--ocw-muted);
    font-size: 13px;
}

.ocw-top-actions {
    display: inline-flex;
    gap: 10px;
}

.ocw-sidebar {
    padding: 18px;
    height: fit-content;
    position: sticky;
    top: 84px;
}

.ocw-steps {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.ocw-step-nav {
    display: grid;
    grid-template-columns: 34px 1fr;
    gap: 10px;
    align-items: center;
    border: 0;
    background: transparent;
    text-align: left;
    padding: 8px;
    border-radius: 12px;
    color: var(--ocw-muted);
    transition: background .18s ease, color .18s ease, transform .18s ease;
}

.ocw-step-nav.is-active {
    background: var(--ocw-primary-soft);
    color: var(--ocw-primary);
}

.ocw-step-nav.is-done {
    color: var(--ocw-success);
}

.ocw-step-dot {
    width: 30px;
    height: 30px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #f1f5f9;
    color: inherit;
    font-weight: 800;
    font-size: 12px;
}

.ocw-step-nav.is-active .ocw-step-dot {
    background: var(--ocw-primary);
    color: #fff;
    box-shadow: 0 8px 18px rgba(37, 99, 235, .25);
}

.ocw-step-label {
    display: block;
    font-weight: 700;
    font-size: 13px;
}

.ocw-step-help {
    display: block;
    font-size: 11px;
    color: var(--ocw-muted);
}

.ocw-progress-mini {
    margin-top: 18px;
    padding-top: 16px;
    border-top: 1px solid var(--ocw-border);
}

.ocw-progress-track {
    height: 6px;
    border-radius: 999px;
    background: #e8eef8;
    overflow: hidden;
}

.ocw-progress-fill {
    height: 100%;
    width: 14.28%;
    border-radius: inherit;
    background: linear-gradient(90deg, #2563eb, #3b82f6);
    transition: width .22s ease;
}

.ocw-card {
    min-height: 680px;
    overflow: hidden;
}

.ocw-card-body {
    padding: 18px 20px;
}

.ocw-card-footer {
    display: flex;
    justify-content: flex-end;
    gap: var(--ocw-space-3);
    padding: var(--ocw-space-4) var(--ocw-space-5);
    border-top: 1px solid #edf2f7;
    background: #fff;
}

.ocw-card-head {
    padding: 22px 24px 16px;
    border-bottom: 1px solid #edf2f7;
}

.ocw-breadcrumb {
    display: flex;
    gap: 9px;
    align-items: center;
    font-size: 12px;
    font-weight: 700;
    color: var(--ocw-primary);
    margin-bottom: 14px;
}

.ocw-step-title {
    margin: 0;
    font-size: 24px;
    font-weight: 850;
    letter-spacing: -0.035em;
}

.ocw-step-copy {
    margin: 7px 0 0;
    color: var(--ocw-muted);
    font-size: 13.5px;
}

.ocw-main-progress {
    margin-top: 12px;
    display: block;
}

.ocw-step-panel {
    display: none;
    padding: 18px 20px;
    animation: ocwFade .18s ease;
}

.ocw-step-panel.is-active {
    display: block;
}

@keyframes ocwFade {
    from { opacity: 0; transform: translateY(6px); }
    to { opacity: 1; transform: translateY(0); }
}

.ocw-choice-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
}

.ocw-page.is-modal-step .ocw-choice-grid {
    gap: 22px;
}

.ocw-page.is-modal-step .ocw-choice {
    min-height: 196px;
    text-align: center;
}

.ocw-page.is-modal-step .ocw-choice-icon {
    margin-left: auto;
    margin-right: auto;
}

.ocw-page.is-modal-step .ocw-choice-grid--two .ocw-choice {
    min-height: 300px;
    text-align: left;
}

.ocw-page.is-modal-step .ocw-choice-grid--two .ocw-choice-icon {
    margin-left: 0;
    margin-right: 0;
}

.ocw-choice-grid--two {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.ocw-choice-grid--categories {
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
}

.ocw-install-section__title {
    margin: 0 0 6px;
    font-size: 15px;
    font-weight: 800;
    color: var(--ocw-text, #0f172a);
}

.ocw-install-section__copy {
    margin: 0 0 14px;
    font-size: 13px;
    color: var(--ocw-muted, #64748b);
}

/* Paso 2 — categoría y modalidad compacto */
#orders-create-wizard .ocw-step-panel[data-step="2"] .ocw-install-section + .ocw-install-section {
    margin-top: 1rem !important;
}

#orders-create-wizard .ocw-step-panel[data-step="2"] .ocw-install-section__title {
    font-size: 14px;
}

#orders-create-wizard .ocw-step-panel[data-step="2"] .ocw-install-section__copy {
    margin-bottom: 10px;
    font-size: 12px;
}

#orders-create-wizard .ocw-step-panel[data-step="2"] .ocw-choice-grid {
    gap: 12px;
}

#orders-create-wizard .ocw-step-panel[data-step="2"] .ocw-choice-grid--categories {
    grid-template-columns: repeat(auto-fit, minmax(132px, 1fr));
}

#orders-create-wizard .ocw-step-panel[data-step="2"] .ocw-choice-grid--categories .ocw-choice,
#orders-create-wizard .ocw-page.is-modal-step .ocw-step-panel[data-step="2"] .ocw-choice-grid--categories .ocw-choice,
#orders-create-wizard.is-modal-step .ocw-step-panel[data-step="2"] .ocw-choice-grid--categories .ocw-choice {
    min-height: 92px;
    padding: 12px 14px;
}

#orders-create-wizard .ocw-step-panel[data-step="2"] .ocw-choice-grid--two .ocw-choice,
#orders-create-wizard .ocw-page.is-modal-step .ocw-step-panel[data-step="2"] .ocw-choice-grid--two .ocw-choice,
#orders-create-wizard.is-modal-step .ocw-step-panel[data-step="2"] .ocw-choice-grid--two .ocw-choice {
    min-height: auto;
    padding: 14px 16px;
}

#orders-create-wizard .ocw-step-panel[data-step="2"] .ocw-choice-icon,
#orders-create-wizard .ocw-page.is-modal-step .ocw-step-panel[data-step="2"] .ocw-choice-icon,
#orders-create-wizard.is-modal-step .ocw-step-panel[data-step="2"] .ocw-choice-icon {
    width: 42px;
    height: 42px;
    margin-bottom: 8px;
}

#orders-create-wizard .ocw-step-panel[data-step="2"] .ocw-choice h3 {
    font-size: 14px;
    margin-bottom: 4px;
}

#orders-create-wizard .ocw-step-panel[data-step="2"] .ocw-choice p {
    font-size: 12px;
    line-height: 1.35;
}

#orders-create-wizard .ocw-step-panel[data-step="2"] .ocw-features {
    margin-top: 10px;
    padding-top: 10px;
    gap: 6px;
    font-size: 11.5px;
}

#orders-create-wizard .ocw-step-panel[data-step="2"] .ocw-check {
    top: 10px;
    right: 10px;
    width: 22px;
    height: 22px;
}

#orders-create-wizard .ocw-step-panel[data-step="2"] .ocw-choice {
    border-radius: 12px;
}

#orders-create-wizard .ocw-step-panel[data-step="2"] .ocw-choice:hover {
    transform: none;
    box-shadow: 0 4px 12px rgba(15, 23, 42, 0.06);
}

#orders-create-wizard .ocw-step-panel[data-step="2"] .ocw-choice.is-selected {
    box-shadow: 0 4px 14px rgba(37, 99, 235, 0.1);
}

#orders-create-wizard .ocw-step-panel[data-step="2"] .ocw-choice-icon svg,
#orders-create-wizard .ocw-step-panel[data-step="2"] .ocw-choice-icon i {
    width: 20px;
    height: 20px;
}

#orders-create-wizard .ocw-page.is-modal-step .ocw-choice-grid--categories .ocw-choice,
#orders-create-wizard.is-modal-step .ocw-choice-grid--categories .ocw-choice {
    min-height: 132px;
}

.ocw-choice {
    position: relative;
    min-height: 196px;
    padding: 24px;
    border: 1px solid var(--ocw-border);
    border-radius: 18px;
    background: #fff;
    cursor: pointer;
    transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease, background .18s ease;
}

.ocw-choice:hover {
    transform: translateY(-2px);
    box-shadow: 0 16px 34px rgba(15, 23, 42, .08);
}

.ocw-choice.is-selected {
    border-color: var(--ocw-primary);
    background: linear-gradient(180deg, #f8fbff, #fff);
    box-shadow: 0 16px 34px rgba(37, 99, 235, .12);
}

.ocw-choice--cable { border-color: #fed7aa; }
.ocw-choice--voice { border-color: #bbf7d0; }
.ocw-choice--free.is-selected { border-color: #22c55e; background: var(--ocw-success-soft); }
.ocw-choice--paid.is-selected { border-color: #fb923c; background: var(--ocw-warning-soft); }

.ocw-choice-icon {
    width: 62px;
    height: 62px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--ocw-primary-soft);
    color: var(--ocw-primary);
    margin-bottom: 18px;
}

.ocw-choice--cable .ocw-choice-icon { background: #fff7ed; color: #ea580c; }
.ocw-choice--voice .ocw-choice-icon { background: #f0fdf4; color: #16a34a; }
.ocw-choice--free .ocw-choice-icon { background: #dcfce7; color: #16a34a; }
.ocw-choice--paid .ocw-choice-icon { background: #ffedd5; color: #f97316; }

.ocw-choice h3 {
    margin: 0 0 8px;
    font-size: 16px;
    font-weight: 800;
}

.ocw-choice p {
    margin: 0;
    color: var(--ocw-muted);
    font-size: 13px;
    line-height: 1.45;
}

.ocw-check {
    position: absolute;
    top: 18px;
    right: 18px;
    width: 26px;
    height: 26px;
    border-radius: 999px;
    border: 1px solid #cbd5e1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: transparent;
    background: #fff;
}

.ocw-choice.is-selected .ocw-check {
    background: var(--ocw-primary);
    border-color: var(--ocw-primary);
    color: #fff;
}

.ocw-choice--free.is-selected .ocw-check {
    background: var(--ocw-success);
    border-color: var(--ocw-success);
}

.ocw-features {
    margin: 20px 0 0;
    padding-top: 16px;
    border-top: 1px solid #eaf0f7;
    display: grid;
    gap: 9px;
    color: #334155;
    font-size: 12.5px;
}

.ocw-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.ocw-form-grid--three {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.ocw-field {
    display: grid;
    gap: 7px;
}

.ocw-field--full {
    grid-column: 1 / -1;
}

.ocw-field label,
.ocw-label {
    margin: 0;
    display: block;
    font-size: var(--ocw-font-sm);
    font-weight: 700;
    color: #334155;
}

.ocw-input,
.ocw-select,
.ocw-textarea {
    width: 100%;
    border: 1px solid var(--ocw-border);
    border-radius: var(--ocw-control-radius);
    background: #fff;
    min-height: var(--ocw-control-height);
    padding: 10px 12px;
    color: var(--ocw-text);
    font-size: var(--ocw-font-sm);
    outline: none;
    transition: border-color .15s ease, box-shadow .15s ease;
}

.ocw-textarea {
    min-height: 112px;
    resize: vertical;
}

.ocw-input:focus,
.ocw-select:focus,
.ocw-textarea:focus {
    border-color: var(--ocw-primary);
    box-shadow: 0 0 0 4px rgba(37, 99, 235, .10);
}

.ocw-field.is-error label {
    color: #b91c1c;
}

.ocw-field.is-error .ocw-input,
.ocw-field.is-error .ocw-select,
.ocw-field.is-error .ocw-textarea,
.ocw-field.is-error .ocw-map,
.ocw-input.is-error-block,
.ocw-select.is-error-block,
.ocw-textarea.is-error-block {
    border-color: #ef4444;
    box-shadow: 0 0 0 4px rgba(239, 68, 68, .12);
}

.ocw-choice.is-error-block,
.ocw-mode.is-error-block,
.ocw-muted-box.is-error-block,
.ocw-business-block.is-error-block,
.ocw-service-config.is-error-block,
.ocw-map.is-error-block {
    border-color: #ef4444;
    box-shadow: 0 0 0 4px rgba(239, 68, 68, .12);
}

.ocw-mode-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin-bottom: 20px;
}

.ocw-mode {
    display: flex;
    gap: 12px;
    align-items: center;
    padding: 16px;
    border: 1px solid var(--ocw-border);
    border-radius: 15px;
    background: #fff;
    cursor: pointer;
}

.ocw-mode.is-selected {
    border-color: var(--ocw-primary);
    background: var(--ocw-primary-soft);
}

.ocw-search-box {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 10px;
    margin-bottom: 14px;
}

.ocw-results {
    display: grid;
    gap: 10px;
}

#retiro-wizard-app .ocw-results.is-open {
    max-height: 360px;
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: 2px 5px 2px 2px;
    scrollbar-gutter: stable;
}

.ocw-autocomplete-state {
    border: 1px solid var(--ocw-border);
    border-radius: 14px;
    background: #f8fafc;
    color: var(--ocw-muted);
    padding: 12px 14px;
    font-size: 13px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.ocw-result {
    width: 100%;
    text-align: left;
    border: 1px solid var(--ocw-border);
    border-radius: 14px;
    background: #fff;
    padding: 14px;
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr) auto;
    gap: 12px;
    align-items: center;
}

.ocw-result--compact {
    grid-template-columns: 38px minmax(0, 1fr) auto;
    padding: 12px;
    min-height: 74px;
    transition: border-color .15s ease, background .15s ease, box-shadow .15s ease;
}

.ocw-result--compact:hover {
    border-color: #93c5fd;
    background: #f8fbff;
    box-shadow: 0 8px 18px rgba(15, 23, 42, .06);
}

.ocw-result.is-selected {
    border-color: var(--ocw-primary);
    background: var(--ocw-primary-soft);
}

.ocw-result__body {
    display: grid;
    gap: 3px;
    min-width: 0;
}

.ocw-result__body strong {
    font-size: 13.5px;
    font-weight: 850;
    color: #0f172a;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ocw-result__body small {
    font-size: 12px;
    color: #64748b;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ocw-result__status {
    border-radius: 999px;
    background: #ecfdf5;
    color: #047857;
    padding: 4px 8px;
    font-size: 11px;
    font-weight: 800;
}

.ocw-avatar {
    width: 42px;
    height: 42px;
    border-radius: 999px;
    background: #e0f2fe;
    color: #0369a1;
    font-weight: 800;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.ocw-result--compact .ocw-avatar {
    width: 38px;
    height: 38px;
    font-size: 12px;
}

.ocw-avatar--business {
    background: #f3e8ff;
    color: #7e22ce;
}

.ocw-selected-customer {
    margin-top: 12px;
    border: 1px solid #bfdbfe;
    border-radius: 16px;
    background: #eff6ff;
    padding: 14px;
}

.ocw-selected-customer__main {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr);
    gap: 12px;
    align-items: center;
}

.ocw-selected-customer__main strong {
    display: block;
    color: #0f172a;
    font-size: 14px;
    font-weight: 850;
}

.ocw-selected-customer__main small {
    display: block;
    color: #475569;
    font-size: 12px;
    margin-top: 2px;
}

.ocw-selected-customer__actions {
    display: flex;
    gap: 8px;
    justify-content: flex-end;
    margin-top: 12px;
}

.ocw-customer-detail-panel {
    margin-top: 12px;
    border: 1px solid #dbeafe;
    border-radius: 16px;
    background: #fff;
    padding: 14px;
}

.ocw-customer-detail-panel__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px;
}

.ocw-customer-detail-panel__header strong {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: #0f172a;
    font-size: 14px;
    font-weight: 850;
}

.ocw-customer-detail-panel__header-actions {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.ocw-inline-edit-banner {
    margin-bottom: 12px;
}

.ocw-detail-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.ocw-detail-item {
    display: grid;
    gap: 4px;
    min-width: 0;
}

.ocw-detail-label {
    color: #64748b;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.02em;
    text-transform: uppercase;
}

.ocw-detail-value {
    color: #0f172a;
    font-size: 13px;
    font-weight: 600;
    word-break: break-word;
}

.ocw-detail-item.ocw-detail-item--full {
    grid-column: 1 / -1;
}

.ocw-mini-btn {
    border: 1px solid #bfdbfe;
    background: #fff;
    color: #2563eb;
    border-radius: 10px;
    min-height: 32px;
    padding: 0 10px;
    font-size: 12px;
    font-weight: 800;
    display: inline-flex;
    align-items: center;
    text-decoration: none;
}

.ocw-mini-btn:hover {
    color: #1d4ed8;
    border-color: #93c5fd;
}

.ocw-mini-btn.is-selected {
    background: #2563eb;
    border-color: #2563eb;
    color: #fff;
    box-shadow: 0 8px 18px rgba(37, 99, 235, .22);
}

.ocw-service-config {
    display: none;
    border: 1px solid var(--ocw-border);
    border-radius: 16px;
    padding: 16px;
    margin-bottom: 14px;
}

.ocw-service-config.is-visible {
    display: block;
}

.ocw-service-title {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 14px;
    font-weight: 800;
}

.ocw-map {
    min-height: 330px;
    border-radius: 16px;
    border: 1px solid var(--ocw-border);
    overflow: hidden;
    background: #f1f5f9;
}

.ocw-map--compact {
    min-height: 220px;
    max-height: 240px;
}

#orders-create-wizard .ocw-map.ocw-map--compact {
    min-height: 220px;
    max-height: 240px;
}

#orders-create-wizard .ocw-step-panel[data-step="4"] .ocw-form-grid--location {
    gap: 10px;
}

#orders-create-wizard .ocw-step-panel[data-step="4"] .ocw-field {
    gap: 4px;
}

#orders-create-wizard .ocw-step-panel[data-step="4"] .ocw-field label {
    font-size: 11.5px;
    font-weight: 700;
}

#orders-create-wizard .ocw-step-panel[data-step="4"] .ocw-input,
#orders-create-wizard .ocw-step-panel[data-step="4"] .ocw-select,
#orders-create-wizard .ocw-step-panel[data-step="4"] .ocw-textarea {
    min-height: 34px;
    padding: 6px 10px;
    font-size: 12.5px;
    border-radius: 10px;
}

#orders-create-wizard .ocw-step-panel[data-step="4"] .ocw-input--file {
    padding: 4px 8px;
    font-size: 12px;
}

/* Selector de archivo SaaS (oculta el input nativo) */
#orders-create-wizard .ocw-file-field,
.ocw-file-field {
    position: relative;
    display: block;
    width: 100%;
    min-height: 0;
}

#orders-create-wizard .ocw-file-field__input,
.ocw-file-field__input {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
    opacity: 0;
    pointer-events: none;
}

#orders-create-wizard .ocw-field label.ocw-file-field__trigger,
#orders-create-wizard .ocw-file-field__trigger,
.ocw-file-field__trigger,
.ocw-file-field__btn {
    display: flex !important;
    align-items: center;
    gap: 12px;
    width: 100%;
    min-height: 52px;
    margin: 0;
    padding: 10px 12px;
    border-radius: 12px;
    border: 1px dashed #cbd5e1;
    background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
    color: #0f172a !important;
    font-size: 12.5px;
    font-weight: 600;
    line-height: 1.25;
    cursor: pointer;
    box-shadow: none;
    transition: border-color 0.15s ease, background 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}

#orders-create-wizard .ocw-field label.ocw-file-field__trigger:hover,
#orders-create-wizard .ocw-file-field__trigger:hover,
.ocw-file-field__trigger:hover,
.ocw-file-field__btn:hover {
    border-color: #93c5fd;
    background: linear-gradient(180deg, #f8fbff 0%, #eff6ff 100%);
    /* Sin transform ni sombra elevada: el translateY creaba un stacking context
       que hacía "flotar" el control sobre los campos vecinos. Se mantiene plano
       e inline como el resto de los inputs del formulario. */
    box-shadow: inset 0 0 0 1px rgba(147, 197, 253, 0.35);
    transform: none;
    filter: none;
    color: #0f172a !important;
}

#orders-create-wizard .ocw-field label.ocw-file-field__trigger:active,
#orders-create-wizard .ocw-file-field__trigger:active,
.ocw-file-field__trigger:active,
.ocw-file-field__btn:active {
    transform: none;
}

#orders-create-wizard .ocw-field label.ocw-file-field__trigger.is-selected,
#orders-create-wizard .ocw-file-field__trigger.is-selected,
.ocw-file-field__trigger.is-selected {
    border-style: solid;
    border-color: #93c5fd;
    background: linear-gradient(180deg, #f8fbff 0%, #eff6ff 100%);
}

#orders-create-wizard .ocw-file-field__icon,
.ocw-file-field__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    flex: 0 0 34px;
    border-radius: 10px;
    background: #eff6ff;
    border: 1px solid #bfdbfe;
    color: #2563eb;
}

#orders-create-wizard .ocw-file-field__icon svg,
#orders-create-wizard .ocw-file-field__icon [data-lucide],
#orders-create-wizard .ocw-file-field__icon i,
.ocw-file-field__icon svg,
.ocw-file-field__icon [data-lucide],
.ocw-file-field__icon i,
.ocw-file-field__btn svg,
.ocw-file-field__btn [data-lucide],
.ocw-file-field__btn i {
    width: 16px;
    height: 16px;
    flex: 0 0 auto;
    color: inherit;
}

#orders-create-wizard .ocw-file-field__copy,
.ocw-file-field__copy {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
    flex: 1 1 auto;
    text-align: left;
}

#orders-create-wizard .ocw-file-field__title,
.ocw-file-field__title {
    display: block;
    color: #0f172a;
    font-size: 12.5px;
    font-weight: 800;
    line-height: 1.2;
}

#orders-create-wizard .ocw-file-field__name,
.ocw-file-field__name {
    display: block;
    min-width: 0;
    color: #64748b;
    font-size: 11.5px;
    font-weight: 600;
    line-height: 1.3;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

#orders-create-wizard .ocw-file-field__name.is-selected,
.ocw-file-field__name.is-selected {
    color: #1d4ed8;
}

#orders-create-wizard .ocw-file-field__chip,
.ocw-file-field__chip {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    min-height: 24px;
    padding: 0 10px;
    border-radius: 999px;
    border: 1px solid #dbeafe;
    background: #eff6ff;
    color: #1d4ed8;
    font-size: 10.5px;
    font-weight: 800;
    letter-spacing: 0.02em;
    text-transform: uppercase;
}

#orders-create-wizard .ocw-file-field__input:focus-visible + .ocw-file-field__trigger,
#orders-create-wizard .ocw-file-field__input:focus-visible + .ocw-file-field__btn,
.ocw-file-field__input:focus-visible + .ocw-file-field__trigger,
.ocw-file-field__input:focus-visible + .ocw-file-field__btn {
    outline: 2px solid #2563eb;
    outline-offset: 2px;
    border-color: #93c5fd;
}

#orders-create-wizard .ocw-step-panel[data-step="4"] .ocw-file-field__trigger,
#orders-create-wizard .ocw-step-panel[data-step="4"] .ocw-file-field__btn {
    min-height: 46px;
    padding: 8px 10px;
    border-radius: 10px;
    font-size: 12px;
}

#orders-create-wizard .ocw-step-panel[data-step="4"] .ocw-file-field__icon {
    width: 30px;
    height: 30px;
    flex-basis: 30px;
    border-radius: 9px;
}

#orders-create-wizard .ocw-step-panel[data-step="4"] .ocw-file-field__title {
    font-size: 12px;
}

#orders-create-wizard .ocw-step-panel[data-step="4"] .ocw-file-field__name {
    font-size: 11px;
}

#orders-create-wizard .ocw-step-panel[data-step="4"] .ocw-file-field__chip {
    min-height: 22px;
    padding: 0 8px;
    font-size: 10px;
}

#orders-create-wizard .ocw-step-panel[data-step="4"] .ocw-textarea--compact {
    min-height: 52px;
    max-height: 72px;
    resize: vertical;
    line-height: 1.35;
}

#orders-create-wizard .ocw-step-panel[data-step="4"] .ocw-location-actions {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    margin-top: -2px;
}

#orders-create-wizard .ocw-step-panel[data-step="4"] .ocw-location-actions .ocw-field-hint {
    margin: 0;
    font-size: 11px;
    line-height: 1.3;
}

#orders-create-wizard .ocw-step-panel[data-step="4"] .ocw-location-map {
    gap: 4px;
}

#orders-create-wizard .ocw-step-panel[data-step="4"] .ocw-map,
#orders-create-wizard .ocw-step-panel[data-step="4"] .ocw-map.ocw-map--compact {
    min-height: 168px;
    max-height: 168px;
    border-radius: 12px;
}

#orders-create-wizard .ocw-step-panel[data-step="4"] .ocw-map-info {
    display: block;
    margin-top: 2px;
    font-size: 11px;
    line-height: 1.3;
}

#orders-create-wizard .ocw-step-panel[data-step="4"] .ocw-btn--sm {
    min-height: 30px;
    padding: 4px 10px;
    font-size: 12px;
    gap: 6px;
}

#orders-create-wizard .ocw-step-panel[data-step="4"] .ocw-btn--sm svg,
#orders-create-wizard .ocw-step-panel[data-step="4"] .ocw-btn--sm i {
    width: 14px;
    height: 14px;
}

#orders-create-wizard.is-edit-mode .ocw-step-panel[data-step="4"] .ocw-form-grid--location {
    gap: 8px;
}

@media (max-width: 991px) {
    #orders-create-wizard .ocw-step-panel[data-step="4"] .ocw-form-grid--three {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 575px) {
    #orders-create-wizard .ocw-step-panel[data-step="4"] .ocw-form-grid--three {
        grid-template-columns: 1fr;
    }

    #orders-create-wizard .ocw-step-panel[data-step="4"] .ocw-map,
    #orders-create-wizard .ocw-step-panel[data-step="4"] .ocw-map.ocw-map--compact {
        min-height: 150px;
        max-height: 150px;
    }
}

.ocw-summary {
    padding: 18px;
    height: fit-content;
    position: sticky;
    top: 84px;
}

.ocw-summary h2 {
    margin: 0 0 14px;
    font-size: 15px;
    font-weight: 850;
}

.ocw-summary-list {
    display: grid;
    gap: 12px;
}

.ocw-summary-row {
    display: grid;
    grid-template-columns: 24px minmax(0, 1fr);
    gap: 10px;
    padding-bottom: 12px;
    border-bottom: 1px solid #edf2f7;
}

.ocw-summary-label {
    display: block;
    font-size: 11px;
    color: var(--ocw-muted);
    font-weight: 700;
}

.ocw-summary-value {
    display: block;
    font-size: 13px;
    color: var(--ocw-text);
    font-weight: 750;
}

.ocw-total {
    margin-top: 14px;
    padding: 18px;
    border-radius: 16px;
    background: linear-gradient(135deg, #ecfdf5, #f0fdfa);
    text-align: center;
    color: #047857;
}

.ocw-total strong {
    display: block;
    font-size: 26px;
    line-height: 1.1;
}

.ocw-actions {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: var(--ocw-space-3);
    padding: var(--ocw-space-4) var(--ocw-space-5);
    border-top: 1px solid #edf2f7;
    background: #fff;
}

.ocw-btn {
    border: 1px solid var(--ocw-border);
    border-radius: var(--ocw-btn-radius);
    background: #fff;
    color: #334155;
    min-height: var(--ocw-btn-height);
    padding: 0 18px;
    font-size: var(--ocw-font-sm);
    font-weight: 800;
    line-height: 1;
    cursor: pointer;
    display: inline-flex;
    gap: var(--ocw-space-2);
    align-items: center;
    justify-content: center;
    text-decoration: none;
    white-space: nowrap;
    transition: transform .15s ease, box-shadow .15s ease, background .15s ease, border-color .15s ease, color .15s ease;
}

.ocw-btn svg,
.ocw-btn [data-lucide] {
    width: var(--ocw-icon-size);
    height: var(--ocw-icon-size);
    flex: 0 0 auto;
}

.ocw-btn:hover {
    transform: translateY(-1px);
    box-shadow: var(--ocw-shadow-sm);
    color: inherit;
}

.ocw-btn--primary {
    background: var(--ocw-primary);
    border-color: var(--ocw-primary);
    color: #fff;
    box-shadow: 0 10px 22px rgba(37, 99, 235, .22);
}

.ocw-btn--primary:hover {
    background: #1d4ed8;
    border-color: #1d4ed8;
    color: #fff;
}

.ocw-btn--secondary {
    background: #fff;
    border-color: #cbd5e1;
    color: #334155;
    box-shadow: none;
}

.ocw-btn--secondary:hover {
    color: #0f172a;
    border-color: #94a3b8;
    background: #f8fafc;
}

.ocw-btn--success {
    background: var(--ocw-success);
    border-color: var(--ocw-success);
    color: #fff;
    box-shadow: 0 10px 22px rgba(22, 163, 74, .18);
}

.ocw-btn--success:hover {
    background: #15803d;
    border-color: #15803d;
    color: #fff;
}

.ocw-btn--warning {
    background: var(--ocw-warning);
    border-color: var(--ocw-warning);
    color: #fff;
    box-shadow: 0 10px 22px rgba(249, 115, 22, .18);
}

.ocw-btn--warning:hover {
    background: #ea580c;
    border-color: #ea580c;
    color: #fff;
}

.ocw-btn--danger {
    background: linear-gradient(180deg, #ef4444 0%, #dc2626 100%);
    border-color: #dc2626;
    color: #fff;
    box-shadow: 0 10px 22px rgba(220, 38, 38, 0.24);
}

.ocw-btn--danger:hover {
    background: linear-gradient(180deg, #dc2626 0%, #b91c1c 100%);
    border-color: #b91c1c;
    color: #fff;
}

.ocw-btn--ghost {
    background: #fff;
    border-color: var(--ocw-border);
    color: var(--ocw-muted);
    box-shadow: none;
}

.ocw-btn--ghost:hover {
    color: var(--ocw-primary);
    border-color: #93c5fd;
    background: #f8fbff;
}

.ocw-btn--sm {
    min-height: var(--ocw-btn-height-sm);
    padding: 0 12px;
    font-size: 12px;
    border-radius: var(--ocw-radius-sm);
}

.ocw-btn:focus-visible {
    outline: 2px solid var(--ocw-primary);
    outline-offset: 2px;
}

.ocw-btn:disabled,
.ocw-btn.is-disabled {
    opacity: .55;
    cursor: not-allowed;
    transform: none !important;
    box-shadow: none !important;
    pointer-events: none;
}

.ocw-btn.is-loading {
    position: relative;
    pointer-events: none;
}

.ocw-btn.is-loading > svg,
.ocw-btn.is-loading > [data-lucide],
.ocw-btn.is-loading #submitIcon {
    opacity: 0;
}

.ocw-btn.is-loading::after {
    content: "";
    position: absolute;
    width: 14px;
    height: 14px;
    border: 2px solid rgba(255, 255, 255, .35);
    border-top-color: #fff;
    border-radius: 999px;
    animation: ocwSpin .7s linear infinite;
}

.ocw-btn.is-loading:not(.ocw-btn--primary):not(.ocw-btn--success):not(.ocw-btn--warning)::after {
    border-color: rgba(15, 23, 42, .12);
    border-top-color: var(--ocw-primary);
}

.ocw-muted-box {
    padding: 14px;
    border-radius: 14px;
    background: #f8fafc;
    color: var(--ocw-muted);
    font-size: 13px;
}

.ocw-form-grid--service {
    gap: 12px;
}

.ocw-service-step {
    display: grid;
    gap: 10px;
}

.ocw-service-panels {
    display: grid;
    gap: 10px;
}

.ocw-service-panel {
    padding: 12px 14px;
    border: 1px solid #e8edf3;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 1px 2px rgba(15, 23, 42, .04);
}

.ocw-service-panel__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 10px;
    padding-bottom: 8px;
    border-bottom: 1px solid #f1f5f9;
}

.ocw-service-panel__title {
    display: block;
    font-size: 12px;
    font-weight: 700;
    color: #0f172a;
}

.ocw-service-panel__hint {
    display: block;
    margin-top: 2px;
    font-size: 11px;
    line-height: 1.4;
    color: #94a3b8;
}

.ocw-service-access-empty {
    grid-column: 1 / -1;
    margin: 0;
    padding: 6px 0 2px;
    font-size: 11px;
    color: #94a3b8;
}

.ocw-service-ipv6-auto {
    grid-column: 1 / -1;
    padding: 8px 10px;
    border-radius: 8px;
    border: 1px solid #dbeafe;
    background: #f8fbff;
    font-size: 11px;
    line-height: 1.45;
    color: #475569;
}

.ocw-service-ipv6-auto__pools {
    display: block;
    margin-top: 4px;
    color: #1d4ed8;
    font-weight: 600;
}

.ocw-service-ipv6-auto__assigned {
    display: block;
    margin-top: 4px;
    color: #0f766e;
    font-weight: 600;
}

.ocw-service-ipv6-auto__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin-top: 8px;
}

.ocw-service-ipv6-auto__hint {
    color: #64748b;
    font-size: 10px;
    line-height: 1.4;
}

.oaw-scan-ipv6-btn[disabled] {
    opacity: 0.65;
    cursor: not-allowed;
}

.ocw-password-wrap {
    position: relative;
    display: flex;
    align-items: center;
}

.ocw-password-wrap .ocw-input {
    width: 100%;
    padding-right: 40px;
}

.ocw-password-toggle {
    position: absolute;
    right: 6px;
    top: 50%;
    transform: translateY(-50%);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: #64748b;
    cursor: pointer;
    padding: 0;
}

.ocw-password-toggle:hover {
    background: #f1f5f9;
    color: #1d4ed8;
}

.ocw-password-toggle[aria-pressed="true"] {
    color: #1d4ed8;
}

.ocw-password-toggle i,
.ocw-password-toggle svg {
    width: 16px;
    height: 16px;
}

.ocw-required {
    color: #ef4444;
    font-weight: 700;
}

.ocw-form-grid--service-inner {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px 12px;
    grid-column: 1 / -1;
}

.ocw-router-gate {
    padding: 12px 14px;
    border: 1px solid #dbeafe;
    border-radius: 12px;
    background: linear-gradient(180deg, #f8fbff 0%, #fff 100%);
    box-shadow: 0 1px 2px rgba(37, 99, 235, .06);
}

.ocw-router-gate__head {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin-bottom: 10px;
}

.ocw-router-gate__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 8px;
    background: #eff6ff;
    color: #2563eb;
}

.ocw-router-gate__head strong {
    display: block;
    font-size: 13px;
    color: #0f172a;
}

.ocw-router-gate__head p {
    margin: 2px 0 0;
    font-size: 11px;
    line-height: 1.4;
    color: #64748b;
}

.ocw-router-gate__label {
    display: block;
    margin-bottom: 6px;
    font-size: 11px;
    font-weight: 700;
    color: #475569;
}

.ocw-router-mode-badge {
    display: inline-flex;
    margin-top: 8px;
    padding: 3px 10px;
    border-radius: 999px;
    background: #eff6ff;
    border: 1px solid #bfdbfe;
    color: #1d4ed8;
    font-size: 11px;
    font-weight: 700;
}

.ocw-service-form-body {
    grid-column: 1 / -1;
    display: grid;
    gap: 8px;
}

.ocw-form-section-title {
    grid-column: 1 / -1;
    margin-top: 4px;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: #64748b;
}

.ocw-form-section-title::after {
    content: '';
    display: block;
    height: 1px;
    margin-top: 6px;
    background: #e8edf3;
}

@media (max-width: 768px) {
    .ocw-form-grid--service-inner {
        grid-template-columns: 1fr;
    }
}

.ocw-form-grid--billing {
    gap: 12px;
}

.ocw-equipment-step {
    display: grid;
    gap: 12px;
}

.ocw-equipment-warehouse {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 14px;
    border: 1px solid #dbeafe;
    border-radius: 12px;
    background: linear-gradient(180deg, #f8fbff 0%, #fff 100%);
}

.ocw-equipment-warehouse__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 8px;
    background: #eff6ff;
    color: #2563eb;
    flex-shrink: 0;
}

.ocw-equipment-warehouse__body {
    flex: 1;
    min-width: 0;
}

.ocw-equipment-warehouse__body strong {
    display: block;
    font-size: 13px;
    color: #0f172a;
}

.ocw-equipment-warehouse__body p {
    margin: 3px 0 0;
    font-size: 12px;
    line-height: 1.4;
    color: #64748b;
}

.ocw-equipment-warehouse__body span {
    color: #1d4ed8;
    font-weight: 700;
}

.ocw-equipment-panels {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.ocw-equipment-panels--stacked {
    grid-template-columns: 1fr;
    gap: 14px;
}

.ocw-equipment-panels.is-disabled {
    opacity: .72;
}

.ocw-equipment-panel {
    border: 1px solid #e8edf3;
    border-radius: 12px;
    background: #fff;
    padding: 14px 16px;
    box-shadow: 0 1px 2px rgba(15, 23, 42, .04);
}

.ocw-equipment-panel__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 10px;
    padding-bottom: 10px;
    border-bottom: 1px solid #eef2f6;
}

.ocw-equipment-panel__title {
    display: block;
    font-size: 13px;
    font-weight: 800;
    color: #0f172a;
}

.ocw-equipment-panel__hint {
    display: block;
    margin-top: 2px;
    font-size: 11px;
    color: #94a3b8;
}

.ocw-equipment-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 24px;
    height: 24px;
    padding: 0 7px;
    border-radius: 999px;
    background: #eff6ff;
    color: #1d4ed8;
    font-size: 12px;
    font-weight: 800;
}

.ocw-equipment-form {
    display: grid;
    grid-template-columns: 140px minmax(0, 1fr) auto;
    gap: 10px 12px;
    align-items: end;
    margin-bottom: 10px;
}

.ocw-equipment-form--materials {
    grid-template-columns: minmax(0, 2.2fr) 170px 92px minmax(0, 1.6fr) auto;
}

.ocw-equipment-form__field label {
    display: block;
    margin-bottom: 5px;
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: #94a3b8;
}

.ocw-equipment-form__field--grow {
    min-width: 0;
}

.ocw-equipment-form__field--qty {
    min-width: 92px;
}

.ocw-equipment-form__field--type {
    min-width: 170px;
}

.ocw-equipment-form__field--notes {
    min-width: 0;
}

.ocw-equipment-form__submit {
    align-self: end;
    white-space: nowrap;
}

.ocw-select--compact,
.ocw-input--compact {
    min-height: 34px;
    padding-top: 6px;
    padding-bottom: 6px;
    font-size: 12px;
}

.ocw-equipment-step .ocw-select--compact,
.ocw-equipment-step .ocw-input--compact {
    min-height: 40px;
    padding: 8px 11px;
    font-size: 13px;
}

.ocw-equipment-step .ocw-btn--sm {
    min-height: 40px;
    padding: 0 14px;
    font-size: 12px;
}

.ocw-equipment-list {
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-height: 64px;
}

.ocw-equipment-chip {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 8px 10px;
    border: 1px solid #e8edf3;
    border-radius: 8px;
    background: #f8fafc;
}

.ocw-equipment-chip__main {
    min-width: 0;
}

.ocw-equipment-chip__type {
    display: block;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .04em;
    color: #64748b;
}

.ocw-equipment-chip__meta {
    display: block;
    font-size: 12px;
    font-weight: 700;
    color: #0f172a;
    line-height: 1.35;
    word-break: break-word;
}

.ocw-equipment-chip__actions {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    flex-shrink: 0;
}

.ocw-equipment-chip__status {
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    color: #64748b;
}

.ocw-equipment-chip__remove {
    border: 0;
    background: #fee2e2;
    color: #b91c1c;
    width: 26px;
    height: 26px;
    border-radius: 6px;
    font-size: 15px;
    line-height: 1;
    cursor: pointer;
}

.ocw-equipment-empty {
    margin: 0;
    padding: 10px 0;
    font-size: 12px;
    color: #94a3b8;
}

.ocw-equipment-required {
    padding: 10px 12px;
    border-radius: 8px;
    border: 1px solid #fecaca;
    background: #fef2f2;
    color: #b91c1c;
    font-size: 12px;
    line-height: 1.45;
}

@media (max-width: 992px) {
    .ocw-equipment-form,
    .ocw-equipment-form--materials {
        grid-template-columns: 1fr;
    }

    .ocw-equipment-form__submit {
        width: 100%;
    }
}

.ocw-field--full {
    grid-column: 1 / -1;
}

.ocw-field-hint {
    margin: 6px 0 0;
    font-size: 11px;
    color: var(--ocw-muted);
    line-height: 1.4;
}

.ocw-billing-config-preview {
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    background: linear-gradient(180deg, #f8fafc 0%, #fff 42%);
    padding: 10px 12px;
    box-shadow: 0 1px 2px rgba(15, 23, 42, .04);
}

.ocw-billing-config-empty {
    margin: 0;
    color: var(--ocw-muted);
    font-size: 12px;
    line-height: 1.45;
}

.ocw-billing-preview__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 8px;
    padding-bottom: 8px;
    border-bottom: 1px solid #e8edf3;
}

.ocw-billing-preview__head-label {
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: #94a3b8;
}

.ocw-billing-preview__head-name {
    max-width: 68%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 11px;
    font-weight: 700;
    color: #1d4ed8;
    background: #eff6ff;
    border: 1px solid #dbeafe;
    padding: 2px 9px;
    border-radius: 999px;
}

.ocw-billing-preview__groups {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.ocw-billing-preview-group {
    display: grid;
    grid-template-columns: 92px minmax(0, 1fr);
    gap: 8px;
    align-items: start;
}

.ocw-billing-preview-group__title {
    padding-top: 5px;
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: #64748b;
}

.ocw-billing-preview-group__chips {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
}

.ocw-billing-chip {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    min-height: 26px;
    padding: 3px 8px;
    border: 1px solid #e8edf3;
    border-radius: 7px;
    background: #fff;
    font-size: 11px;
    line-height: 1.2;
    box-shadow: 0 1px 1px rgba(15, 23, 42, .03);
}

.ocw-billing-chip__label {
    font-size: 9px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: #94a3b8;
}

.ocw-billing-val {
    font-size: 11px;
    font-weight: 700;
    color: #0f172a;
}

.ocw-billing-val--yes {
    color: #059669;
}

.ocw-billing-val--muted {
    color: #64748b;
    font-weight: 600;
}

.ocw-billing-install-strip {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
}

.ocw-billing-install-chip {
    padding: 7px 9px;
    border: 1px solid #e8edf3;
    border-radius: 9px;
    background: #f8fafc;
}

.ocw-billing-install-chip__label {
    display: block;
    margin-bottom: 1px;
    font-size: 9px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: #94a3b8;
}

.ocw-billing-install-chip__value {
    display: block;
    font-size: 11px;
    font-weight: 700;
    color: #0f172a;
    line-height: 1.25;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

@media (max-width: 992px) {
    .ocw-billing-install-strip {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 768px) {
    .ocw-billing-preview-group {
        grid-template-columns: 1fr;
        gap: 4px;
    }

    .ocw-billing-preview-group__title {
        padding-top: 0;
    }

    .ocw-billing-install-strip {
        grid-template-columns: 1fr;
    }
}

.ocw-review-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.ocw-review-card {
    border: 1px solid var(--ocw-border);
    border-radius: 15px;
    padding: 14px;
    background: #fff;
}

.ocw-review-card h3 {
    margin: 0 0 10px;
    font-size: 14px;
    font-weight: 850;
}

.ocw-service-request-strip {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 16px;
}

.ocw-service-request-chip {
    display: inline-flex;
    align-items: center;
    padding: 4px 10px;
    border-radius: 999px;
    background: #eef2ff;
    color: #3730a3;
    font-size: 12px;
    font-weight: 600;
}

.ocw-activation-summary-intro {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    padding: 14px 16px;
    margin-bottom: 16px;
    border: 1px solid var(--ocw-border);
    border-radius: 12px;
    background: #f9fafb;
}

.ocw-activation-summary-intro i {
    width: 20px;
    height: 20px;
    color: #4f46e5;
    flex-shrink: 0;
    margin-top: 2px;
}

.ocw-activation-summary-intro p {
    margin: 4px 0 0;
    color: #6b7280;
    font-size: 13px;
}

.ocw-doc-signatures {
    margin-top: 20px;
    padding: 16px;
    border: 1px solid var(--ocw-border);
    border-radius: 14px;
    background: #fff;
}

.ocw-doc-signatures__head {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    align-items: flex-start;
    justify-content: space-between;
    margin-bottom: 14px;
}

.ocw-doc-signatures__title {
    margin: 0 0 4px;
    font-size: 1rem;
    font-weight: 800;
    color: var(--ocw-text);
}

.ocw-doc-signatures__copy {
    margin: 0;
    color: #6b7280;
    font-size: 13px;
    max-width: 52ch;
}

.ocw-doc-signatures__links {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.ocw-doc-signatures__status {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 14px;
}

.ocw-doc-signatures__badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 10px;
    border-radius: 999px;
    border: 1px solid #e5e7eb;
    background: #f9fafb;
    color: #6b7280;
    font-size: 12px;
    font-weight: 600;
}

.ocw-doc-signatures__badge.is-done {
    border-color: #bbf7d0;
    background: #ecfdf5;
    color: #047857;
}

.ocw-doc-signatures__badge i,
.ocw-doc-signatures__badge svg {
    width: 14px;
    height: 14px;
}

.ocw-doc-signatures__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.ocw-doc-signatures__footer {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    align-items: center;
    margin-top: 14px;
    padding-top: 14px;
    border-top: 1px solid var(--ocw-border);
}

.ocw-doc-signatures__hint {
    color: #6b7280;
    font-size: 12px;
}

.ocw-doc-photos {
    margin-top: 20px;
    padding: 16px;
    border: 1px solid var(--ocw-border);
    border-radius: 14px;
    background: #fff;
}

.ocw-doc-photos__head {
    margin-bottom: 14px;
}

.ocw-doc-photos__title {
    margin: 0 0 4px;
    font-size: 1rem;
    font-weight: 800;
    color: var(--ocw-text);
}

.ocw-doc-photos__copy {
    margin: 0;
    color: #6b7280;
    font-size: 13px;
    max-width: 58ch;
}

.ocw-doc-photos__status {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 14px;
}

.ocw-doc-photos__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
}

.ocw-doc-photos__hint {
    margin-top: 12px;
    color: #6b7280;
    font-size: 12px;
}

.ocw-photo-block {
    display: grid;
    gap: 8px;
}

.ocw-photo-block__title {
    margin: 0;
    font-size: 0.88rem;
    font-weight: 800;
    color: var(--ocw-text);
}

.ocw-photo-block__preview {
    aspect-ratio: 4 / 3;
    border: 1px dashed var(--ocw-border);
    border-radius: 10px;
    background: #f9fafb;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
}

.ocw-photo-block__preview img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.ocw-photo-block__placeholder {
    color: #94a3b8;
    font-size: 12px;
}

.ocw-photo-block__capture {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 8px 12px;
    border: 1px solid var(--ocw-border);
    border-radius: 10px;
    background: #fff;
    color: #334155;
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
}

.ocw-photo-block__capture:hover {
    background: #f8fafc;
}

.ocw-photo-block__capture input {
    display: none;
}

.ocw-photo-block__capture i,
.ocw-photo-block__capture svg {
    width: 16px;
    height: 16px;
}

@media (max-width: 900px) {
    .ocw-doc-photos__grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 900px) {
    .ocw-doc-signatures__grid {
        grid-template-columns: 1fr;
    }
}

.ocw-coordinates-wrap {
    display: flex;
    flex-wrap: nowrap;
    align-items: stretch;
    gap: 8px;
    width: 100%;
    max-width: 420px;
}

.ocw-coordinates-wrap__input,
.ocw-coordinates-wrap .ocw-input {
    flex: 1 1 auto;
    min-width: 0;
    max-width: 240px;
    width: auto;
}

.ocw-coordinates-wrap__btn,
.ocw-coordinates-wrap .ocw-btn {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-width: 72px;
    min-height: 38px;
    padding: 0 12px;
    white-space: nowrap;
    border-radius: 10px;
}

.ocw-coordinates-wrap__btn i,
.ocw-coordinates-wrap__btn svg,
.ocw-coordinates-wrap .ocw-btn i,
.ocw-coordinates-wrap .ocw-btn svg {
    width: 16px;
    height: 16px;
    flex-shrink: 0;
}

.ocw-coordinates-wrap__label {
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.02em;
}

#orders-activation-wizard .ocw-field--coords {
    grid-column: 1 / -1;
}

#orders-activation-wizard .ocw-map {
    min-height: 320px;
}

@media (max-width: 520px) {
    .ocw-coordinates-wrap {
        max-width: 100%;
    }

    .ocw-coordinates-wrap__input,
    .ocw-coordinates-wrap .ocw-input {
        max-width: none;
        flex: 1 1 100%;
    }

    .ocw-coordinates-wrap__label {
        display: none;
    }

    .ocw-coordinates-wrap__btn,
    .ocw-coordinates-wrap .ocw-btn {
        min-width: 40px;
        padding-inline: 10px;
    }
}

@media (max-width: 1180px) {
    .ocw-shell {
        grid-template-columns: 220px minmax(0, 1fr);
    }
    .ocw-summary {
        grid-column: 1 / -1;
        position: static;
    }
}

@media (max-width: 860px) {
    .ocw-page {
        padding: 12px;
        overflow-x: hidden;
        max-width: 100vw;
    }
    .ocw-shell,
    .ocw-form-grid,
    .ocw-form-grid--three,
    .ocw-choice-grid,
    .ocw-choice-grid--two,
    .ocw-mode-grid,
    .ocw-review-grid {
        grid-template-columns: 1fr;
    }
    .ocw-sidebar {
        position: static;
    }
    .ocw-header {
        align-items: flex-start;
        flex-direction: column;
    }
    .ocw-scope-card {
        padding: 16px;
    }
    .ocw-scope-option {
        min-height: 88px;
        grid-template-columns: 40px minmax(0, 1fr) 24px;
        padding: 14px;
    }
    .ocw-scope-option__icon {
        width: 40px;
        height: 40px;
        border-radius: 12px;
    }
    .ocw-scope-actions {
        margin: 16px -16px -16px;
        padding: 12px 16px;
    }
    .ocw-actions {
        flex-direction: column-reverse;
        align-items: stretch;
    }
    .ocw-actions .ocw-btn,
    .ocw-actions > * {
        width: 100%;
        justify-content: center;
    }
    .ocw-summary {
        position: static;
        width: 100%;
    }
}

@media (max-width: 768px) {
    .ocw-equipment-form,
    .ocw-equipment-form--materials {
        grid-template-columns: 1fr !important;
    }

    .ocw-equipment-form__submit,
    .ocw-equipment-form__field--grow,
    .ocw-equipment-form__field--qty,
    .ocw-equipment-form__field--type,
    .ocw-equipment-form__field--notes {
        width: 100%;
        min-width: 0;
    }

    .ocw-equipment-form__submit .ocw-btn,
    .ocw-equipment-form__submit button {
        width: 100%;
    }

    .ocw-map,
    .ocw-map-frame,
    #ocw-map,
    .leaflet-container {
        min-height: 240px !important;
    }
}

/* --- OS-2.9B.1 Enterprise wizard polish --- */
.ocw-step-progress-label {
    margin: 10px 0 0;
    font-size: 12px;
    font-weight: 800;
    color: var(--ocw-text);
    letter-spacing: -0.01em;
}

.ocw-progress-mini {
    margin-top: 14px;
    padding-top: 12px;
}

.ocw-card-head {
    padding: 18px 20px 14px;
}

.ocw-form-grid--agenda {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    margin-bottom: 12px;
}

.ocw-tech-intel-card {
    border: 1px solid #dbeafe;
    border-radius: 14px;
    background: linear-gradient(135deg, #ffffff 0%, #f8fbff 100%);
    padding: 12px 14px;
    margin-bottom: 12px;
}

.ocw-tech-intel-card__head {
    display: flex;
    align-items: center;
    gap: 10px;
}

.ocw-tech-intel-card__avatar {
    width: 40px;
    height: 40px;
    border-radius: 999px;
    background: #2563eb;
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 13px;
    font-weight: 800;
    flex: 0 0 auto;
}

.ocw-tech-intel-card__head strong {
    display: block;
    font-size: 14px;
    line-height: 1.2;
}

.ocw-tech-intel-card__status {
    display: block;
    margin-top: 2px;
    font-size: 11px;
    font-weight: 700;
    color: var(--ocw-muted);
}

.ocw-tech-intel-card__status.is-success { color: #16a34a; }
.ocw-tech-intel-card__status.is-warning { color: #ea580c; }
.ocw-tech-intel-card__status.is-muted { color: var(--ocw-muted); }

.ocw-tech-intel-card__facts {
    list-style: none;
    margin: 10px 0 0;
    padding: 0;
    display: grid;
    gap: 6px;
}

.ocw-tech-intel-card__facts li {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 12px;
    color: #334155;
}

.ocw-tech-intel-card__facts svg {
    width: 14px;
    height: 14px;
    color: #2563eb;
    flex: 0 0 auto;
}

.ocw-schedule-section {
    margin-top: 4px;
}

.ocw-schedule-section__head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 8px;
}

.ocw-schedule-section__label {
    font-size: 13px;
    font-weight: 800;
    color: var(--ocw-text);
}

.ocw-schedule-section__hint {
    font-size: 11px;
    color: var(--ocw-muted);
}

.ocw-schedule-slots {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(92px, 1fr));
    gap: 8px;
}

.ocw-schedule-slots__empty {
    grid-column: 1 / -1;
    padding: 12px;
    border-radius: 12px;
    background: #f8fafc;
    color: var(--ocw-muted);
    font-size: 12px;
}

.ocw-schedule-slot {
    min-height: 58px;
    border: 1px solid #dbeafe;
    border-radius: 12px;
    background: #fff;
    padding: 8px 10px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2px;
    cursor: pointer;
    transition: border-color .15s ease, background .15s ease, box-shadow .15s ease, transform .15s ease;
}

.ocw-schedule-slot__time {
    font-size: 13px;
    font-weight: 800;
    color: #0f172a;
}

.ocw-schedule-slot__state {
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: #64748b;
}

.ocw-schedule-slot.is-available:hover {
    border-color: #93c5fd;
    box-shadow: 0 8px 18px rgba(37, 99, 235, .12);
    transform: translateY(-1px);
}

.ocw-schedule-slot.is-selected {
    border-color: #2563eb;
    background: #2563eb;
    box-shadow: 0 10px 22px rgba(37, 99, 235, .24);
}

.ocw-schedule-slot.is-selected .ocw-schedule-slot__time,
.ocw-schedule-slot.is-selected .ocw-schedule-slot__state {
    color: #fff;
}

.ocw-schedule-slot.is-busy,
.ocw-schedule-slot:disabled {
    border-color: #e2e8f0;
    background: #f8fafc;
    cursor: not-allowed;
    opacity: .78;
}

.ocw-schedule-slot.is-busy .ocw-schedule-slot__time {
    color: #94a3b8;
    text-decoration: line-through;
}

.ocw-schedule-loading {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 8px;
    font-size: 12px;
    color: var(--ocw-muted);
}

.ocw-spinner {
    width: 14px;
    height: 14px;
    border: 2px solid #dbeafe;
    border-top-color: #2563eb;
    border-radius: 999px;
    animation: ocwSpin .7s linear infinite;
}

@keyframes ocwSpin {
    to { transform: rotate(360deg); }
}

.ocw-conflict-card {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin-top: 10px;
    padding: 12px 14px;
    border: 1px solid #fdba74;
    border-radius: 12px;
    background: var(--ocw-warning-soft);
    color: #9a3412;
}

.ocw-conflict-card svg {
    width: 18px;
    height: 18px;
    flex: 0 0 auto;
    margin-top: 1px;
}

.ocw-conflict-card strong {
    display: block;
    font-size: 12px;
    margin-bottom: 2px;
}

.ocw-conflict-card p {
    font-size: 12px;
    line-height: 1.35;
}

.ocw-summary-status {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 12px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--ocw-border);
}

.ocw-summary-status__label {
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--ocw-muted);
}

.ocw-summary-status__badge {
    font-size: 11px;
    font-weight: 800;
    color: #2563eb;
    background: #eff6ff;
    border-radius: 999px;
    padding: 4px 10px;
}

.ocw-total.is-hidden {
    display: none !important;
}

@keyframes ocwSpin {
    to { transform: rotate(360deg); }
}

@media (max-width: 1366px) {
    .ocw-shell {
        grid-template-columns: 220px minmax(0, 1fr) 270px;
        gap: 14px;
    }
}

@media (max-width: 1280px) {
    .ocw-form-grid--agenda {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .ocw-schedule-slots {
        grid-template-columns: repeat(auto-fill, minmax(84px, 1fr));
    }
}

/* --- OS-2.9B.2A Design System · Alerts --- */
.ocw-alert,
.ocw-validation-alert {
    display: flex;
    align-items: flex-start;
    gap: var(--ocw-space-2);
    padding: 12px 14px;
    border-radius: var(--ocw-radius-md);
    border: 1px solid transparent;
    font-size: var(--ocw-font-md);
    line-height: 1.45;
}

.ocw-alert-success,
.ocw-alert.is-success {
    background: var(--ocw-success-soft);
    border-color: #bbf7d0;
    color: #166534;
}

.ocw-alert-info,
.ocw-alert.is-info {
    background: var(--ocw-info-soft);
    border-color: #bfdbfe;
    color: #1e40af;
}

.ocw-alert-warning,
.ocw-alert.is-warning {
    background: var(--ocw-warning-soft);
    border-color: #fdba74;
    color: #9a3412;
}

.ocw-alert-danger,
.ocw-alert.is-danger,
.ocw-validation-alert {
    background: var(--ocw-danger-soft);
    border-color: #fecaca;
    color: #991b1b;
}

.ocw-alert.is-muted {
    background: #f8fafc;
    border-color: #e2e8f0;
    color: #475569;
}

.ocw-validation-alert {
    align-items: center;
    margin: 0 0 18px;
    padding: 13px 15px;
    border-radius: var(--ocw-radius-lg);
    font-size: 13px;
    font-weight: 700;
}

.ocw-validation-alert.is-success {
    background: var(--ocw-success-soft);
    border-color: #bbf7d0;
    color: #166534;
}

.ocw-validation-alert.is-error,
.ocw-validation-alert:not(.is-success) {
    background: var(--ocw-danger-soft);
    border-color: #fecaca;
    color: #991b1b;
}

.ocw-validation-alert svg {
    flex: 0 0 auto;
    width: var(--ocw-icon-size);
    height: var(--ocw-icon-size);
}

/* --- OS-2.9B.2A Design System · Badges --- */
.ocw-badge,
.ocw-badge--status,
.ocw-badge--priority,
.ocw-badge--document,
.ocw-badge--workflow {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 3px 8px;
    border-radius: 999px;
    font-size: var(--ocw-font-xs);
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: 0.02em;
    white-space: nowrap;
}

.ocw-badge--document {
    border-radius: var(--ocw-radius-sm);
    border: 1px solid var(--ocw-border);
    background: #fff;
    color: var(--ocw-muted);
    text-transform: uppercase;
}

.ocw-badge--priority {
    border-radius: var(--ocw-radius-sm);
    text-transform: uppercase;
}

.ocw-badge--workflow {
    border: 1px solid var(--ocw-border);
    background: #f8fafc;
    color: #475569;
}

.ocw-badge.is-muted,
.ocw-badge--status.is-muted { color: #475569; background: #f1f5f9; }
.ocw-badge.is-primary,
.ocw-badge--status.is-primary { color: #1d4ed8; background: var(--ocw-primary-soft); }
.ocw-badge.is-warning,
.ocw-badge--status.is-warning,
.ocw-badge--priority.is-urgente { color: #c2410c; background: var(--ocw-warning-soft); }
.ocw-badge.is-success,
.ocw-badge--status.is-success,
.ocw-badge--document.is-done { color: #15803d; background: var(--ocw-success-soft); border-color: #bbf7d0; }
.ocw-badge.is-danger,
.ocw-badge--status.is-danger,
.ocw-badge--priority.is-critica { color: #b91c1c; background: var(--ocw-danger-soft); }
.ocw-badge--priority.is-normal { color: var(--ocw-muted); background: #f8fafc; }
.ocw-badge--document.is-pending { color: #94a3b8; }

/* --- OS-2.9B.2 Enterprise form unification --- */
.ocw-page--document {
    max-width: 1320px;
    margin: 0 auto;
    padding: 12px 0 24px;
}

.ocw-doc-card {
    border: 1px solid var(--ocw-border);
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 14px 35px rgba(15, 23, 42, 0.05);
    overflow: hidden;
}

.ocw-doc-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
    padding: 16px 20px;
    border-bottom: 1px solid #edf2f7;
    background: linear-gradient(135deg, #ffffff 0%, #f8fbff 100%);
}

.ocw-doc-kicker {
    display: inline-flex;
    margin-bottom: 4px;
    color: var(--ocw-primary);
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.ocw-doc-title {
    margin: 0;
    font-size: 1.25rem;
    font-weight: 800;
    letter-spacing: -0.02em;
    color: var(--ocw-text);
}

.ocw-doc-subtitle {
    margin: 4px 0 0;
    font-size: 0.88rem;
    color: var(--ocw-muted);
}

.ocw-doc-header__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.ocw-doc-body {
    padding: 18px 20px 20px;
}

.ocw-info-panel {
    border: 1px solid var(--ocw-border);
    border-radius: 14px;
    background: #f8fafc;
    padding: 14px;
    height: 100%;
}

.ocw-info-panel.is-plain {
    background: #fff;
}

.ocw-info-panel__title {
    margin: 0 0 8px;
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--ocw-primary);
}

.ocw-info-panel__body {
    font-size: 0.88rem;
    color: #334155;
    line-height: 1.45;
}

.ocw-info-panel__body strong {
    color: var(--ocw-text);
}

.ocw-info-panel__meta {
    display: block;
    color: var(--ocw-muted);
    font-size: 0.82rem;
}

.ocw-doc-section {
    margin-top: 18px;
    padding-top: 18px;
    border-top: 1px solid #edf2f7;
}

.ocw-doc-section__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    flex-wrap: wrap;
    margin-bottom: 12px;
}

.ocw-doc-section__title {
    margin: 0;
    font-size: 0.95rem;
    font-weight: 800;
    color: var(--ocw-text);
}

.ocw-alert {
    display: block;
}

.ocw-signature-block {
    display: grid;
    gap: 10px;
}

.ocw-signature-block__title {
    margin: 0;
    font-size: 0.92rem;
    font-weight: 800;
    color: var(--ocw-text);
}

.ocw-signature-pad {
    touch-action: none;
    cursor: crosshair;
    border: 1px solid var(--ocw-border);
    border-radius: 12px;
    background: #fff;
    width: 100%;
    height: 120px;
    display: block;
}

.ocw-signature-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.ocw-table-wrap {
    max-width: 100%;
    overflow-x: auto;
    border: 1px solid var(--ocw-border);
    border-radius: 12px;
}

.ocw-table {
    width: 100%;
    min-width: 1080px;
    margin: 0;
    border-collapse: collapse;
    font-size: 0.82rem;
}

.ocw-table th,
.ocw-table td {
    padding: 8px 10px;
    border-bottom: 1px solid #edf2f7;
    vertical-align: middle;
}

.ocw-table th {
    background: #f8fafc;
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--ocw-muted);
    text-align: left;
}

.ocw-table .ocw-input,
.ocw-table .ocw-select {
    min-height: var(--ocw-btn-height-sm);
    font-size: var(--ocw-font-sm);
}

/* --- OS-2.9B.2A Design System · Modals (Bootstrap extension) --- */
.ocw-modal .modal-content,
.ocw-modal .ws-orders-modal.modal-content,
.ws-orders-modal.modal-content {
    border: 1px solid var(--ocw-border);
    border-radius: var(--ocw-radius-lg);
    box-shadow: var(--ocw-shadow-lg);
    overflow: hidden;
}

.ocw-modal .modal-header,
.ws-orders-modal .modal-header {
    padding: var(--ocw-space-4) var(--ocw-space-5);
    border-bottom: 1px solid #edf2f7;
    background: linear-gradient(135deg, #ffffff 0%, #f8fbff 100%);
}

.ocw-modal .modal-title,
.ws-orders-modal .modal-title {
    font-size: 1rem;
    font-weight: 800;
    color: var(--ocw-text);
}

.ocw-modal .modal-body,
.ws-orders-modal .modal-body {
    padding: 18px var(--ocw-space-5);
}

.ocw-modal .modal-body .ocw-input,
.ocw-modal .modal-body .ocw-select,
.ws-orders-modal .modal-body .ocw-input,
.ws-orders-modal .modal-body .ocw-select {
    min-height: var(--ocw-control-height);
}

.ocw-modal .modal-footer,
.ws-orders-modal .modal-footer {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    padding: 14px var(--ocw-space-5);
    border-top: 1px solid #edf2f7;
    background: #fafbfd;
    gap: var(--ocw-space-2);
}

.ocw-modal .modal-footer .ocw-btn,
.ws-orders-modal .modal-footer .ocw-btn {
    min-width: 120px;
}

.ocw-form-actions {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    margin-top: 16px;
}

@media (max-width: 1280px) {
    .ocw-doc-header {
        align-items: flex-start;
    }
}

@media (max-width: 860px) {
    .ocw-page--document {
        padding: 8px 0 18px;
    }

    .ocw-doc-body {
        padding: 14px;
    }
}

/* --- OS-2.9B.2B Edit order visual consistency --- */
.ocw-page.is-edit-mode {
    --ocw-edit-accent: #7c3aed;
    --ocw-edit-accent-soft: #f5f3ff;
}

.ocw-page.is-edit-mode .ocw-header {
    padding: 14px 16px;
    border: 1px solid #ddd6fe;
    border-radius: var(--ocw-radius-lg);
    background: linear-gradient(135deg, #ffffff 0%, var(--ocw-edit-accent-soft) 100%);
    box-shadow: var(--ocw-shadow-md);
}

.ocw-header-badge {
    margin-bottom: var(--ocw-space-2);
}

.ocw-page.is-edit-mode .ocw-title {
    color: #4c1d95;
}

.ocw-sidebar-context {
    margin-bottom: var(--ocw-space-4);
    padding: 14px;
    border: 1px solid #ddd6fe;
    border-radius: var(--ocw-radius-md);
    background: var(--ocw-edit-accent-soft);
}

.ocw-sidebar-context__head {
    display: grid;
    gap: 2px;
    margin-bottom: 10px;
    padding-bottom: 10px;
    border-bottom: 1px solid #e9d5ff;
}

.ocw-sidebar-context__kicker {
    font-size: var(--ocw-font-xs);
    font-weight: 800;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: #7c3aed;
}

.ocw-sidebar-context__code {
    font-size: 1rem;
    font-weight: 850;
    color: var(--ocw-text);
    letter-spacing: -0.02em;
}

.ocw-sidebar-context__list {
    display: grid;
    gap: 8px;
    margin: 0;
}

.ocw-sidebar-context__item {
    display: grid;
    gap: 2px;
}

.ocw-sidebar-context__item dt {
    margin: 0;
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--ocw-muted);
}

.ocw-sidebar-context__item dd {
    margin: 0;
    font-size: var(--ocw-font-sm);
    font-weight: 700;
    color: #334155;
    line-height: 1.35;
}

.ocw-summary-audit {
    display: grid;
    gap: 8px;
    margin-bottom: 12px;
    padding-bottom: 12px;
    border-bottom: 1px solid #edf2f7;
}

.ocw-summary-audit__row {
    display: grid;
    gap: 2px;
}

@media (max-width: 1366px) {
    .ocw-page.is-edit-mode .ocw-sidebar-context__list {
        grid-template-columns: 1fr 1fr;
        gap: 10px 12px;
    }

    .ocw-sidebar-context__item dt {
        font-size: 0.64rem;
    }
}

@media (max-width: 1180px) {
    .ocw-page.is-edit-mode .ocw-sidebar-context {
        margin-bottom: 12px;
    }

    .ocw-page.is-edit-mode .ocw-sidebar-context__list {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 860px) {
    .ocw-page.is-edit-mode .ocw-header {
        padding: 12px;
    }

    .ocw-page.is-edit-mode .ocw-top-actions {
        width: 100%;
    }

    .ocw-page.is-edit-mode .ocw-top-actions .ocw-btn {
        flex: 1 1 auto;
    }
}

/* --- OS-2.9B.2G Legacy signup deprecation --- */
.ocw-legacy-signup-page {
    max-width: 1480px;
    margin: 0 auto;
}

.ocw-legacy-signup-banner {
    margin-bottom: 18px;
    padding: 18px 20px;
    border: 1px solid #fdba74;
    border-radius: var(--ocw-radius-lg, 16px);
    background: linear-gradient(135deg, #fffbeb 0%, #fff7ed 100%);
    box-shadow: var(--ocw-shadow-md, 0 10px 24px rgba(15, 23, 42, 0.06));
}

.ocw-legacy-signup-banner__head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 12px;
    margin-bottom: 10px;
}

.ocw-legacy-signup-banner__title {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 800;
    color: var(--ocw-text, #0f172a);
    letter-spacing: -0.02em;
}

.ocw-legacy-signup-banner__text {
    margin: 0 0 12px;
    font-size: 0.92rem;
    line-height: 1.5;
    color: #7c2d12;
}

.ocw-legacy-signup-banner__meta {
    display: grid;
    gap: 8px;
    margin: 0 0 14px;
    padding: 12px 14px;
    border: 1px solid #fed7aa;
    border-radius: var(--ocw-radius-md, 12px);
    background: rgba(255, 255, 255, 0.72);
}

.ocw-legacy-signup-banner__meta-row {
    display: grid;
    grid-template-columns: minmax(120px, 160px) minmax(0, 1fr);
    gap: 8px 12px;
    font-size: 0.84rem;
    line-height: 1.45;
}

.ocw-legacy-signup-banner__meta-row dt {
    margin: 0;
    font-weight: 800;
    color: #9a3412;
}

.ocw-legacy-signup-banner__meta-row dd {
    margin: 0;
    color: #334155;
}

.ocw-legacy-signup-banner__meta-row code {
    font-size: 0.78rem;
    word-break: break-all;
}

.ocw-legacy-signup-banner__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: center;
}

.ocw-legacy-signup-banner__hint {
    flex: 1 1 280px;
    margin: 0;
    padding: 10px 12px;
}

.ocw-legacy-signup-form {
    position: relative;
    padding-top: 4px;
}

.ocw-legacy-signup-form::before {
    content: "Formulario legacy — solo compatibilidad";
    display: block;
    margin: 0 0 12px;
    padding: 8px 12px;
    border: 1px dashed #cbd5e1;
    border-radius: 10px;
    background: #f8fafc;
    color: #64748b;
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    text-transform: uppercase;
}

@media (max-width: 1280px) {
    .ocw-legacy-signup-banner__meta-row {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 860px) {
    .ocw-legacy-signup-banner {
        padding: 14px;
    }

    .ocw-legacy-signup-banner__actions {
        flex-direction: column;
        align-items: stretch;
    }

    .ocw-legacy-signup-banner__actions .ocw-btn {
        width: 100%;
        justify-content: center;
    }
}

/* --- Fase 1 responsive fixes: Crear/Editar Orden wizard only --- */
#orders-create-wizard {
    max-width: 100%;
    overflow-x: clip;
}

#orders-create-wizard,
#orders-create-wizard * {
    box-sizing: border-box;
}

#orders-create-wizard .ocw-shell {
    width: 100%;
    grid-template-columns: minmax(220px, 250px) minmax(0, 1fr) minmax(250px, 290px);
    align-items: start;
}

#orders-create-wizard .ocw-sidebar,
#orders-create-wizard .ocw-card,
#orders-create-wizard .ocw-summary,
#orders-create-wizard .ocw-step-panel,
#orders-create-wizard .ocw-choice,
#orders-create-wizard .ocw-service-config,
#orders-create-wizard .ocw-field,
#orders-create-wizard .ocw-actions,
#orders-create-wizard .ocw-actions > .d-flex {
    min-width: 0;
}

#orders-create-wizard .ocw-card {
    min-height: auto;
    overflow: visible;
}

#orders-create-wizard .ocw-card-head,
#orders-create-wizard .ocw-step-panel,
#orders-create-wizard .ocw-actions {
    width: 100%;
}

#orders-create-wizard .ocw-choice-grid,
#orders-create-wizard .ocw-form-grid,
#orders-create-wizard .ocw-form-grid--three,
#orders-create-wizard .ocw-form-grid--agenda,
#orders-create-wizard .ocw-mode-grid,
#orders-create-wizard .ocw-review-grid {
    min-width: 0;
}

#orders-create-wizard .ocw-choice {
    width: 100%;
    height: auto;
    overflow-wrap: break-word;
    word-break: normal;
}

#orders-create-wizard .ocw-choice h3,
#orders-create-wizard .ocw-choice p,
#orders-create-wizard .ocw-features,
#orders-create-wizard .ocw-service-title,
#orders-create-wizard .ocw-step-title,
#orders-create-wizard .ocw-step-copy,
#orders-create-wizard .ocw-sidebar-context__item dd,
#orders-create-wizard .ocw-summary-value {
    max-width: 100%;
    overflow-wrap: break-word;
    word-break: normal;
}

#orders-create-wizard .ocw-sidebar-context__list {
    min-width: 0;
}

#orders-create-wizard .ocw-actions {
    flex-wrap: wrap;
    align-items: center;
}

#orders-create-wizard .ocw-actions > .d-flex {
    flex-wrap: wrap;
    justify-content: flex-end;
}

#orders-create-wizard .ocw-map,
#orders-create-wizard .ws-leaflet-map {
    max-width: 100%;
}

@media (max-width: 1366px) and (min-width: 1201px) {
    #orders-create-wizard .ocw-shell {
        grid-template-columns: minmax(200px, 230px) minmax(0, 1fr) minmax(230px, 260px);
    }
}

@media (max-width: 1200px) {
    #orders-create-wizard .ocw-shell {
        grid-template-columns: minmax(190px, 220px) minmax(0, 1fr);
    }

    #orders-create-wizard .ocw-summary {
        grid-column: 1 / -1;
        position: static;
    }

    #orders-create-wizard .ocw-choice-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 16px;
    }

    #orders-create-wizard .ocw-choice {
        min-height: 176px;
        padding: 20px;
    }
}

@media (max-width: 1024px) {
    #orders-create-wizard {
        padding: 14px;
    }

    #orders-create-wizard .ocw-shell {
        grid-template-columns: 1fr;
        gap: 14px;
    }

    #orders-create-wizard .ocw-sidebar,
    #orders-create-wizard .ocw-summary {
        position: static;
        width: 100%;
    }

    #orders-create-wizard .ocw-sidebar {
        padding: 14px;
    }

    #orders-create-wizard .ocw-steps {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 8px;
    }

    #orders-create-wizard .ocw-step-nav {
        min-width: 0;
    }

    #orders-create-wizard .ocw-card-head {
        padding: 18px;
    }

    #orders-create-wizard .ocw-step-panel {
        padding: 16px 18px;
    }

    #orders-create-wizard .ocw-page.is-modal-step .ocw-step-panel,
    #orders-create-wizard.is-modal-step .ocw-step-panel {
        padding: 16px 18px 20px;
    }

    #orders-create-wizard .ocw-page.is-modal-step .ocw-actions,
    #orders-create-wizard.is-modal-step .ocw-actions {
        padding: 16px 18px;
    }

    #orders-create-wizard .ocw-form-grid--three,
    #orders-create-wizard .ocw-form-grid--agenda {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    #orders-create-wizard .ocw-map,
    #orders-create-wizard .ws-leaflet-map {
        min-height: 300px;
    }
}

@media (max-width: 768px) {
    #orders-create-wizard {
        padding: 12px;
    }

    #orders-create-wizard .ocw-header {
        gap: 12px;
    }

    #orders-create-wizard .ocw-top-actions {
        width: 100%;
        flex-wrap: wrap;
    }

    #orders-create-wizard .ocw-top-actions .ocw-btn {
        flex: 1 1 160px;
    }

    #orders-create-wizard .ocw-steps,
    #orders-create-wizard .ocw-choice-grid,
    #orders-create-wizard .ocw-choice-grid--two,
    #orders-create-wizard .ocw-form-grid,
    #orders-create-wizard .ocw-form-grid--three,
    #orders-create-wizard .ocw-form-grid--agenda,
    #orders-create-wizard .ocw-mode-grid,
    #orders-create-wizard .ocw-review-grid {
        grid-template-columns: 1fr;
    }

    #orders-create-wizard .ocw-choice,
    #orders-create-wizard .ocw-page.is-modal-step .ocw-choice,
    #orders-create-wizard.is-modal-step .ocw-choice,
    #orders-create-wizard .ocw-page.is-modal-step .ocw-choice-grid--two .ocw-choice,
    #orders-create-wizard.is-modal-step .ocw-choice-grid--two .ocw-choice {
        min-height: auto;
        padding: 18px;
    }

    #orders-create-wizard .ocw-choice-icon {
        width: 52px;
        height: 52px;
        margin-bottom: 14px;
    }

    #orders-create-wizard .ocw-search-box,
    #orders-create-wizard .ocw-result,
    #orders-create-wizard .ocw-result--compact {
        grid-template-columns: 1fr;
    }

    #orders-create-wizard .ocw-result__body strong,
    #orders-create-wizard .ocw-result__body small {
        white-space: normal;
        overflow: visible;
        text-overflow: clip;
    }

    #orders-create-wizard .ocw-selected-customer__actions {
        flex-wrap: wrap;
        justify-content: stretch;
    }

    #orders-create-wizard .ocw-selected-customer__actions .ocw-mini-btn {
        flex: 1 1 140px;
        justify-content: center;
    }

    #orders-create-wizard .ocw-detail-grid {
        grid-template-columns: 1fr;
    }

    #orders-create-wizard .ocw-customer-detail-panel__header {
        align-items: flex-start;
        flex-direction: column;
    }

    #orders-create-wizard .ocw-actions {
        align-items: stretch;
        flex-direction: column;
    }

    #orders-create-wizard .ocw-actions > .d-flex {
        width: 100%;
        justify-content: stretch;
    }

    #orders-create-wizard .ocw-actions .ocw-btn,
    #orders-create-wizard .ocw-actions > .d-flex .ocw-btn {
        flex: 1 1 140px;
    }

    #orders-create-wizard .ocw-map,
    #orders-create-wizard .ws-leaflet-map {
        min-height: 260px;
    }
}

@media (max-width: 576px) {
    #orders-create-wizard {
        padding: 10px;
        overflow-x: hidden;
    }

    #orders-create-wizard .ocw-header,
    #orders-create-wizard .ocw-sidebar,
    #orders-create-wizard .ocw-card,
    #orders-create-wizard .ocw-summary {
        border-radius: 14px;
    }

    #orders-create-wizard .ocw-card-head {
        padding: 16px 14px 12px;
    }

    #orders-create-wizard .ocw-step-title {
        font-size: 20px;
        line-height: 1.15;
    }

    #orders-create-wizard .ocw-step-panel,
    #orders-create-wizard.is-modal-step .ocw-step-panel {
        padding: 14px;
    }

    #orders-create-wizard .ocw-page.is-modal-step .ocw-card-head,
    #orders-create-wizard.is-modal-step .ocw-card-head {
        padding: 18px 14px 8px;
    }

    #orders-create-wizard .ocw-page.is-modal-step .ocw-step-panel,
    #orders-create-wizard.is-modal-step .ocw-step-panel {
        padding: 14px;
    }

    #orders-create-wizard .ocw-page.is-modal-step .ocw-actions,
    #orders-create-wizard.is-modal-step .ocw-actions,
    #orders-create-wizard .ocw-actions {
        padding: 14px;
    }

    #orders-create-wizard .ocw-sidebar-context__list {
        grid-template-columns: 1fr;
    }

    #orders-create-wizard .ocw-step-nav {
        grid-template-columns: 30px minmax(0, 1fr);
        padding: 8px 6px;
    }

    #orders-create-wizard .ocw-step-help {
        display: none;
    }

    #orders-create-wizard .ocw-choice {
        padding: 16px;
    }

    #orders-create-wizard .ocw-actions > .d-flex {
        flex-direction: column;
    }

    #orders-create-wizard .ocw-actions .ocw-btn,
    #orders-create-wizard .ocw-top-actions .ocw-btn,
    #orders-create-wizard .ocw-actions > .d-flex .ocw-btn {
        width: 100%;
        flex: 1 1 auto;
    }

    #orders-create-wizard .ocw-map,
    #orders-create-wizard .ws-leaflet-map {
        min-height: 230px;
    }
}

.ws-orders-saas-modal .ws-modal-header,
.ws-orders-saas-modal.ws-modal .ws-modal-header {
    padding: 18px 22px;
    border-bottom: 1px solid #edf2f7;
    background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
}

.ws-orders-saas-modal .ws-modal-title {
    font-size: 1.05rem;
    font-weight: 800;
    color: #0f172a;
}

.ws-orders-saas-modal .ws-modal-body {
    padding: 20px 22px;
}

.ws-orders-saas-modal .ws-modal-content,
.ws-orders-saas-modal.ws-modal .modal-content {
    border: 1px solid #e8edf3;
    border-radius: 16px;
    box-shadow: 0 24px 48px rgba(15, 23, 42, 0.14);
}

#oawCoordinatesMapModal .ocw-map {
    border-radius: 12px;
    overflow: hidden;
    border: 1px solid #e8edf3;
}

/* Traslado wizard (lo usan también retiro y otros wizards de 2 columnas).
 *
 * OJO: esta regla vive al final del archivo y tiene la misma especificidad que
 * el `.ocw-shell { grid-template-columns: 1fr }` del @media (max-width: 860px)
 * de más arriba, así que ganaba por orden y el wizard NUNCA colapsaba en móvil:
 * la barra lateral se comía 260px de una pantalla de 375px y el formulario (con
 * sus botones Anterior/Siguiente) quedaba fuera de la vista. Por eso se acota a
 * escritorio; el layout móvil lo resuelve el bloque del final del archivo. */
@media (min-width: 861px) {
    .ocw-shell--traslado {
        grid-template-columns: 260px minmax(0, 1fr);
        max-width: 1100px;
    }
}

.ocw-service-panel {
    margin-top: 18px;
    padding-top: 18px;
    border-top: 1px solid var(--ocw-border);
}

.ocw-subscription-list {
    display: grid;
    gap: 10px;
}

.ocw-subscription-option {
    display: flex;
    align-items: center;
    gap: 12px;
    width: 100%;
    padding: 14px 16px;
    border: 1px solid var(--ocw-border);
    border-radius: var(--ocw-radius-md);
    background: #fff;
    text-align: left;
    transition: border-color .15s ease, box-shadow .15s ease;
}

.ocw-subscription-option:hover {
    border-color: #bfdbfe;
}

.ocw-subscription-option.is-selected {
    border-color: var(--ocw-primary);
    box-shadow: 0 0 0 3px rgba(37, 99, 235, .12);
}

.ocw-subscription-option__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 10px;
    background: var(--ocw-primary-soft);
    color: var(--ocw-primary);
}

.ocw-subscription-option__body {
    flex: 1;
    min-width: 0;
}

.ocw-subscription-option__body strong,
.ocw-subscription-option__body small {
    display: block;
}

.ocw-subscription-option__body small {
    color: var(--ocw-muted);
}

.ocw-subscription-option .ocw-check {
    opacity: 0;
    color: var(--ocw-primary);
}

.ocw-subscription-option.is-selected .ocw-check {
    opacity: 1;
}

.ocw-subscription-option--all {
    border-style: dashed;
    background: #f8fbff;
}

.ocw-subscription-option--all.is-selected {
    border-style: solid;
    background: #eff6ff;
}

.ocw-subscription-option--all .ocw-subscription-option__icon {
    background: #e0f2fe;
    color: #0369a1;
}

.ocw-current-address-card {
    margin-top: 14px;
    padding: 12px 14px;
    border-radius: var(--ocw-radius-md);
    background: #f8fafc;
    border: 1px dashed #cbd5e1;
}

.ocw-current-address-card__label {
    display: block;
    font-size: var(--ocw-font-xs);
    color: var(--ocw-muted);
    text-transform: uppercase;
    letter-spacing: .04em;
    margin-bottom: 4px;
}

/* ==========================================================================
   MÓVIL · Wizards de órdenes en teléfono
   --------------------------------------------------------------------------
   Los técnicos entran desde el celular (todavía no hay app nativa). Este
   bloque va al final a propósito: varias reglas de 2 columnas viven abajo en
   el archivo y ganaban por orden a los @media de más arriba.

   Cubre los cuatro wizards: creación (#orders-create-wizard), traslado
   (#traslado-wizard-app), retiro (#retiro-wizard-app), activación
   (#orders-activation-wizard) y la hoja de fotos y firmas
   (#orders-installation-sheet-wizard).
   ========================================================================== */
@media (max-width: 860px) {
    /* 0. El módulo se diseñó con `content-box`, de modo que el padding SE SUMA
       al ancho declarado. En escritorio sobra espacio y no se nota, pero en un
       teléfono cada caja acaba unos 40px más ancha de lo pedido y el conjunto
       se deforma. Se normaliza a `border-box` solo en móvil para no alterar
       las medidas de escritorio, que hoy se ven bien. */
    .ocw-page,
    .ocw-page *,
    .ocw-page *::before,
    .ocw-page *::after {
        box-sizing: border-box;
    }

    /* 1. Una sola columna, siempre. Sin esto la barra lateral se come el ancho
       y el formulario queda inservible.

       `minmax(0, 1fr)` y NO `1fr`: `1fr` equivale a `minmax(auto, 1fr)` y ese
       mínimo `auto` crece hasta el min-content de la tarjeta, así que la
       columna se iba a ~568px dentro de una pantalla de 375px y el botón
       "Siguiente" terminaba fuera del área visible. Como el contenedor tiene
       overflow-x oculto, el botón no se veía ni se podía alcanzar
       desplazando: simplemente desaparecía. */
    .ocw-shell,
    .ocw-shell--traslado {
        grid-template-columns: minmax(0, 1fr) !important;
        max-width: 100%;
        gap: 12px;
    }

    /* Cada hijo de la rejilla debe poder encogerse por debajo de su
       min-content; si no, reaparece el desbordamiento. */
    .ocw-shell > *,
    .ocw-shell--traslado > *,
    .ocw-card,
    .ocw-card-body,
    .ocw-step-panel {
        min-width: 0;
    }

    /* 2. Nada debe desbordar horizontalmente: el desbordamiento es lo que
       empujaba botones fuera de la pantalla. */
    .ocw-page {
        overflow-x: hidden;
        max-width: 100vw;
    }

    .ocw-card {
        min-height: 0;
    }

    /* 3. Los pasos pasan a una tira horizontal deslizable en lugar de una
       lista vertical que empuja el formulario fuera de la primera pantalla. */
    .ocw-sidebar {
        position: static;
        padding: 10px;
        order: -1;
    }

    .ocw-steps {
        flex-direction: row;
        overflow-x: auto;
        gap: 6px;
        padding-bottom: 4px;
        scrollbar-width: thin;
        -webkit-overflow-scrolling: touch;
    }

    .ocw-step-nav {
        flex: 0 0 auto;
        grid-template-columns: 28px auto;
        padding: 6px 10px;
        white-space: nowrap;
    }

    /* La ayuda larga de cada paso no cabe en la tira horizontal. */
    .ocw-step-nav .ocw-step-help {
        display: none;
    }

    /* 4. El resumen lateral va al final, no antes del formulario. */
    .ocw-summary {
        position: static;
        width: 100%;
        order: 10;
    }

    /* 5. Acciones siempre visibles y pulsables con el pulgar. Antes quedaban
       comprimidas en una fila que no cabía, y "Siguiente" se salía del área
       visible. */
    .ocw-actions {
        position: sticky;
        bottom: 0;
        z-index: 20;
        flex-direction: column-reverse;
        align-items: stretch;
        gap: 8px;
        padding: 12px;
        box-shadow: 0 -6px 18px rgba(15, 23, 42, .08);
    }

    .ocw-actions > .d-flex {
        display: flex !important;
        width: 100%;
        gap: 8px;
    }

    .ocw-actions .ocw-btn {
        flex: 1 1 0;
        justify-content: center;
        min-height: 46px;
        font-size: 14px;
    }

    /* 6. Formularios a una columna y campos cómodos en pantalla táctil.
       16px en los inputs evita además el zoom automático de iOS al enfocar. */
    .ocw-form-grid,
    .ocw-form-grid--three,
    .ocw-form-grid--location,
    .ocw-form-grid--agenda,
    .ocw-form-grid--service-inner,
    .ocw-choice-grid,
    .ocw-choice-grid--two,
    .ocw-mode-grid,
    .ocw-review-grid,
    .ocw-doc-signatures__grid {
        grid-template-columns: 1fr !important;
    }

    .ocw-input,
    .ocw-select,
    .ocw-textarea {
        font-size: 16px;
        min-height: 46px;
    }

    /* 7. Buscador de cliente: el botón bajo el campo en lugar de a su lado.
       Es una rejilla (`minmax(0,1fr) auto`), no un flex, así que hay que
       colapsar la columna y no tocar flex-direction. */
    .ocw-search-box {
        grid-template-columns: 1fr;
    }

    .ocw-search-box .ocw-btn {
        width: 100%;
        justify-content: center;
        min-height: 46px;
    }

    /* 8. Tablas y bloques anchos se deslizan dentro de su caja, nunca
       ensanchan la página. */
    .ocw-card table,
    .ocw-table-wrap {
        display: block;
        width: 100%;
        overflow-x: auto;
    }
}

/* Teléfonos estrechos (iPhone SE y similares) */
@media (max-width: 480px) {
    .ocw-header {
        flex-direction: column;
        align-items: flex-start;
        gap: 8px;
    }

    .ocw-title {
        font-size: 1.15rem;
        line-height: 1.25;
    }

    .ocw-subtitle {
        font-size: 12.5px;
    }

    .ocw-card-head,
    .ocw-card-body {
        padding: 14px;
    }

    /* Las firmas necesitan todo el ancho disponible para poder firmar. */
    .ocw-signature-pad {
        width: 100%;
        height: 140px;
    }
}
