:root {
    --bg: #f4f7fb;
    --panel: #ffffff;
    --ink: #152033;
    --muted: #6b778c;
    --line: #dbe3ef;
    --primary: #204b8f;
    --primary-dark: #173763;
    --danger: #b42318;
    --success: #067647;
    --radius: 16px;
    --shadow: 0 14px 40px rgba(21, 32, 51, 0.08);
}
* { box-sizing: border-box; }
body { margin: 0; font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; color: var(--ink); background: var(--bg); }
a { color: inherit; text-decoration: none; }
.app-shell { display: grid; grid-template-columns: 280px 1fr; min-height: 100vh; }
.sidebar { background: #0f1d33; color: #fff; padding: 24px; }
.brand { display: flex; gap: 12px; align-items: center; margin-bottom: 28px; }
.brand.center { justify-content: center; }
.brand-mark { width: 44px; height: 44px; border-radius: 14px; display: grid; place-items: center; background: linear-gradient(135deg, #35a3ff, #2350a0); color: #fff; font-weight: 800; }
.brand small { display: block; color: #9fb0c8; font-size: 12px; margin-top: 2px; }
.sidebar nav { display: grid; gap: 6px; }
.sidebar nav a { color: #d6e3f5; padding: 12px 14px; border-radius: 12px; }
.sidebar nav a:hover { background: rgba(255,255,255,0.09); color: #fff; }
.main { padding: 28px; }
.topbar { display: flex; justify-content: space-between; align-items: center; margin-bottom: 24px; }
.topbar h1 { margin: 0; font-size: 28px; }
.topbar p, .muted { color: var(--muted); margin: 6px 0 0; }
.content { display: grid; gap: 20px; }
.card, .login-card, .qr-card { background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow); padding: 22px; }
.login-card { width: min(420px, calc(100% - 32px)); margin: 8vh auto; }
.guest-body { display: grid; min-height: 100vh; place-items: start center; }
.grid.cards { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.metric span { color: var(--muted); display: block; margin-bottom: 10px; }
.metric strong { font-size: 34px; }
.module-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.module-grid div { background: #f7f9fd; border: 1px solid var(--line); border-radius: 14px; padding: 16px; }
.section-title { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-bottom: 16px; }
h2 { margin: 0 0 8px; }
label { display: block; margin-top: 14px; margin-bottom: 6px; color: var(--muted); font-weight: 700; font-size: 14px; }
input, select, textarea { width: 100%; border: 1px solid var(--line); border-radius: 12px; padding: 12px 14px; font-size: 15px; }
.btn { border: 0; border-radius: 12px; padding: 11px 16px; font-weight: 700; cursor: pointer; }
.btn.primary { background: var(--primary); color: #fff; }
.btn.primary:hover { background: var(--primary-dark); }
.btn.secondary { background: #edf2f8; color: var(--ink); }
.btn:disabled { opacity: .55; cursor: not-allowed; }
.btn.full { width: 100%; margin-top: 18px; }
.alert { padding: 12px 14px; border-radius: 12px; margin: 12px 0; }
.alert.danger { background: #fef3f2; color: var(--danger); border: 1px solid #fecdca; }
table { width: 100%; border-collapse: collapse; }
th, td { text-align: left; padding: 12px 10px; border-bottom: 1px solid var(--line); vertical-align: top; }
th { color: var(--muted); font-size: 13px; text-transform: uppercase; letter-spacing: .04em; }
.badge { display: inline-flex; align-items: center; padding: 4px 9px; border-radius: 999px; background: #e9f1ff; color: var(--primary); font-size: 12px; font-weight: 700; }
.public-page { max-width: 760px; margin: 24px auto; padding: 0 16px; }
.qr-card h1 { margin-top: 10px; }
@media (max-width: 900px) {
    .app-shell { grid-template-columns: 1fr; }
    .sidebar { position: static; }
    .grid.cards, .module-grid { grid-template-columns: 1fr; }
    .topbar { align-items: flex-start; gap: 12px; flex-direction: column; }
}

/* v0.2 Mantención */
.detail-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin-top: 16px; }
.detail-grid div { background: #f7f9fd; border: 1px solid var(--line); border-radius: 14px; padding: 14px; }
.detail-grid span { display: block; color: var(--muted); font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; margin-bottom: 6px; }
.detail-grid strong { display: block; font-size: 15px; }
.inline-form { margin-top: 18px; }
.form-section { border: 1px solid var(--line); border-radius: 14px; padding: 18px; margin: 16px 0; background: #fbfcff; }
.form-section h3 { margin: 0 0 10px; }
.actions-row { display: flex; justify-content: flex-end; margin-top: 18px; }
.small { font-size: 12px; }
.alert.success { background: #ecfdf3; color: var(--success); border: 1px solid #abefc6; }
.compact-card { box-shadow: none; }
.timeline-item { border-left: 4px solid var(--primary); padding: 10px 0 12px 14px; margin: 10px 0; }
.timeline-item p { margin: 6px 0; color: var(--muted); }
.signature-box { border: 1px dashed var(--line); background: #fff; border-radius: 14px; padding: 12px; }
.signature-box canvas { width: 100%; height: 180px; background: #fff; border: 1px solid var(--line); border-radius: 10px; touch-action: none; }
.signature-box .btn { margin-top: 8px; }
.status-closed, .status-closed_with_observation { background: #ecfdf3; color: var(--success); }
.status-closed_with_critical_observation, .status-expired { background: #fef3f2; color: var(--danger); }
.status-in_progress { background: #fff8db; color: #8a6100; }
@media (max-width: 1100px) { .detail-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 700px) { .detail-grid { grid-template-columns: 1fr; } }

/* v0.3 Españolización base */
.status-active, .status-submitted, .status-approved, .status-closed { background: #ecfdf3; color: var(--success); }
.status-inactive, .status-suspended, .status-cancelled, .status-rejected { background: #f2f4f7; color: #475467; }
.status-draft, .status-programmed, .status-scheduled, .status-assigned, .status-pending, .status-open { background: #e9f1ff; color: var(--primary); }
.status-sent, .status-follow_up, .status-in_progress, .status-pending_sync { background: #fff8db; color: #8a6100; }
.status-closed_with_observation { background: #fff8db; color: #8a6100; }
.status-closed_with_critical_observation, .status-expired, .status-critical, .priority-high, .priority-critical, .priority-urgent, .risk-high, .risk-critical { background: #fef3f2; color: var(--danger); }
.risk-low, .priority-low { background: #ecfdf3; color: var(--success); }
.risk-medium, .priority-medium, .priority-normal { background: #fff8db; color: #8a6100; }
.risk-none { background: #f2f4f7; color: #475467; }

.table-input {
    width: 100%;
    min-width: 82px;
    padding: 8px 10px;
    border: 1px solid #d7dde8;
    border-radius: 8px;
    font-size: 13px;
}

.small-number { max-width: 90px; }
.small-unit { max-width: 70px; }
.money-input { max-width: 110px; }
.mt-2 { margin-top: 12px; }
.totals-card strong { font-size: 18px; }

/* v0.4.1 Presupuesto editable */
.quote-description-cell { min-width: 320px; }
.item-description-input {
    min-width: 300px;
    width: 100%;
    resize: vertical;
    line-height: 1.35;
}
.manual-item-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 14px;
    margin-top: 10px;
}
@media (max-width: 1100px) {
    .manual-item-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .quote-items-table { display: block; overflow-x: auto; }
}
@media (max-width: 700px) {
    .manual-item-grid { grid-template-columns: 1fr; }
}

.priority-select {
    min-width: 110px;
}

.alert.info { background: #eff6ff; color: #175cd3; border: 1px solid #bfdbfe; }
.permission-muted { color: var(--muted); font-size: 12px; }

/* v0.5 Constructor visual de formularios */
.form-builder-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
    align-items: start;
}
.grid-span-2 { grid-column: span 2; }
.form-builder-section {
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 18px;
    margin: 18px 0;
    background: #fbfcff;
}
.form-builder-section-header,
.field-card-head,
.field-badges {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 12px;
}
.field-badges { flex-wrap: wrap; justify-content: flex-end; }
.field-card {
    border: 1px solid #d9e2ef;
    border-radius: 14px;
    padding: 16px;
    margin: 14px 0;
    background: #ffffff;
}
.field-card code {
    background: #f2f4f7;
    border: 1px solid #e4e7ec;
    border-radius: 6px;
    padding: 2px 6px;
    color: #344054;
}
.builder-details {
    margin-top: 12px;
    border: 1px dashed var(--line);
    border-radius: 12px;
    padding: 12px;
    background: #f7f9fd;
}
.builder-details summary {
    cursor: pointer;
    font-weight: 800;
    color: var(--primary);
}
.add-field-box,
.add-section-box { background: #f4f8ff; }
.options-list {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 10px;
}
.btn.danger { background: #fef3f2; color: var(--danger); border: 1px solid #fecdca; }
@media (max-width: 1100px) {
    .form-builder-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 700px) {
    .form-builder-grid { grid-template-columns: 1fr; }
    .grid-span-2 { grid-column: span 1; }
    .form-builder-section-header,
    .field-card-head { flex-direction: column; }
    .field-badges { justify-content: flex-start; }
}

/* v0.5.1 Constructor visual estilo Kizeo */
.form-config-card { margin-bottom: 18px; }
.form-builder-grid.compact { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.kizeo-builder-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(360px, .85fr);
    gap: 22px;
    align-items: start;
}
.kizeo-canvas,
.field-palette { padding: 0; overflow: hidden; }
.kizeo-toolbar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    padding: 16px 18px;
    border-bottom: 1px solid var(--line);
    background: #fff;
}
.kizeo-tabs { display: flex; align-items: center; gap: 18px; min-width: 0; }
.kizeo-tab { font-weight: 800; color: var(--ink); white-space: nowrap; }
.kizeo-tab.active { border-bottom: 3px solid var(--primary); padding-bottom: 8px; }
.kizeo-tab.muted-tab { color: var(--primary); overflow: hidden; text-overflow: ellipsis; }
.kizeo-counter { color: var(--muted); font-weight: 800; }
.kizeo-summary-row {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 10px;
    padding: 14px 18px;
    background: #f7f9fd;
    border-bottom: 1px solid var(--line);
}
.kizeo-summary-row div { background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 10px 12px; }
.kizeo-summary-row strong { display: block; font-size: 20px; }
.kizeo-summary-row span { color: var(--muted); font-size: 12px; font-weight: 700; }
.kizeo-form-list { padding: 18px; background: #f7f9fd; }
.kizeo-section-block {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 14px;
    margin-bottom: 14px;
    overflow: hidden;
}
.kizeo-section-title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 14px 16px;
    background: #f1f5fb;
    border-bottom: 1px solid var(--line);
}
.kizeo-section-title.main-section { background: #74829a; color: #fff; }
.kizeo-section-title.main-section .muted,
.kizeo-section-title.main-section p { color: #e8edf7; }
.kizeo-section-title h3 { margin: 0; font-size: 16px; }
.kizeo-section-title p { margin: 4px 0 0; color: var(--muted); }
.section-bookmark { color: var(--primary); font-weight: 900; font-size: 20px; }
.main-section .section-bookmark { color: #061a3a; }
.designer-field-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 12px;
    align-items: center;
    padding: 14px 16px;
    border-bottom: 1px solid #edf1f7;
    background: #fff;
}
.designer-field-row:last-of-type { border-bottom: 0; }
.designer-field-main { display: flex; align-items: flex-start; gap: 14px; min-width: 0; }
.designer-icon,
.palette-icon {
    width: 30px;
    height: 30px;
    border-radius: 9px;
    display: inline-grid;
    place-items: center;
    font-weight: 900;
    color: #2856a3;
    background: #e9f1ff;
    flex: 0 0 auto;
}
.designer-icon.type-photo,
.palette-icon.type-photo { color: #7a3ff2; background: #f1ebff; }
.designer-icon.type-signature,
.palette-icon.type-signature { color: #d36b1f; background: #fff3e6; }
.designer-icon.type-geolocation,
.palette-icon.type-geolocation { color: #067647; background: #ecfdf3; }
.designer-icon.type-table,
.palette-icon.type-table { color: #0e7490; background: #ecfeff; }
.designer-icon.type-select,
.palette-icon.type-select,
.designer-icon.type-multiselect,
.palette-icon.type-multiselect { color: #175cd3; background: #eff6ff; }
.designer-field-title { font-weight: 800; line-height: 1.25; }
.required-star { color: var(--danger); font-weight: 900; margin-left: 4px; }
.designer-field-actions { display: flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
.slim-options { margin-top: 6px; }
.empty-designer-row { padding: 14px 16px; color: var(--muted); border-bottom: 1px solid #edf1f7; }
.compact-details {
    margin: 12px 16px;
    background: #f8fafd;
}
.field-editor-panel { margin-top: 0; }
.visual-add-field { margin: 12px 16px 16px; }
.kizeo-bottom-actions {
    display: flex;
    gap: 12px;
    justify-content: flex-end;
    padding: 14px 18px;
    background: #fff;
    border-top: 1px solid var(--line);
}
.field-palette {
    position: sticky;
    top: 18px;
    padding: 18px;
}
.palette-header h2 { margin: 0 0 8px; }
.palette-group { margin-top: 18px; }
.palette-group h3 { margin: 0 0 10px; font-size: 15px; color: var(--muted); text-transform: uppercase; letter-spacing: .04em; }
.palette-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.palette-item {
    min-height: 74px;
    display: flex;
    gap: 10px;
    align-items: flex-start;
    background: #eef2f7;
    border: 1px solid #dce4ef;
    border-radius: 12px;
    padding: 12px;
}
.palette-item strong { display: block; font-size: 14px; }
.palette-item small { display: block; margin-top: 4px; color: var(--muted); line-height: 1.25; }
.palette-note { margin-top: 18px; padding: 14px; border: 1px dashed var(--line); border-radius: 12px; background: #fbfcff; }
@media (max-width: 1350px) {
    .kizeo-builder-layout { grid-template-columns: 1fr; }
    .field-palette { position: static; }
}
@media (max-width: 760px) {
    .kizeo-summary-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .palette-grid { grid-template-columns: 1fr; }
    .designer-field-row { grid-template-columns: 1fr; }
    .designer-field-actions { justify-content: flex-start; }
    .kizeo-toolbar { flex-direction: column; align-items: flex-start; }
}

/* v0.5.2 Constructor diseñador tipo Kizeo - layout real */
.forms-show .main,
.main:has(.kizeo-builder-layout) {
    padding: 18px 20px 24px;
}

.main:has(.kizeo-builder-layout) .topbar {
    margin-bottom: 12px;
}

.main:has(.kizeo-builder-layout) .topbar h1 {
    font-size: 24px;
}

.form-config-card {
    padding: 14px 18px !important;
    margin-bottom: 12px !important;
    box-shadow: none !important;
}
.form-config-card .section-title {
    margin-bottom: 8px !important;
}
.form-config-card h2 {
    font-size: 20px !important;
    margin-bottom: 2px !important;
}
.form-config-card label {
    margin-top: 4px !important;
    font-size: 11px !important;
    text-transform: uppercase;
    letter-spacing: .04em;
}
.form-config-card input,
.form-config-card select {
    padding: 8px 10px !important;
    font-size: 13px !important;
    border-radius: 9px !important;
}
.form-config-card .inline-form {
    margin-top: 8px !important;
}
.form-config-card .actions-row {
    margin-top: 8px !important;
}
.form-config-card .btn {
    padding: 8px 12px !important;
    font-size: 12px !important;
}

.kizeo-builder-layout {
    display: grid !important;
    grid-template-columns: minmax(560px, 1.05fr) minmax(620px, .95fr) !important;
    gap: 22px !important;
    align-items: start !important;
}

.kizeo-canvas,
.field-palette {
    min-width: 0;
    border-radius: 14px !important;
    box-shadow: 0 14px 34px rgba(21, 32, 51, .08) !important;
}

.kizeo-canvas {
    max-height: calc(100vh - 235px);
    overflow-y: auto !important;
    background: #ffffff !important;
}

.kizeo-toolbar {
    position: sticky;
    top: 0;
    z-index: 5;
    min-height: 54px;
    background: #ffffff !important;
    box-shadow: 0 1px 0 var(--line);
}

.kizeo-tabs {
    gap: 14px !important;
}
.kizeo-tab {
    font-size: 14px !important;
}
.kizeo-tab.active {
    color: var(--primary);
    padding-bottom: 7px !important;
}
.kizeo-counter {
    font-size: 13px;
    background: #f2f6fc;
    border: 1px solid var(--line);
    border-radius: 999px;
    padding: 5px 10px;
}

.kizeo-summary-row {
    display: flex !important;
    gap: 8px !important;
    padding: 10px 14px !important;
    background: #f7f9fd !important;
    overflow-x: auto;
}
.kizeo-summary-row div {
    min-width: 96px;
    padding: 9px 10px !important;
}
.kizeo-summary-row strong {
    font-size: 18px !important;
}
.kizeo-form-list {
    padding: 14px !important;
}

.kizeo-section-block {
    border-radius: 10px !important;
    margin-bottom: 10px !important;
    border-color: #d6deea !important;
}
.kizeo-section-title {
    padding: 11px 13px !important;
    min-height: 48px;
}
.kizeo-section-title h3 {
    font-size: 15px !important;
}
.kizeo-section-title.main-section {
    background: #74829a !important;
    color: #fff !important;
}
.section-bookmark {
    font-size: 17px !important;
}

.designer-field-row {
    grid-template-columns: minmax(0, 1fr) 170px !important;
    padding: 11px 13px !important;
    min-height: 54px;
}
.designer-field-main {
    gap: 10px !important;
}
.designer-icon,
.palette-icon {
    width: 28px !important;
    height: 28px !important;
    border-radius: 7px !important;
}
.designer-field-title {
    font-size: 14px !important;
}
.designer-field-actions .btn,
.kizeo-bottom-actions .btn {
    padding: 7px 10px !important;
    font-size: 12px !important;
}
.compact-details,
.visual-add-field {
    margin: 8px 12px !important;
    padding: 9px 10px !important;
}
.empty-designer-row {
    padding: 12px 13px !important;
}

.field-palette {
    position: sticky !important;
    top: 18px !important;
    max-height: calc(100vh - 36px);
    overflow-y: auto !important;
    padding: 18px !important;
    background: #fff !important;
}
.field-palette::before {
    content: 'Constructor de campos';
    display: block;
    font-size: 11px;
    font-weight: 900;
    color: var(--primary);
    text-transform: uppercase;
    letter-spacing: .08em;
    margin-bottom: 4px;
}
.palette-header h2 {
    font-size: 20px !important;
    margin-bottom: 4px !important;
}
.palette-header p {
    font-size: 12px !important;
    line-height: 1.35;
}
.palette-group {
    margin-top: 14px !important;
}
.palette-group h3 {
    font-size: 12px !important;
    margin-bottom: 8px !important;
}
.palette-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 9px !important;
}
.palette-item {
    min-height: 58px !important;
    padding: 10px !important;
    border-radius: 9px !important;
    background: #e5e9ef !important;
}
.palette-item strong {
    font-size: 13px !important;
}
.palette-item small {
    display: none !important;
}
.palette-note {
    margin-top: 14px !important;
    padding: 12px !important;
    font-size: 12px;
}
.kizeo-bottom-actions {
    position: sticky;
    bottom: 0;
    z-index: 4;
    padding: 12px 14px !important;
}
.add-section-box {
    padding: 14px !important;
}

@media (max-width: 1200px) {
    .kizeo-builder-layout {
        grid-template-columns: 1fr !important;
    }
    .kizeo-canvas,
    .field-palette {
        max-height: none;
        position: static !important;
    }
    .palette-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}
@media (max-width: 760px) {
    .form-builder-grid.compact,
    .form-builder-grid {
        grid-template-columns: 1fr !important;
    }
    .designer-field-row {
        grid-template-columns: 1fr !important;
    }
    .palette-grid {
        grid-template-columns: 1fr !important;
    }
}

/* v0.5.3 Constructor corregido */
.form-create-panel {
    margin: 14px 0 18px;
    background: #f8fafd;
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 16px;
}
.form-create-header {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: flex-start;
    margin-bottom: 10px;
}
.table-actions {
    display: flex;
    gap: 8px;
    align-items: center;
    flex-wrap: wrap;
}
.table-actions form { margin: 0; }
.forms-index-card .section-title { align-items: flex-start; }

/* v0.5.8 Constructor enterprise */
.sidebar nav a.nav-sub {
    font-size: 13px;
    color: #aebbd0;
    padding: 7px 14px 7px 28px;
    margin-top: -4px;
}
.sidebar nav a.nav-sub:hover { color: #fff; background: rgba(255,255,255,.06); }
.kz-token-list code { user-select: all; }
.kz-palette-item.dragging { opacity: .55; }

/* v0.5.8 - Submenú de formularios */
.sidebar .nav-group { display: block; }
.sidebar .nav-submenu { margin: -6px 0 10px 18px; padding-left: 10px; border-left: 1px solid rgba(255,255,255,.18); }
.sidebar .nav-submenu a { font-size: 13px; padding: 6px 10px; opacity: .82; }
.sidebar .nav-submenu a:hover { opacity: 1; }

/* v0.7.0 Clientes, comunidades y equipos */
.customer-metrics .metric { min-height: 116px; }
.table-wrap { width: 100%; overflow-x: auto; }
.dq-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px 16px;
    align-items: end;
}
.dq-filter-grid {
    display: grid;
    grid-template-columns: minmax(180px, 1fr) minmax(180px, 1fr) minmax(160px, .8fr) auto;
    gap: 14px;
    align-items: end;
    margin: 12px 0 16px;
    padding: 14px;
    background: #f7f9fd;
    border: 1px solid var(--line);
    border-radius: 14px;
}
.customer-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    position: sticky;
    top: 0;
    z-index: 4;
    background: rgba(244, 247, 251, .92);
    backdrop-filter: blur(8px);
    padding: 8px 0;
}
.customer-tabs a {
    display: inline-flex;
    align-items: center;
    padding: 10px 13px;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 999px;
    color: var(--primary);
    font-weight: 800;
    font-size: 13px;
}
.customer-tabs a:hover { background: #e9f1ff; }
.customer-hero { background: linear-gradient(180deg, #fff, #f8fbff); }
.actions-inline { display: flex; gap: 10px; flex-wrap: wrap; justify-content: flex-end; }
.status-prospect { background: #fff8db; color: #8a6100; }
.status-out_of_service { background: #fef3f2; color: var(--danger); }
.grid-span-2 { grid-column: span 2; }
@media (max-width: 1100px) {
    .dq-filter-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 700px) {
    .dq-form-grid, .dq-filter-grid { grid-template-columns: 1fr; }
    .grid-span-2 { grid-column: span 1; }
    .actions-inline { justify-content: flex-start; }
}

/* v0.7.1 Clientes/equipos */
.customer-edit-row { margin-bottom: 12px; }
.customer-edit-row summary { cursor: pointer; }
.actions-inline form { display: inline-block; margin: 0; }
.btn.danger, button.danger { background: #dc2626; color: #fff; border-color: #dc2626; }
.btn.danger:hover, button.danger:hover { background: #b91c1c; }
.table-wrap { overflow-x: auto; }
.small { font-size: 12px; }
.mt-1 { margin-top: 10px; }
.mt-2 { margin-top: 18px; }

/* v0.8.0 Estado operativo y geolocalización */
.operational-operational { background: #e9f1ff; color: #204b8f; }
.operational-stopped { background: #fef3f2; color: #b42318; }
.operational-stopped_modernization { background: #f3e8ff; color: #5b21b6; }
.operational-temporary_out_of_service { background: #f5f3ff; color: #6d28d9; }
.operational-operational_with_observations { background: #fff8db; color: #8a6100; }
.operational-requires_repair { background: #fff4e5; color: #b54708; }
.technician-available { background: #ecfdf3; color: #067647; }
.technician-en_route { background: #e9f1ff; color: #204b8f; }
.technician-in_work_order { background: #fff8db; color: #8a6100; }
.technician-break { background: #fff4e5; color: #93370d; }
.technician-offline,
.technician-out_of_hours { background: #f2f4f7; color: #475467; }
.dq-map-legend { display: flex; flex-wrap: wrap; gap: 10px 16px; margin: 10px 0 16px; color: var(--muted); font-size: 13px; font-weight: 700; }
.legend-dot { display: inline-block; width: 12px; height: 12px; border-radius: 999px; margin-right: 6px; vertical-align: -1px; }
.legend-dot.operational { background: #204b8f; }
.legend-dot.stopped { background: #d92d20; }
.legend-dot.stopped-modernization { background: #5b21b6; }
.legend-dot.observation { background: #fdb022; }
.legend-dot.temporary { background:#7c3aed; }
.legend-dot.repair { background: #f79009; }
.legend-dot.technician { background: #067647; }
.dq-map-marker-wrap { background: transparent; border: 0; }
.dq-map-marker { width: 30px; height: 30px; border-radius: 999px; display: grid; place-items: center; color: #fff; font-size: 12px; font-weight: 900; border: 3px solid #fff; box-shadow: 0 8px 18px rgba(21,32,51,.28); }
.dq-tech-marker { border-radius: 8px; }
.actions-inline { display: inline-flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.table-wrap { overflow-x: auto; }
.single-module-grid { grid-template-columns: 1fr; }
@media (max-width: 700px) { .actions-inline { width: 100%; } .actions-inline .btn { width: 100%; text-align: center; } }

/* v0.8.4 Administración de usuarios */
.actions-inline { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; justify-content: flex-end; }
.inline-actions-form { margin: 0; display: inline-flex; }
.users-filter-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.users-form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.user-metrics .metric strong { font-size: 30px; }
.user-option-card {
    border: 1px solid var(--line);
    background: #f8fafd;
    border-radius: 14px;
    padding: 16px;
    margin-top: 10px;
}
.user-option-card h3,
.user-option-card h4 { margin: 0 0 8px; }
.user-option-card h4 { margin-top: 16px; color: var(--muted); font-size: 14px; text-transform: uppercase; letter-spacing: .04em; }
.checkbox-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin-top: 10px;
}
.compact-checkbox-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.check-card {
    margin: 0;
    display: flex;
    align-items: flex-start;
    gap: 10px;
    border: 1px solid #d9e2ef;
    background: #fff;
    border-radius: 12px;
    padding: 12px;
    color: var(--ink);
    cursor: pointer;
}
.check-card input { width: auto; margin-top: 2px; }
.check-card strong { display: block; font-size: 14px; }
.check-card small { display: block; color: var(--muted); font-size: 12px; margin-top: 3px; line-height: 1.3; }
.check-line { display: flex; gap: 8px; align-items: center; color: var(--ink); font-weight: 600; }
.check-line input { width: auto; }
.users-edit-grid { grid-template-columns: minmax(0, 1.35fr) minmax(340px, .65fr); }
.user-detail-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.one-column-detail { grid-template-columns: 1fr; }
.soft-divider { border: 0; border-top: 1px solid var(--line); margin: 22px 0; }
.status-blocked { background: #fef3f2; color: var(--danger); }
.technician-available { background: #ecfdf3; color: var(--success); }
.technician-en_route { background: #e9f1ff; color: var(--primary); }
.technician-in_work_order, .technician-break { background: #fff8db; color: #8a6100; }
.technician-offline, .technician-out_of_hours { background: #f2f4f7; color: #475467; }
@media (max-width: 1100px) {
    .users-filter-grid, .users-form-grid, .users-edit-grid, .checkbox-grid, .compact-checkbox-grid, .user-detail-grid { grid-template-columns: 1fr; }
}

/* v0.8.5 WebApp técnico + navegación por rol */
.sidebar nav a.active,
.sidebar nav details[open] > summary {
    background: rgba(255,255,255,0.11);
    color: #fff;
}
.dq-nav-module {
    border-radius: 12px;
    overflow: hidden;
}
.dq-nav-module summary {
    cursor: pointer;
    color: #d6e3f5;
    padding: 12px 14px;
    border-radius: 12px;
    font-weight: 700;
    list-style: none;
}
.dq-nav-module summary::-webkit-details-marker { display: none; }
.dq-nav-children {
    display: grid;
    gap: 3px;
    padding: 4px 0 8px 12px;
    border-left: 1px solid rgba(255,255,255,.12);
    margin-left: 12px;
}
.dq-nav-children a { font-size: 13px; padding: 9px 12px; }
.tech-hero {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    background: linear-gradient(135deg, #ffffff, #eef6ff);
}
.tech-hero h2 { font-size: 28px; margin: 2px 0 8px; }
.tech-action-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
}
.tech-action-card {
    display: block;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 16px;
    box-shadow: var(--shadow);
    padding: 18px;
}
.tech-action-card strong { display: block; font-size: 16px; margin-bottom: 8px; }
.tech-action-card span { color: var(--muted); font-size: 13px; line-height: 1.35; }
.tech-action-card:hover { border-color: #b8c7dc; transform: translateY(-1px); }
.tech-home-grid { align-items: start; }
.tech-order-list,
.tech-elevator-list {
    display: grid;
    gap: 12px;
}
.tech-order-card {
    border: 1px solid #d9e2ef;
    border-radius: 15px;
    background: #fff;
    padding: 14px;
}
.tech-order-head,
.tech-order-actions,
.tech-tabs {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    flex-wrap: wrap;
}
.tech-order-title {
    font-weight: 800;
    margin-top: 12px;
}
.tech-order-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 10px;
    color: var(--muted);
    font-size: 13px;
}
.tech-order-meta span {
    display: inline-flex;
    border: 1px solid var(--line);
    background: #f8fafd;
    border-radius: 999px;
    padding: 5px 9px;
}
.tech-order-actions { justify-content: flex-end; margin-top: 12px; }
.tech-order-actions form { margin: 0; }
.tech-tabs { justify-content: flex-start; margin: 12px 0 18px; }
.tech-tabs a {
    border: 1px solid var(--line);
    background: #f8fafd;
    border-radius: 999px;
    padding: 9px 13px;
    font-weight: 800;
    color: var(--primary);
}
.tech-tabs a.active { background: var(--primary); color: #fff; border-color: var(--primary); }
.tech-bottom-nav { display: none; }

@media (max-width: 900px) {
    .dq-tech-app { background: #eef3fa; }
    .dq-tech-app .app-shell { display: block; min-height: 100vh; }
    .dq-tech-app .sidebar { display: none; }
    .dq-tech-app .main {
        padding: calc(14px + env(safe-area-inset-top)) 12px calc(92px + env(safe-area-inset-bottom));
    }
    .dq-tech-app .topbar {
        position: sticky;
        top: 0;
        z-index: 15;
        margin: -14px -12px 14px;
        padding: 12px 12px 10px;
        background: rgba(238, 243, 250, .95);
        backdrop-filter: blur(10px);
        border-bottom: 1px solid rgba(219, 227, 239, .9);
        flex-direction: row;
        align-items: center;
    }
    .dq-tech-app .topbar h1 { font-size: 20px; }
    .dq-tech-app .topbar p { display: none; }
    .dq-tech-app .topbar .btn { padding: 9px 11px; font-size: 12px; }
    .dq-tech-app .content { gap: 12px; }
    .dq-tech-app .card,
    .dq-tech-app .login-card,
    .dq-tech-app .qr-card {
        border-radius: 18px;
        padding: 16px;
        box-shadow: 0 8px 24px rgba(21, 32, 51, .07);
    }
    .tech-hero { flex-direction: column; align-items: stretch; }
    .tech-hero h2 { font-size: 24px; }
    .tech-metrics.grid.cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .tech-metrics .metric strong { font-size: 28px; }
    .tech-action-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .tech-action-card { padding: 15px; }
    .tech-home-grid.module-grid { grid-template-columns: 1fr; }
    .tech-order-card { padding: 13px; }
    .tech-order-head { align-items: flex-start; }
    .tech-order-actions .btn,
    .tech-order-actions form,
    .tech-order-actions button { width: 100%; text-align: center; }
    .tech-bottom-nav {
        position: fixed;
        left: 0;
        right: 0;
        bottom: 0;
        z-index: 50;
        display: grid;
        grid-template-columns: repeat(4, 1fr);
        gap: 6px;
        padding: 8px 10px calc(8px + env(safe-area-inset-bottom));
        background: rgba(15, 29, 51, .96);
        border-top: 1px solid rgba(255,255,255,.12);
        box-shadow: 0 -12px 24px rgba(15, 29, 51, .18);
    }
    .tech-bottom-nav a,
    .tech-bottom-nav button {
        display: grid;
        place-items: center;
        min-height: 50px;
        border: 0;
        border-radius: 16px;
        background: transparent;
        color: #d6e3f5;
        font-weight: 800;
        font-size: 12px;
        font-family: inherit;
    }
    .tech-bottom-nav a.active,
    .tech-bottom-nav button:active { background: rgba(255,255,255,.12); color: #fff; }
    .dq-tech-app table,
    .dq-tech-app thead,
    .dq-tech-app tbody,
    .dq-tech-app th,
    .dq-tech-app td,
    .dq-tech-app tr { display: block; }
    .dq-tech-app thead { display: none; }
    .dq-tech-app tr {
        border: 1px solid var(--line);
        border-radius: 14px;
        margin-bottom: 10px;
        background: #fff;
        overflow: hidden;
    }
    .dq-tech-app td {
        border-bottom: 1px solid #eef2f7;
        padding: 10px 12px;
    }
    .dq-tech-app td:last-child { border-bottom: 0; }
    .dq-tech-app .section-title { flex-direction: column; align-items: stretch; }
    .dq-tech-app .actions-row { justify-content: stretch; }
    .dq-tech-app .actions-row .btn,
    .dq-tech-app .inline-form .btn { width: 100%; }
    .dq-tech-app input,
    .dq-tech-app select,
    .dq-tech-app textarea { min-height: 46px; font-size: 16px; }
    .dq-tech-app .signature-box canvas { height: 150px; }
}

@media (max-width: 520px) {
    .tech-action-grid { grid-template-columns: 1fr; }
    .tech-metrics.grid.cards { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
    .tech-order-meta span { width: 100%; border-radius: 12px; }
}

/* v0.8.5.1 WebApp técnica real sobre layout actual */
.no-margin { margin: 0 !important; }
.compact-title { align-items: flex-start; }
.tech-eyebrow { display: inline-flex; color: var(--primary); font-weight: 900; font-size: 12px; text-transform: uppercase; letter-spacing: .06em; }
.tech-quick-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
}
.tech-quick-card {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 18px;
    box-shadow: var(--shadow);
    padding: 18px;
}
.tech-quick-card span { display: block; font-size: 30px; font-weight: 900; color: var(--primary); line-height: 1; }
.tech-quick-card strong { display: block; margin-top: 8px; }
.tech-module-grid { align-items: start; }
.tech-card-list { display: grid; gap: 12px; }
.tech-order-card.priority-urgent,
.tech-order-card.priority-critical { border-left: 5px solid var(--danger); }
.tech-order-card.priority-high { border-left: 5px solid #f97316; }
.tech-order-top {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 10px;
}
.tech-order-top strong { display: block; font-size: 16px; }
.tech-order-top span:not(.badge) { display: block; color: var(--muted); font-size: 12px; margin-top: 2px; }
.tech-order-body h3 { margin: 0 0 6px; font-size: 16px; }
.tech-order-body p { margin: 4px 0; }
.tech-card-meta {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin-top: 10px;
}
.tech-card-meta span {
    display: inline-flex;
    border: 1px solid var(--line);
    background: #f8fafd;
    border-radius: 999px;
    padding: 5px 9px;
    color: var(--muted);
    font-size: 12px;
    font-weight: 700;
}
.tech-notification-list { display: grid; gap: 10px; }
.tech-notification {
    border: 1px solid var(--line);
    border-radius: 14px;
    background: #fff;
    padding: 13px;
}
.tech-notification.unread { border-left: 5px solid var(--primary); }
.tech-notification p { margin: 6px 0; color: var(--muted); }
.tech-notification small { color: var(--muted); }
.tech-page-head { display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.tech-search-row { display: grid; grid-template-columns: 1fr auto; gap: 10px; }
.tech-elevator-result {
    border: 1px solid var(--line);
    border-radius: 16px;
    background: #fff;
    padding: 15px;
    display: grid;
    gap: 12px;
}
.tech-linked-ot {
    border-top: 1px solid var(--line);
    padding-top: 12px;
}
.tech-linked-ot strong { display: block; }
.tech-linked-ot span { display: block; color: var(--muted); font-size: 13px; margin-top: 2px; }
.tech-ot-actions { gap: 10px; flex-wrap: wrap; }

@media (max-width: 900px) {
    body.tech-user { background: #eef3fa; }
    .tech-user .app-shell { display: block; min-height: 100vh; }
    .tech-user .sidebar { display: none; }
    .tech-user .main {
        padding: calc(14px + env(safe-area-inset-top)) 12px calc(92px + env(safe-area-inset-bottom));
    }
    .tech-user .topbar {
        position: sticky;
        top: 0;
        z-index: 15;
        margin: -14px -12px 14px;
        padding: 12px 12px 10px;
        background: rgba(238, 243, 250, .96);
        backdrop-filter: blur(10px);
        border-bottom: 1px solid rgba(219, 227, 239, .9);
        flex-direction: row;
        align-items: center;
    }
    .tech-user .topbar h1 { font-size: 20px; }
    .tech-user .topbar p { display: none; }
    .tech-user .topbar .btn { padding: 9px 11px; font-size: 12px; }
    .tech-user .content { gap: 12px; }
    .tech-user .card,
    .tech-user .login-card,
    .tech-user .qr-card {
        border-radius: 18px;
        padding: 16px;
        box-shadow: 0 8px 24px rgba(21, 32, 51, .07);
    }
    .tech-user .module-grid,
    .tech-module-grid { grid-template-columns: 1fr; }
    .tech-quick-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
    .tech-quick-card { padding: 15px; }
    .tech-quick-card span { font-size: 26px; }
    .tech-page-head,
    .tech-hero,
    .tech-user .section-title { flex-direction: column; align-items: stretch; }
    .tech-order-card { padding: 13px; }
    .tech-order-actions { justify-content: stretch; }
    .tech-order-actions .btn,
    .tech-order-actions form,
    .tech-order-actions button,
    .tech-search-row .btn { width: 100%; text-align: center; }
    .tech-search-row { grid-template-columns: 1fr; }
    .tech-card-meta span { flex: 1 1 auto; justify-content: center; border-radius: 12px; }
    .tech-user table,
    .tech-user thead,
    .tech-user tbody,
    .tech-user th,
    .tech-user td,
    .tech-user tr { display: block; }
    .tech-user thead { display: none; }
    .tech-user tr {
        border: 1px solid var(--line);
        border-radius: 14px;
        margin-bottom: 10px;
        background: #fff;
        overflow: hidden;
    }
    .tech-user td { border-bottom: 1px solid #eef2f7; padding: 10px 12px; }
    .tech-user td:last-child { border-bottom: 0; }
    .tech-user .actions-row { justify-content: stretch; }
    .tech-user .actions-row .btn,
    .tech-user .inline-form .btn { width: 100%; }
    .tech-user input,
    .tech-user select,
    .tech-user textarea { min-height: 46px; font-size: 16px; }
    .tech-user .signature-box canvas { height: 150px; }
}

/* v0.8.6 Hotfix móvil técnico + formulario de ejecución */
.tech-module-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    align-items: start;
}
.tech-module-grid > .card { min-width: 0; }
.tech-module-grid .section-title > div,
.tech-module-grid .tech-order-top,
.tech-module-grid .tech-order-body,
.tech-module-grid .tech-order-actions,
.tech-module-grid .tech-card-meta { background: transparent; border: 0; padding: 0; border-radius: 0; }
.tech-compact-hero {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    padding: 16px 18px;
    background: linear-gradient(135deg, #ffffff, #eef6ff);
}
.tech-compact-hero h2 { margin: 2px 0 0; font-size: 24px; }
.tech-hero-actions { display: flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }

@media (max-width: 900px) {
    body.tech-user,
    body.tech-app-page { background: #eef3fa; }
    .tech-user .app-shell,
    .tech-app-page .app-shell { display: block; min-height: 100vh; }
    .tech-user .sidebar,
    .tech-app-page .sidebar { display: none !important; }
    .tech-user .main,
    .tech-app-page .main {
        padding: calc(8px + env(safe-area-inset-top)) 10px calc(78px + env(safe-area-inset-bottom));
    }
    .tech-user .topbar,
    .tech-app-page .topbar {
        position: sticky;
        top: 0;
        z-index: 25;
        margin: calc(-8px - env(safe-area-inset-top)) -10px 10px;
        padding: calc(8px + env(safe-area-inset-top)) 10px 8px;
        background: rgba(238, 243, 250, .97);
        border-bottom: 1px solid rgba(219, 227, 239, .9);
        backdrop-filter: blur(10px);
        flex-direction: row;
        align-items: center;
        gap: 8px;
    }
    .tech-user .topbar h1,
    .tech-app-page .topbar h1 { font-size: 18px; line-height: 1.1; }
    .tech-user .topbar p,
    .tech-app-page .topbar p { display: none; }
    .tech-user .topbar .btn,
    .tech-app-page .topbar .btn { padding: 8px 10px; font-size: 12px; border-radius: 10px; }
    .tech-user .content,
    .tech-app-page .content { gap: 10px; }
    .tech-user .card,
    .tech-app-page .card,
    .tech-user .login-card,
    .tech-app-page .login-card,
    .tech-user .qr-card,
    .tech-app-page .qr-card {
        border-radius: 16px;
        padding: 14px;
        box-shadow: 0 8px 22px rgba(21, 32, 51, .06);
    }
    .tech-compact-hero {
        padding: 12px 14px;
        align-items: flex-start;
    }
    .tech-compact-hero h2 { font-size: 20px; }
    .tech-eyebrow { font-size: 11px; }
    .tech-hero-actions { gap: 6px; justify-content: flex-end; }
    .tech-hero-actions .btn { padding: 8px 10px; font-size: 12px; }
    .tech-quick-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 7px; }
    .tech-quick-card {
        padding: 10px 6px;
        border-radius: 14px;
        text-align: center;
        box-shadow: none;
    }
    .tech-quick-card span { font-size: 20px; }
    .tech-quick-card strong { margin-top: 4px; font-size: 11px; line-height: 1.15; }
    .tech-module-grid { grid-template-columns: 1fr; gap: 10px; }
    .tech-user .section-title,
    .tech-app-page .section-title { flex-direction: row; align-items: center; gap: 8px; margin-bottom: 10px; }
    .tech-user .section-title h2,
    .tech-app-page .section-title h2 { font-size: 18px; margin-bottom: 2px; }
    .tech-user .section-title .muted,
    .tech-app-page .section-title .muted { font-size: 12px; margin-top: 2px; }
    .tech-user .section-title .btn,
    .tech-app-page .section-title .btn { padding: 8px 10px; font-size: 12px; width: auto; }
    .tech-card-list { gap: 9px; }
    .tech-order-card { padding: 11px; border-radius: 14px; }
    .tech-order-top { margin-bottom: 6px; }
    .tech-order-top strong { font-size: 14px; }
    .tech-order-body h3 { font-size: 15px; margin-bottom: 3px; }
    .tech-order-body p { font-size: 13px; margin: 2px 0; }
    .tech-card-meta { gap: 5px; margin-top: 7px; }
    .tech-card-meta span { font-size: 11px; padding: 4px 7px; flex: 0 1 auto; }
    .tech-order-actions { gap: 7px; margin-top: 8px; justify-content: flex-start; }
    .tech-order-actions .btn,
    .tech-order-actions button { width: auto; min-width: 86px; padding: 9px 11px; font-size: 13px; }
    .tech-order-actions form { width: auto; }
    .tech-page-head { flex-direction: row; align-items: center; padding: 12px 14px; }
    .tech-page-head h2 { font-size: 20px; margin: 0; }
    .tech-page-head .muted { display: none; }
    .tech-tabs { overflow-x: auto; flex-wrap: nowrap; padding-bottom: 4px; margin: 4px 0 10px; }
    .tech-tabs a { white-space: nowrap; padding: 8px 11px; font-size: 12px; }
    .tech-bottom-nav { display: grid; }

    .tech-user .form-section,
    .tech-app-page .form-section {
        padding: 13px;
        margin: 10px 0;
        border-radius: 15px;
    }
    .tech-user .form-section h3,
    .tech-app-page .form-section h3 { font-size: 18px; margin-bottom: 5px; }
    .tech-user label,
    .tech-app-page label { font-size: 13px; margin-top: 10px; margin-bottom: 5px; }
    .tech-user input,
    .tech-user select,
    .tech-user textarea,
    .tech-app-page input,
    .tech-app-page select,
    .tech-app-page textarea { min-height: 44px; padding: 10px 12px; font-size: 16px; }
    .tech-user .mobile-sticky-actions,
    .tech-app-page .mobile-sticky-actions {
        position: sticky;
        bottom: calc(68px + env(safe-area-inset-bottom));
        z-index: 20;
        background: rgba(238, 243, 250, .96);
        padding: 8px 0 0;
    }
    .tech-user .mobile-sticky-actions .btn,
    .tech-app-page .mobile-sticky-actions .btn { width: 100%; }
}

@media (max-width: 430px) {
    .tech-compact-hero { flex-direction: row; }
    .tech-hero-actions { flex-direction: column; }
    .tech-quick-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

/* v0.8.7 Operación técnica de mantención y reparaciones asociadas */
.repair-context-card { border-left: 4px solid #204b8f; }
.repair-stack { display: grid; gap: 12px; }
.repair-card-mini {
    border: 1px solid var(--line);
    border-radius: 16px;
    background: #fbfcff;
    padding: 14px;
}
.repair-card-head {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: flex-start;
}
.repair-badges { display: flex; gap: 7px; flex-wrap: wrap; justify-content: flex-end; }
.quote-technical-box {
    border: 1px solid #c7d7fe;
    background: #eef4ff;
    border-radius: 14px;
    padding: 12px;
    margin-top: 10px;
}
.repair-notes,
.repair-note-form,
.new-repair-request-box {
    margin-top: 10px;
    border: 1px dashed var(--line);
    border-radius: 12px;
    padding: 10px 12px;
    background: #fff;
}
.repair-notes summary,
.repair-note-form summary,
.new-repair-request-box summary {
    cursor: pointer;
    color: var(--primary);
    font-weight: 900;
}
.repair-note { border-top: 1px solid #eef2f7; padding-top: 8px; margin-top: 8px; }
.repair-note:first-of-type { border-top: 0; }
.repair-note span { color: var(--muted); font-size: 12px; margin-left: 6px; }
.repair-note p { margin: 4px 0 0; }
.dq-form-grid-lite {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}
.dq-form-grid-lite .span-2 { grid-column: span 2; }
.runtime-section { padding: 0; overflow: hidden; }
.runtime-section > summary {
    list-style: none;
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 10px;
    padding: 14px 16px;
    font-weight: 900;
}
.runtime-section > summary::-webkit-details-marker { display: none; }
.runtime-section > summary::before {
    content: '▸';
    color: var(--primary);
    margin-right: 6px;
    transition: transform .18s ease;
}
.runtime-section[open] > summary::before { transform: rotate(90deg); }
.runtime-section > summary small {
    color: var(--muted);
    font-weight: 800;
    font-size: 12px;
}
.runtime-section > :not(summary) { margin-left: 16px; margin-right: 16px; }
.runtime-field { margin: 10px 0 14px; }
.system-only-section { background: #f8fafc; }
.status-chip-group { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.status-chip { margin: 0; }
.status-chip input { position: absolute; opacity: 0; pointer-events: none; }
.status-chip span {
    display: grid;
    place-items: center;
    min-height: 42px;
    padding: 10px 12px;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: #fff;
    color: var(--ink);
    font-weight: 900;
    text-align: center;
}
.status-chip input:checked + span {
    background: #e9f1ff;
    border-color: var(--primary);
    color: var(--primary);
    box-shadow: 0 0 0 2px rgba(32, 75, 143, .08);
}
.sticky-close-actions {
    position: sticky;
    bottom: 0;
    z-index: 10;
    background: linear-gradient(180deg, rgba(244,247,251,0), rgba(244,247,251,.96) 30%);
    padding-top: 16px;
    padding-bottom: 4px;
}
@media (max-width: 900px) {
    .tech-user .workorder-hero-card,
    .tech-user .workorder-form-card,
    .tech-user .repair-context-card,
    .tech-app-page .workorder-hero-card,
    .tech-app-page .workorder-form-card,
    .tech-app-page .repair-context-card { padding: 12px; }
    .tech-user .detail-grid,
    .tech-app-page .detail-grid { gap: 8px; }
    .tech-user .detail-grid div,
    .tech-app-page .detail-grid div { padding: 10px; border-radius: 12px; }
    .tech-user .dq-system-runtime-field,
    .tech-app-page .dq-system-runtime-field { display: none; }
    .tech-user .runtime-section,
    .tech-app-page .runtime-section { padding: 0; margin: 8px 0; }
    .tech-user .runtime-section > summary,
    .tech-app-page .runtime-section > summary { padding: 12px 13px; font-size: 16px; }
    .tech-user .runtime-section > :not(summary),
    .tech-app-page .runtime-section > :not(summary) { margin-left: 12px; margin-right: 12px; }
    .tech-user .runtime-field,
    .tech-app-page .runtime-field { margin: 8px 0 11px; }
    .tech-user .status-chip-group,
    .tech-app-page .status-chip-group { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; }
    .tech-user .status-chip span,
    .tech-app-page .status-chip span { min-height: 39px; padding: 8px 9px; font-size: 14px; }
    .tech-user .repair-card-mini,
    .tech-app-page .repair-card-mini { padding: 12px; border-radius: 14px; }
    .tech-user .repair-card-head,
    .tech-app-page .repair-card-head { flex-direction: column; gap: 8px; }
    .tech-user .repair-badges,
    .tech-app-page .repair-badges { justify-content: flex-start; }
    .tech-user .dq-form-grid-lite,
    .tech-app-page .dq-form-grid-lite { grid-template-columns: 1fr; }
    .tech-user .dq-form-grid-lite .span-2,
    .tech-app-page .dq-form-grid-lite .span-2 { grid-column: span 1; }
    .tech-user .sticky-close-actions,
    .tech-app-page .sticky-close-actions {
        bottom: calc(68px + env(safe-area-inset-bottom));
        padding-bottom: 6px;
    }
    .tech-user .sticky-close-actions .btn,
    .tech-app-page .sticky-close-actions .btn { width: 100%; }
}

/* v0.8.8 Hotfix WebApp técnica: OT móvil, flujo llegada/ejecución y mapa supervisor */
.tech-progress-steps {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    margin: 14px 0 4px;
}
.tech-progress-steps span {
    border: 1px solid var(--line);
    border-radius: 999px;
    background: #f8fafc;
    color: var(--muted);
    font-size: 12px;
    font-weight: 900;
    text-align: center;
    padding: 8px 10px;
}
.tech-progress-steps span.done { background: #ecfdf3; border-color: #abefc6; color: var(--success); }
.tech-progress-steps span.current { background: #e9f1ff; border-color: #c7d7fe; color: var(--primary); }
.tech-progress-steps span.locked { background: #f2f4f7; color: #98a2b3; }
.tech-form-lock { margin-top: 0; }
.tech-step-hint { align-self: center; }
.final-status-chip-group { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.technician-workload-board { display: grid; gap: 12px; }
.tech-workload-row {
    border: 1px solid var(--line);
    border-radius: 16px;
    background: #fbfcff;
    padding: 14px;
}
.tech-workload-head {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: center;
    margin-bottom: 10px;
}
.tech-workload-metrics { display: flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
.tech-workload-metrics span {
    background: #edf2f8;
    border-radius: 999px;
    padding: 5px 9px;
    font-size: 12px;
    color: var(--muted);
    font-weight: 800;
}
.tech-workload-metrics b { color: var(--ink); }
.tech-workload-timeline { display: flex; gap: 8px; flex-wrap: wrap; align-items: stretch; }
.tech-workload-chip {
    min-width: 150px;
    max-width: 220px;
    border: 1px solid var(--line);
    border-left: 5px solid var(--primary);
    border-radius: 12px;
    background: #fff;
    padding: 9px 10px;
}
.tech-workload-chip.status-in_progress { border-left-color: #8a6100; background: #fff8db; }
.tech-workload-chip.status-closed,
.tech-workload-chip.status-closed_with_observation,
.tech-workload-chip.status-closed_with_critical_observation { border-left-color: var(--success); background: #ecfdf3; }
.tech-workload-chip strong { display: block; font-size: 13px; }
.tech-workload-chip span,
.tech-workload-chip small { display: block; color: var(--muted); font-size: 11px; margin-top: 2px; }
.tech-workload-empty { color: var(--muted); font-size: 13px; }

@media (max-width: 900px) {
    body.tech-order-page { background: #eef3fa; }
    body.tech-order-page .topbar { display: none !important; }
    body.tech-order-page .main { padding: calc(10px + env(safe-area-inset-top)) 10px calc(82px + env(safe-area-inset-bottom)); }
    body.tech-order-page .content { gap: 9px; }
    body.tech-order-page .workorder-hero-card,
    body.tech-order-page .repair-context-card,
    body.tech-order-page .workorder-form-card { border-radius: 16px; padding: 13px; }
    body.tech-order-page .workorder-hero-card .section-title { flex-direction: row; align-items: flex-start; margin-bottom: 10px; }
    body.tech-order-page .workorder-hero-card .section-title h2 { font-size: 23px; line-height: 1.08; overflow-wrap: anywhere; }
    body.tech-order-page .workorder-hero-card .section-title p { font-size: 13px; line-height: 1.25; }
    body.tech-order-page .workorder-hero-card .section-title .btn { flex: 0 0 auto; padding: 9px 12px; }
    body.tech-order-page .workorder-summary-grid,
    .tech-user .workorder-summary-grid,
    .tech-app-page .workorder-summary-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 8px !important;
        margin-top: 10px;
    }
    body.tech-order-page .workorder-summary-grid div,
    .tech-user .workorder-summary-grid div,
    .tech-app-page .workorder-summary-grid div {
        min-width: 0;
        padding: 9px 10px !important;
        border-radius: 12px !important;
        overflow: hidden;
    }
    body.tech-order-page .workorder-summary-grid span,
    .tech-user .workorder-summary-grid span,
    .tech-app-page .workorder-summary-grid span {
        font-size: 10px;
        margin-bottom: 4px;
        letter-spacing: .03em;
    }
    body.tech-order-page .workorder-summary-grid strong,
    .tech-user .workorder-summary-grid strong,
    .tech-app-page .workorder-summary-grid strong {
        font-size: 13px;
        line-height: 1.18;
        overflow-wrap: anywhere;
    }
    body.tech-order-page .workorder-summary-grid .badge,
    .tech-user .workorder-summary-grid .badge,
    .tech-app-page .workorder-summary-grid .badge { font-size: 10px; padding: 3px 6px; }
    .tech-progress-steps { gap: 5px; margin-top: 10px; }
    .tech-progress-steps span { font-size: 10px; padding: 7px 4px; }
    body.tech-order-page .tech-ot-actions { margin-top: 10px; gap: 8px; justify-content: stretch; }
    body.tech-order-page .tech-ot-actions form,
    body.tech-order-page .tech-ot-actions .btn { width: 100%; }
    body.tech-order-page .tech-step-hint { display: block; width: 100%; text-align: center; }
    body.tech-order-page .section-title h2 { font-size: 20px; line-height: 1.12; }
    body.tech-order-page .section-title .muted { font-size: 13px; line-height: 1.25; }
    body.tech-order-page .runtime-section > summary { padding: 10px 12px; font-size: 15px; }
    body.tech-order-page .runtime-section > summary small { font-size: 11px; }
    body.tech-order-page .runtime-field label { font-size: 13px; }
    body.tech-order-page .status-chip-group,
    .tech-user .status-chip-group,
    .tech-app-page .status-chip-group { gap: 6px; }
    body.tech-order-page .status-chip span,
    .tech-user .status-chip span,
    .tech-app-page .status-chip span {
        min-height: 34px;
        padding: 7px 8px;
        border-radius: 12px;
        font-size: 13px;
        line-height: 1.15;
    }
    body.tech-order-page .final-status-chip-group,
    .tech-user .final-status-chip-group,
    .tech-app-page .final-status-chip-group { grid-template-columns: 1fr; }
    body.tech-order-page .final-status-chip-group .status-chip span,
    .tech-user .final-status-chip-group .status-chip span,
    .tech-app-page .final-status-chip-group .status-chip span { min-height: 38px; justify-content: start; text-align: left; }
    body.tech-order-page .final-status-section textarea { min-height: 88px; }
    body.tech-order-page .sticky-close-actions { bottom: calc(68px + env(safe-area-inset-bottom)); }
}

@media (max-width: 520px) {
    .tech-workload-head { flex-direction: column; align-items: flex-start; }
    .tech-workload-metrics { justify-content: flex-start; }
    .tech-workload-chip { min-width: 100%; max-width: none; }
}

/* v0.8.9 - Asignación administrativa de OT y grupos de técnicos */
.dq-filter-panel{display:grid;grid-template-columns:repeat(4,minmax(160px,1fr));gap:14px;margin:18px 0 22px;padding:16px;border:1px solid #e5eaf3;border-radius:18px;background:#f8fafd}
.dq-filter-panel label,.dq-map-filter-bar label{display:block;font-size:12px;font-weight:800;color:#667085;text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px}
.dq-filter-panel input,.dq-filter-panel select,.dq-map-filter-bar select,.dq-assignment-form select{width:100%;border:1px solid #d7dfef;border-radius:12px;padding:10px 12px;background:#fff;font-weight:700;color:#101828}
.dq-filter-actions{display:flex;gap:8px;align-items:end}
.row-unassigned{background:#fffaf0}
.badge.warning{background:#fff4e5;color:#93370d;border:1px solid #fedf89}
.compact-actions{gap:8px;align-items:center;flex-wrap:wrap}
.dq-inline-assign{position:relative;display:inline-block}
.dq-inline-assign summary{list-style:none;cursor:pointer;border:0;border-radius:10px;background:#eef3fb;color:#183b72;padding:9px 12px;font-size:13px;font-weight:800}
.dq-inline-assign summary::-webkit-details-marker{display:none}
.dq-inline-assign[open] summary{background:#2f5597;color:#fff}
.dq-inline-assign form{position:absolute;right:0;top:calc(100% + 8px);z-index:20;min-width:280px;padding:14px;background:#fff;border:1px solid #d7dfef;border-radius:16px;box-shadow:0 18px 42px rgba(16,24,40,.18)}
.dq-inline-assign form label{font-size:12px;font-weight:800;color:#667085;text-transform:uppercase;display:block;margin-bottom:6px}
.dq-inline-assign form button{margin-top:10px;width:100%}
.workorder-assignment-card{border-left:4px solid #2f5597}
.dq-assignment-panel{display:grid;grid-template-columns:minmax(220px,340px) 1fr;gap:20px;align-items:end}
.dq-assignment-panel strong{display:block;font-size:20px;margin-top:4px;color:#101828}.dq-assignment-panel small{display:block;color:#667085;margin-top:4px}
.dq-assignment-form{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:end}.dq-assignment-form label{grid-column:1/-1;font-size:12px;text-transform:uppercase;font-weight:800;color:#667085}
.dq-map-filter-bar{display:flex;gap:10px;align-items:end;flex-wrap:wrap;margin:16px 0 18px}.dq-map-filter-bar select{min-width:260px}
.dq-group-picker{margin-top:22px;border:1px solid #e5eaf3;border-radius:18px;background:#f8fafd;padding:16px}.dq-group-picker-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}.dq-group-picker-head h3{margin:0}
.dq-tech-checkbox-list{display:grid;grid-template-columns:repeat(2,minmax(260px,1fr));gap:10px}.dq-tech-checkbox{display:flex;align-items:center;gap:12px;padding:12px;border:1px solid #d7dfef;border-radius:14px;background:#fff;cursor:pointer}.dq-tech-checkbox input{position:absolute;opacity:0;pointer-events:none}.dq-check-square{width:22px;height:22px;border:2px solid #98a2b3;border-radius:6px;display:inline-flex;align-items:center;justify-content:center;flex:none}.dq-tech-checkbox.selected,.dq-tech-checkbox:has(input:checked){border-color:#2f5597;background:#f3f6fb}.dq-tech-checkbox:has(input:checked) .dq-check-square{background:#101828;border-color:#101828}.dq-tech-checkbox:has(input:checked) .dq-check-square:after{content:'✓';color:#fff;font-weight:900}.dq-tech-checkbox strong{display:block}.dq-tech-checkbox small{display:block;color:#667085;margin-top:3px}.dq-tech-checkbox em{margin-left:auto;font-style:normal;color:#667085;font-weight:800;font-size:12px;white-space:nowrap}
@media (max-width:1100px){.dq-filter-panel{grid-template-columns:repeat(2,minmax(160px,1fr))}.dq-assignment-panel{grid-template-columns:1fr}.dq-tech-checkbox-list{grid-template-columns:1fr}}
@media (max-width:720px){.dq-filter-panel{grid-template-columns:1fr}.dq-filter-actions{align-items:stretch}.dq-assignment-form{grid-template-columns:1fr}.dq-inline-assign form{position:fixed;left:16px;right:16px;top:auto;bottom:20px;min-width:0}.dq-map-filter-bar{display:block}.dq-map-filter-bar select,.dq-map-filter-bar .btn{width:100%;margin-top:8px}}

/* v0.9.0 - Panel de supervisión operativo */
.dq-supervision-hero{border-left:4px solid #2f5597}
.dq-supervision-filters{display:grid;grid-template-columns:160px minmax(220px,1fr) minmax(180px,240px) auto;gap:12px;align-items:end;margin-top:18px}
.dq-supervision-filters label{display:block;font-size:12px;font-weight:900;letter-spacing:.04em;text-transform:uppercase;color:#667085;margin-bottom:6px}
.dq-supervision-filters input,.dq-supervision-filters select{width:100%;border:1px solid #d7dfef;border-radius:12px;background:#fff;color:#101828;padding:10px 12px;font-weight:800}
.dq-supervision-filter-actions{display:flex;gap:8px;align-items:end;flex-wrap:wrap}.dq-supervision-filter-actions .btn{white-space:nowrap}
.dq-supervision-summary{display:grid;grid-template-columns:repeat(6,minmax(120px,1fr));gap:12px}.dq-supervision-summary .card{padding:16px 18px}.dq-supervision-summary span{display:block;color:#667085;font-weight:800;font-size:12px;text-transform:uppercase;letter-spacing:.04em}.dq-supervision-summary strong{display:block;margin-top:4px;font-size:28px;color:#101828}
.compact-title{margin-bottom:8px}.dq-group-chip-row{display:flex;gap:10px;flex-wrap:wrap}.dq-group-filter-chip{display:inline-flex;align-items:center;gap:8px;border:1px solid #d7dfef;border-radius:999px;background:#fff;color:#183b72;text-decoration:none;padding:9px 13px;font-weight:900}.dq-group-filter-chip span{color:#f59e0b}.dq-group-filter-chip small{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;border-radius:999px;background:#edf2fa;color:#183b72;font-size:12px}.dq-group-filter-chip.active{background:#183b72;color:#fff;border-color:#183b72}.dq-group-filter-chip.active small{background:rgba(255,255,255,.18);color:#fff}
.dq-unassigned-board{border-left:4px solid #f79009}.dq-unassigned-list{display:grid;grid-template-columns:repeat(3,minmax(220px,1fr));gap:10px}.dq-unassigned-item{display:block;text-decoration:none;border:1px solid #fedf89;border-left:5px solid #f79009;background:#fffbf2;border-radius:14px;padding:12px;color:#101828}.dq-unassigned-item strong{display:block;font-size:14px}.dq-unassigned-item span,.dq-unassigned-item small{display:block;margin-top:4px;color:#667085;font-size:12px}.dq-unassigned-item:hover{box-shadow:0 10px 24px rgba(247,144,9,.12);transform:translateY(-1px)}
.dq-timeline-card{overflow:hidden}.dq-timeline-scroll{overflow-x:auto;padding-bottom:4px}.dq-timeline-hours{display:grid;grid-template-columns:260px repeat(var(--hours),minmax(72px,1fr));min-width:1320px;border:1px solid #e5eaf3;border-radius:16px 16px 0 0;background:#f8fafd;color:#667085;font-weight:900}.dq-timeline-hours>div{padding:9px 10px;border-left:1px solid #e5eaf3;text-align:center}.dq-timeline-hours .dq-timeline-tech-label{text-align:left;border-left:0;color:#101828}
.dq-timeline-row{display:grid;grid-template-columns:260px minmax(1060px,1fr) 230px;min-width:1550px;border:1px solid #e5eaf3;border-top:0;background:#fff}.dq-timeline-row:nth-child(even){background:#fbfdff}.dq-timeline-person{display:flex;align-items:center;gap:10px;padding:12px;border-right:1px solid #e5eaf3}.dq-person-avatar{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#edf2fa}.dq-timeline-person strong{display:block;color:#101828;font-size:14px}.dq-timeline-person small,.dq-timeline-person em{display:block;color:#667085;font-size:11px;font-style:normal;margin-top:2px}.dq-timeline-lane{position:relative;min-height:72px;border-right:1px solid #e5eaf3;overflow:hidden}.dq-timeline-grid-bg{position:absolute;inset:0;background:repeating-linear-gradient(to right,transparent 0,transparent calc(100% / 14 - 1px),#e5eaf3 calc(100% / 14 - 1px),#e5eaf3 calc(100% / 14))}.dq-empty-lane{position:absolute;left:16px;top:25px;color:#98a2b3;font-weight:800;font-size:13px}.dq-timeline-order{position:absolute;top:10px;min-width:118px;max-width:310px;border-radius:12px;border:1px solid #d7dfef;padding:8px 10px;text-decoration:none;color:#101828;box-shadow:0 8px 18px rgba(16,24,40,.08);z-index:2;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.dq-timeline-order strong,.dq-timeline-order span,.dq-timeline-order small{display:block;overflow:hidden;text-overflow:ellipsis}.dq-timeline-order strong{font-size:12px}.dq-timeline-order span{font-size:11px;color:#344054;margin-top:2px}.dq-timeline-order small{font-size:10px;color:#667085;margin-top:2px}.dq-timeline-order.floating{position:relative;display:inline-block;margin:10px;left:auto!important;width:auto!important}.dq-timeline-order.stage-assigned{background:#edf6ff;border-color:#b2ddff}.dq-timeline-order.stage-arrived{background:#fff7e8;border-color:#fedf89}.dq-timeline-order.stage-in_progress{background:#fef7c3;border-color:#fdb022}.dq-timeline-order.stage-closed{background:#ecfdf3;border-color:#abefc6}.dq-timeline-order.stage-overdue{background:#fff1f3;border-color:#fecdd6}.dq-timeline-order.stage-unassigned{background:#fffbf2;border-color:#fedf89}.dq-timeline-metrics{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:10px;background:#fbfdff}.dq-timeline-metrics span{border:1px solid #e5eaf3;border-radius:10px;background:#fff;padding:7px 8px;font-size:11px;color:#667085;font-weight:800}.dq-timeline-metrics b{display:block;color:#101828;font-size:17px}.dq-timeline-legend{display:flex;gap:8px;flex-wrap:wrap}.dq-timeline-legend span{display:inline-flex;align-items:center;border-radius:999px;padding:6px 9px;font-size:12px;font-weight:900;border:1px solid #d7dfef}.dq-timeline-legend .stage-assigned{background:#edf6ff}.dq-timeline-legend .stage-arrived{background:#fff7e8}.dq-timeline-legend .stage-in_progress{background:#fef7c3}.dq-timeline-legend .stage-closed{background:#ecfdf3}.dq-timeline-legend .stage-overdue{background:#fff1f3}
@media (max-width:1200px){.dq-supervision-filters{grid-template-columns:1fr 1fr}.dq-supervision-summary{grid-template-columns:repeat(3,1fr)}.dq-unassigned-list{grid-template-columns:repeat(2,minmax(220px,1fr))}}
@media (max-width:720px){.dq-supervision-filters{grid-template-columns:1fr}.dq-supervision-filter-actions .btn{width:100%}.dq-supervision-summary{grid-template-columns:repeat(2,1fr)}.dq-supervision-summary strong{font-size:22px}.dq-unassigned-list{grid-template-columns:1fr}.dq-timeline-hours{grid-template-columns:190px repeat(var(--hours),minmax(64px,1fr));min-width:1120px}.dq-timeline-row{grid-template-columns:190px minmax(930px,1fr) 190px;min-width:1310px}.dq-timeline-person{padding:10px}.dq-timeline-person small{display:none}.dq-timeline-metrics{grid-template-columns:1fr}.dq-timeline-order{min-width:104px;padding:7px 8px}}

/* v0.9.0 - Panel de supervision operativo */
.supervision-hero-card{border-left:5px solid #2f5597}
.supervision-filter-panel{display:grid;grid-template-columns:1.1fr 1.4fr 1.2fr 1.2fr auto;gap:12px;align-items:end;margin-top:16px;padding:14px;border:1px solid #e5eaf3;border-radius:18px;background:#f8fafd}
.supervision-filter-panel label{display:block;font-size:11px;font-weight:900;color:#667085;text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px}
.supervision-filter-panel input,.supervision-filter-panel select{width:100%;border:1px solid #d7dfef;border-radius:12px;padding:10px 12px;background:#fff;font-weight:800;color:#101828}
.supervision-filter-actions{display:flex;gap:8px;align-items:end}.supervision-filter-actions .btn{white-space:nowrap}
.supervision-group-pills{display:flex;gap:10px;overflow-x:auto;padding:14px 2px 2px;margin-top:8px;scrollbar-width:thin}
.supervision-group-pill{display:flex;align-items:center;gap:10px;min-width:210px;max-width:280px;padding:12px 14px;border:1px solid #d7dfef;border-radius:16px;background:#fff;color:#101828;text-decoration:none;box-shadow:0 10px 24px rgba(16,24,40,.04)}
.supervision-group-pill .star{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:10px;background:#edf2fb;color:#2f5597;font-size:17px;flex:none}.supervision-group-pill strong{display:block;font-size:14px;line-height:1.15}.supervision-group-pill small{display:block;color:#667085;font-size:11px;margin-top:2px;line-height:1.2}.supervision-group-pill.active{border-color:#2f5597;background:#f3f7ff}.supervision-group-pill.active .star{background:#2f5597;color:#fff}
.supervision-kpi-grid{display:grid;grid-template-columns:repeat(6,minmax(120px,1fr));gap:12px;margin-bottom:16px}.supervision-kpi{padding:16px;border:1px solid #e5eaf3;border-radius:18px;background:#fff;box-shadow:0 12px 28px rgba(16,24,40,.05)}.supervision-kpi span{display:block;font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.04em;color:#667085}.supervision-kpi strong{display:block;font-size:28px;line-height:1;margin-top:8px;color:#101828}.supervision-kpi.pending{border-left:5px solid #2f5597}.supervision-kpi.arrived{border-left:5px solid #8a6100}.supervision-kpi.progress{border-left:5px solid #c2410c}.supervision-kpi.closed{border-left:5px solid #067647}.supervision-kpi.unassigned{border-left:5px solid #b42318}
.supervision-layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:16px;align-items:start}.supervision-board-card{overflow:hidden}.supervision-board-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px}.supervision-board-head h2{margin:0}.supervision-day-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.supervision-timeline-shell{overflow-x:auto;padding-bottom:4px}.supervision-hours-row,.supervision-tech-row{display:grid;grid-template-columns:260px minmax(900px,1fr);gap:0}.supervision-resource-heading{padding:10px 12px;border:1px solid #e5eaf3;border-radius:14px 0 0 14px;background:#f8fafd;font-weight:900;color:#667085;text-transform:uppercase;font-size:12px}.supervision-hours-grid{display:grid;grid-template-columns:repeat(15,minmax(58px,1fr));border:1px solid #e5eaf3;border-left:0;border-radius:0 14px 14px 0;background:#f8fafd}.supervision-hours-grid span{text-align:center;padding:10px 4px;font-size:12px;font-weight:900;color:#667085;border-left:1px solid #e5eaf3}.supervision-tech-row{min-height:104px;border-bottom:1px solid #edf2f7}.supervision-resource-cell{display:flex;gap:10px;align-items:flex-start;padding:12px;border-left:1px solid #e5eaf3;background:#fff}.supervision-tech-avatar{width:36px;height:36px;border-radius:12px;background:#2f5597;color:#fff;font-weight:900;display:flex;align-items:center;justify-content:center;flex:none}.supervision-resource-cell strong{display:block;font-size:14px;line-height:1.2}.supervision-resource-cell small{display:block;color:#667085;font-size:11px;margin-top:3px}.supervision-resource-badges{display:flex;gap:4px;flex-wrap:wrap;margin-top:8px}.supervision-resource-badges span{font-size:10px;font-weight:900;color:#667085;background:#eef3fb;border-radius:999px;padding:4px 7px}.supervision-timeline-grid{position:relative;display:grid;grid-template-columns:repeat(15,minmax(58px,1fr));gap:6px;align-items:start;padding:10px;min-height:104px;background:repeating-linear-gradient(to right,#fff 0,#fff calc(6.666% - 1px),#eef2f7 calc(6.666% - 1px),#eef2f7 6.666%)}.supervision-hour-line{display:none}.supervision-empty-row{grid-column:1/-1;align-self:center;color:#98a2b3;font-weight:800;font-size:13px;padding:12px}.supervision-order-card{z-index:1;border:1px solid #d7dfef;border-left:5px solid #2f5597;border-radius:12px;background:#fff;box-shadow:0 8px 18px rgba(16,24,40,.08);min-width:132px;overflow:visible}.supervision-order-card>a{display:block;text-decoration:none;color:#101828;padding:9px 10px}.supervision-order-card strong{display:block;font-size:12px;line-height:1.15;overflow-wrap:anywhere}.supervision-order-card span,.supervision-order-card small,.supervision-order-card em{display:block;font-size:10px;line-height:1.18;margin-top:3px;color:#667085;font-style:normal}.supervision-order-card em{font-weight:900;color:#101828}.supervision-order-card.phase-arrived{border-left-color:#8a6100;background:#fff8db}.supervision-order-card.phase-in_progress{border-left-color:#c2410c;background:#fff4ed}.supervision-order-card.phase-closed{border-left-color:#067647;background:#ecfdf3}.supervision-order-card.priority-critical,.supervision-order-card.priority-urgent{box-shadow:0 0 0 2px rgba(180,35,24,.16),0 8px 18px rgba(16,24,40,.08)}.supervision-card-menu{border-top:1px solid #e5eaf3}.supervision-card-menu summary{cursor:pointer;list-style:none;padding:7px 10px;font-size:10px;font-weight:900;color:#2f5597}.supervision-card-menu summary::-webkit-details-marker{display:none}.supervision-card-menu form{padding:9px 10px 10px;display:grid;gap:7px}.supervision-card-menu select{width:100%;border:1px solid #d7dfef;border-radius:9px;padding:7px;font-size:11px}.supervision-card-menu .btn{padding:7px 8px;font-size:11px}
.supervision-unassigned-card{position:sticky;top:16px}.compact-title h2{font-size:20px}.supervision-unassigned-list{display:grid;gap:10px}.supervision-unassigned-item{border:1px solid #e5eaf3;border-left:5px solid #b42318;border-radius:14px;background:#fff;padding:12px}.supervision-unassigned-item strong{display:block;font-size:14px}.supervision-unassigned-item span,.supervision-unassigned-item small{display:block;color:#667085;font-size:12px;margin-top:3px}.supervision-assign-inline{margin-top:8px}.supervision-assign-inline form{left:auto;right:0}
.technician-groups-hero{border-left:5px solid #2f5597}.technician-group-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:14px}.technician-group-summary div{border:1px solid #e5eaf3;border-radius:16px;background:#f8fafd;padding:14px}.technician-group-summary span{display:block;font-size:12px;font-weight:900;color:#667085;text-transform:uppercase}.technician-group-summary strong{display:block;font-size:20px;margin-top:6px;color:#101828}.technician-favorite-grid{display:grid;grid-template-columns:repeat(2,minmax(260px,1fr));gap:14px}.technician-favorite-card{position:relative;display:grid;grid-template-columns:46px 1fr;gap:12px;border:1px solid #e5eaf3;border-radius:22px;background:#fff;padding:16px;box-shadow:0 16px 34px rgba(16,24,40,.06)}.technician-favorite-card.inactive{opacity:.72}.technician-favorite-star{width:42px;height:42px;border-radius:14px;background:#101828;color:#fff;display:flex;align-items:center;justify-content:center;font-size:23px}.technician-favorite-title{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.technician-favorite-title h3{margin:0;font-size:20px;line-height:1.15}.technician-favorite-body p{margin:8px 0 0;color:#667085}.technician-favorite-meta{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.technician-favorite-meta span{background:#f3f6fb;border-radius:999px;padding:6px 9px;font-size:12px;color:#667085}.technician-member-cloud{display:flex;gap:6px;flex-wrap:wrap;margin-top:12px}.technician-member-cloud span{background:#eaf0fb;color:#183b72;border-radius:999px;padding:5px 8px;font-size:11px;font-weight:800}.technician-favorite-actions{grid-column:1/-1;display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;padding-top:10px;border-top:1px solid #eef2f7}
@media(max-width:1180px){.supervision-layout{grid-template-columns:1fr}.supervision-unassigned-card{position:static}.supervision-kpi-grid{grid-template-columns:repeat(3,1fr)}.supervision-filter-panel{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.supervision-filter-panel{grid-template-columns:1fr}.supervision-filter-actions{align-items:stretch}.supervision-filter-actions .btn{width:100%}.supervision-kpi-grid{grid-template-columns:repeat(2,1fr)}.supervision-hours-row,.supervision-tech-row{grid-template-columns:210px minmax(760px,1fr)}.supervision-day-actions .btn{flex:1}.technician-favorite-grid{grid-template-columns:1fr}.technician-group-summary{grid-template-columns:1fr}.technician-favorite-card{grid-template-columns:38px 1fr}.technician-favorite-star{width:36px;height:36px;border-radius:12px;font-size:19px}}

/* DataQuest-Lift v0.9.1 - Emergencias operativas */
.emergency-hero-card { border-left: 5px solid #dc2626; }
.emergency-summary-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-top: 18px; }
.emergency-summary-grid > div { background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 16px; padding: 14px; }
.emergency-summary-grid strong { display: block; color: #0f1d33; font-size: 28px; line-height: 1; }
.emergency-summary-grid span { color: #64748b; font-size: 12px; text-transform: uppercase; letter-spacing: .06em; }
.emergency-row-unassigned { background: #fff7ed; }
.badge.priority-urgent, .badge.priority-critical { background: #fee2e2; color: #991b1b; }
.badge.priority-high { background: #ffedd5; color: #9a3412; }
.badge.priority-normal { background: #dbeafe; color: #1e40af; }
.badge.priority-low { background: #dcfce7; color: #166534; }
.dq-emergency-form .split-inputs { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.emergency-tech-card { border-left: 5px solid #ef4444; }
.tech-quick-card.emergency-quick span { color: #dc2626; }
.tech-order-card.priority-urgent, .tech-order-card.priority-critical { border-color: #fecaca; box-shadow: 0 12px 32px rgba(220, 38, 38, .12); }

@media (max-width: 760px) {
    .emergency-summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .dq-emergency-form .split-inputs { grid-template-columns: 1fr; }
}
.dq-emergency-form .form-grid { display: grid; gap: 14px; margin-bottom: 14px; }
.dq-emergency-form .form-grid.two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.dq-emergency-form .form-grid.three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.dq-emergency-form textarea { width: 100%; }
.dq-emergency-form .actions-row.right { justify-content: flex-end; margin-top: 18px; }
@media (max-width: 760px) {
    .dq-emergency-form .form-grid.two,
    .dq-emergency-form .form-grid.three { grid-template-columns: 1fr; }
}


/* v0.9.2 - Operación técnica más intuitiva */
.compact-repair-context { border-left: 4px solid #315aa8; }
.repair-summary-pills { display:flex; gap:.5rem; flex-wrap:wrap; margin:.75rem 0 1rem; }
.repair-summary-pills span { background:#eef4ff; border:1px solid #d8e4ff; color:#1f3f76; border-radius:999px; padding:.4rem .65rem; font-weight:700; }
.repair-tech-subsection { margin-top:1rem; }
.repair-tech-subsection h3 { margin:0 0 .35rem; font-size:1.05rem; }
.repair-tech-list { display:grid; gap:.7rem; }
.repair-tech-item { border:1px solid #dfe6f3; background:#fff; border-radius:18px; padding:.85rem; overflow:hidden; }
.repair-tech-item.quoted { background:#f6f9ff; border-color:#cfe0ff; }
.repair-tech-item > div:first-child { display:flex; justify-content:space-between; gap:1rem; align-items:flex-start; }
.repair-tech-item strong { display:block; overflow-wrap:anywhere; }
.repair-tech-item small { display:block; color:#6b7280; margin-top:.2rem; }
.repair-tech-meta { display:flex; gap:.4rem; align-items:center; flex-wrap:wrap; justify-content:flex-end; }
.tech-repair-open-panel { margin:1rem 0; border:1px dashed #c9d7ef; border-radius:18px; background:#f8fbff; padding:.85rem; }
.tech-repair-open-panel .btn { width:100%; justify-content:center; }
.repair-context-card.is-highlighted { box-shadow:0 0 0 4px rgba(49,90,168,.16); }
.dq-response-image, .dq-file-preview img { max-width:260px; max-height:180px; border-radius:12px; display:block; border:1px solid #dfe6f3; object-fit:contain; background:#fff; }
.dq-response-table td { max-width: min(72vw, 900px); overflow-wrap:anywhere; word-break:break-word; vertical-align:top; }
.dq-file-link { overflow-wrap:anywhere; }
.tech-notification-toast { position:fixed; left:50%; bottom:calc(86px + env(safe-area-inset-bottom)); transform:translate(-50%, 18px); width:min(92vw, 420px); background:#0f1d33; color:#fff; border-radius:18px; padding:.9rem 1rem; box-shadow:0 18px 45px rgba(15,29,51,.35); z-index:9999; opacity:0; pointer-events:none; text-decoration:none; transition:.25s ease; }
.tech-notification-toast.show { opacity:1; transform:translate(-50%, 0); pointer-events:auto; }
.tech-notification-toast strong, .tech-notification-toast span { display:block; }
.tech-notification-toast span { opacity:.84; margin-top:.2rem; }

@media (max-width: 720px) {
  .repair-tech-item { border-radius:16px; padding:.75rem; }
  .repair-tech-item > div:first-child { display:block; }
  .repair-tech-meta { justify-content:flex-start; margin-top:.45rem; }
  .runtime-field .status-chip-group { grid-template-columns: repeat(2, minmax(0, 1fr)); gap:.42rem; }
  .status-chip span { padding:.55rem .45rem; min-height:42px; font-size:.9rem; }
  .final-status-chip-group { grid-template-columns:1fr; }
  .dq-response-table { display:block; overflow-x:auto; max-width:100%; }
  .dq-response-image, .dq-file-preview img { max-width:100%; height:auto; }
}

/* v0.9.2 - Reparaciones técnicas en drawer, notificaciones y evidencias seguras */
.repair-launch-card {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:1rem;
  border-left:4px solid #315aa8;
}
.repair-launch-card h2 { margin:0 0 .25rem; }
.repair-launch-card .btn { flex:none; }
.dq-repair-drawer[hidden] { display:none !important; }
.dq-repair-drawer { position:fixed; inset:0; z-index:10050; display:flex; justify-content:flex-end; }
.dq-repair-backdrop { position:absolute; inset:0; background:rgba(15,29,51,.52); backdrop-filter: blur(2px); }
.dq-repair-panel { position:relative; width:min(620px, 100%); height:100%; background:#f6f8fc; box-shadow:-18px 0 44px rgba(15,29,51,.25); display:flex; flex-direction:column; overflow:hidden; }
.dq-repair-panel header { background:#fff; border-bottom:1px solid #dfe6f3; padding:1rem; display:flex; justify-content:space-between; gap:1rem; align-items:flex-start; }
.dq-repair-panel header h2 { margin:.15rem 0 .25rem; }
.dq-repair-panel header p { margin:0; color:#667085; }
.dq-repair-close { width:42px; height:42px; border:0; border-radius:14px; background:#eef3fb; color:#101828; font-size:1.55rem; font-weight:900; cursor:pointer; }
.dq-repair-panel-body { padding:1rem; overflow:auto; display:grid; gap:1rem; }
.dq-repair-panel-section { background:#fff; border:1px solid #dfe6f3; border-radius:18px; padding:1rem; }
.dq-repair-panel-section h3 { margin:0 0 .35rem; }
.dq-quote-tech-list, .compact-repair-stack { display:grid; gap:.75rem; }
.dq-quote-tech-card { border:1px solid #cfe0ff; border-radius:16px; background:#f7faff; padding:.85rem; }
.dq-quote-tech-head { display:flex; justify-content:space-between; gap:.75rem; align-items:flex-start; margin-bottom:.6rem; }
.dq-quote-item-list { list-style:none; padding:0; margin:0; display:grid; gap:.55rem; }
.dq-quote-item-list li { border-top:1px solid #dfe6f3; padding-top:.55rem; }
.dq-quote-item-list li:first-child { border-top:0; padding-top:0; }
.dq-quote-item-list span { display:block; font-weight:800; overflow-wrap:anywhere; }
.dq-quote-item-list small { display:block; margin-top:.2rem; color:#667085; }
.ajax-feedback.success { color:#067647; font-weight:800; }
.ajax-feedback.danger { color:#b42318; font-weight:800; }
.dq-toast-wrap { position:fixed; z-index:12000; left:50%; bottom:calc(88px + env(safe-area-inset-bottom)); transform:translateX(-50%); width:min(92vw, 460px); display:grid; gap:.5rem; pointer-events:none; }
.dq-toast { opacity:0; transform:translateY(14px); transition:.22s ease; border-radius:16px; padding:.85rem 1rem; background:#0f1d33; color:#fff; box-shadow:0 16px 38px rgba(15,29,51,.30); font-weight:800; }
.dq-toast.show { opacity:1; transform:translateY(0); }
.dq-toast.success { background:#067647; }
.dq-toast.danger { background:#b42318; }
.dq-toast.info { background:#204b8f; }
.dq-response-long { display:inline-block; max-width:100%; overflow-wrap:anywhere; }
.dq-response-thumb { max-width:260px; max-height:180px; object-fit:contain; border:1px solid #dfe6f3; border-radius:12px; background:#fff; }
body.tech-repairs-open { overflow:hidden; }
@media (max-width: 760px) {
  .repair-launch-card { display:block; padding:.9rem; }
  .repair-launch-card .btn { width:100%; justify-content:center; margin-top:.75rem; }
  .dq-repair-panel { width:100%; }
  .dq-repair-panel header { padding:.85rem; }
  .dq-repair-panel-body { padding:.75rem; padding-bottom:calc(86px + env(safe-area-inset-bottom)); }
  .dq-repair-panel-section { border-radius:16px; padding:.85rem; }
  .dq-quote-tech-head { display:block; }
  .dq-quote-tech-head .badge { margin-top:.35rem; }
  .runtime-field .status-chip-group { gap:.34rem; }
  .status-chip span { padding:.48rem .4rem; min-height:38px; font-size:.84rem; border-radius:13px; }
  .dq-response-thumb { max-width:100%; height:auto; }
}

/* v0.9.3 Hotfix emergencias + tiempos OT + timeline real */
.workorder-timing-card{
    margin-top:14px;
    padding:14px;
    border:1px solid #dbe5f5;
    border-radius:16px;
    background:#f8fbff;
}
.workorder-timing-card h3{margin:0;font-size:18px;color:#101828;}
.workorder-timing-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:10px;}
.workorder-timing-grid>div{border:1px solid #d7dfef;border-radius:14px;background:#fff;padding:11px 12px;min-width:0;}
.workorder-timing-grid span{display:block;text-transform:uppercase;letter-spacing:.04em;font-size:11px;font-weight:900;color:#667085;margin-bottom:6px;}
.workorder-timing-grid strong{display:block;color:#101828;font-size:14px;overflow-wrap:anywhere;}
.workorder-timing-grid .timing-duration{background:#eef6ff;border-color:#bfd7ff;}
.workorder-timing-grid .timing-duration strong{font-size:18px;color:#244a86;}
.supervision-hours-grid{grid-template-columns:repeat(28,minmax(34px,1fr));}
.supervision-timeline-grid{grid-template-columns:repeat(28,minmax(34px,1fr));background:repeating-linear-gradient(to right,#fff 0,#fff calc(3.571% - 1px),#eef2f7 calc(3.571% - 1px),#eef2f7 3.571%);}
.supervision-order-card{min-width:96px;}
.supervision-card-times{font-size:9px!important;color:#475467!important;line-height:1.18!important;}
@media (max-width: 900px){
    .workorder-timing-grid{grid-template-columns:1fr 1fr;gap:8px;}
    .workorder-timing-card{padding:12px;border-radius:16px;}
    .workorder-timing-grid>div{padding:10px;border-radius:13px;}
    .workorder-timing-grid span{font-size:10px;}
    .workorder-timing-grid strong{font-size:13px;}
    .workorder-timing-grid .timing-duration strong{font-size:16px;}
}
@media (max-width: 520px){
    .workorder-timing-grid{grid-template-columns:1fr;}
}

/* v0.9.3 - Hotfix emergencias y tiempos operativos de OT */
.workorder-time-panel {
    margin-top: 18px;
    border: 1px solid #dbe4f0;
    background: #f8fbff;
    border-radius: 18px;
    padding: 16px;
}
.time-panel-title {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px;
}
.time-panel-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 10px;
}
.time-panel-grid > div {
    background: #fff;
    border: 1px solid #dbe4f0;
    border-radius: 14px;
    padding: 10px 12px;
    min-width: 0;
}
.time-panel-grid span {
    display: block;
    color: #64748b;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
    margin-bottom: 5px;
}
.time-panel-grid strong {
    display: block;
    color: #0f172a;
    font-size: 14px;
    line-height: 1.25;
    overflow-wrap: anywhere;
}
@media (max-width: 720px) {
    .workorder-time-panel { padding: 12px; border-radius: 16px; }
    .time-panel-title { display: block; }
    .time-panel-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
    .time-panel-grid > div { padding: 9px 10px; border-radius: 12px; }
    .time-panel-grid span { font-size: 10px; }
    .time-panel-grid strong { font-size: 13px; }
}

/* v0.9.4 - Normalización de estados OT + UX emergencias */
.status-pending, .status-programmed, .status-scheduled, .status-available, .status-published, .status-pending_sync {
    background:#fef3c7 !important; color:#92400e !important; border-color:#f9d56e !important;
}
.status-assigned, .status-taken {
    background:#dff4ff !important; color:#075985 !important; border-color:#a7ddff !important;
}
.status-initiated, .status-arrived {
    background:#dcfce7 !important; color:#166534 !important; border-color:#a7f3d0 !important;
}
.status-in_progress, .status-started {
    background:#bbf7d0 !important; color:#14532d !important; border-color:#86efac !important;
}
.status-completed, .status-finished, .status-closed, .status-closed_with_observation, .status-closed_with_critical_observation {
    background:#dbeafe !important; color:#1d4ed8 !important; border-color:#bfdbfe !important;
}
.status-cancelled { background:#f2f4f7 !important; color:#475467 !important; }

.emergency-dashboard-hero,
.emergency-create-hero {
    display:flex; justify-content:space-between; gap:1rem; align-items:center;
    background:linear-gradient(135deg,#f5f9ff 0%,#eef6ff 58%,#fff7ed 100%);
    border:1px solid #d9e7fb;
}
.emergency-dashboard-hero h2,
.emergency-create-hero h2 { margin:.15rem 0 .35rem; font-size:1.55rem; color:#0f1d33; }
.emergency-kpi-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.85rem; margin:1rem 0; }
.emergency-kpi-card { display:block; text-decoration:none; color:inherit; border:1px solid #dbe7f5; background:#fff; border-radius:20px; padding:1rem; box-shadow:0 12px 34px rgba(16,24,40,.06); }
.emergency-kpi-card span { display:block; color:#667085; font-size:.82rem; font-weight:900; text-transform:uppercase; letter-spacing:.04em; }
.emergency-kpi-card strong { display:block; margin:.25rem 0; font-size:2rem; color:#0f1d33; }
.emergency-kpi-card small { color:#667085; }
.emergency-kpi-card.amber { border-color:#f9d56e; background:#fffaf0; }
.emergency-kpi-card.green { border-color:#a7f3d0; background:#f0fdf4; }
.emergency-kpi-card.blue { border-color:#bfdbfe; background:#eff6ff; }
.emergency-filter-card { padding:1rem; }
.emergency-board { display:grid; gap:.9rem; margin-top:1rem; }
.emergency-operation-card { background:#fff; border:1px solid #dbe7f5; border-left:8px solid #c7d7ef; border-radius:22px; padding:1rem; box-shadow:0 14px 36px rgba(16,24,40,.07); display:grid; gap:.8rem; }
.emergency-operation-card.priority-urgent,
.emergency-operation-card.priority-critical { border-left-color:#ef4444; }
.emergency-operation-card.priority-high { border-left-color:#f97316; }
.emergency-operation-card.is-unassigned { background:linear-gradient(180deg,#fff 0%,#fffbeb 100%); }
.emergency-operation-top { display:flex; justify-content:space-between; gap:.85rem; align-items:flex-start; }
.emergency-operation-top strong { display:block; font-size:1.05rem; color:#0f172a; }
.emergency-operation-top span { color:#475467; }
.emergency-badge-stack { display:flex; gap:.35rem; flex-wrap:wrap; justify-content:flex-end; }
.badge.danger { background:#fee2e2; color:#991b1b; }
.emergency-operation-body p { margin:.15rem 0 .8rem; color:#344054; overflow-wrap:anywhere; }
.emergency-mini-grid { display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:.6rem; }
.emergency-mini-grid > div { background:#f8fafc; border:1px solid #e2e8f0; border-radius:14px; padding:.65rem .75rem; min-width:0; }
.emergency-mini-grid span { display:block; color:#667085; font-size:.72rem; font-weight:900; text-transform:uppercase; letter-spacing:.04em; margin-bottom:.25rem; }
.emergency-mini-grid strong { display:block; color:#101828; font-size:.9rem; overflow-wrap:anywhere; }
.emergency-operation-actions { display:flex; gap:.55rem; flex-wrap:wrap; justify-content:flex-end; align-items:center; }

.emergency-create-shell { display:grid; gap:1rem; }
.emergency-step-card { padding:1rem; border:1px solid #dbe7f5; box-shadow:0 12px 30px rgba(16,24,40,.045); }
.emergency-step-head { display:flex; gap:.8rem; align-items:flex-start; margin-bottom:.95rem; }
.emergency-step-head h3 { margin:0 0 .18rem; color:#0f1d33; }
.emergency-step-number { flex:0 0 auto; width:34px; height:34px; border-radius:13px; background:#1d4ed8; color:#fff; display:grid; place-items:center; font-weight:900; box-shadow:0 10px 24px rgba(29,78,216,.22); }
.emergency-picker-grid { display:grid; grid-template-columns:1.15fr 1fr 1fr 1fr; gap:.75rem; align-items:start; }
.emergency-form-columns { display:grid; gap:.75rem; }
.emergency-form-columns.two { grid-template-columns:1.15fr .85fr; }
.emergency-form-columns.three { grid-template-columns:repeat(3,minmax(0,1fr)); }
.emergency-equipment-summary { display:grid; grid-template-columns:auto 1fr auto; gap:.4rem .8rem; align-items:center; margin-top:.85rem; padding:.8rem; border:1px solid #bfdbfe; background:#eff6ff; border-radius:16px; }
.emergency-equipment-summary strong { color:#1e3a8a; }
.emergency-equipment-summary small { grid-column:2 / 3; color:#475467; }
.emergency-switch-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.8rem; }
.dq-switch-card { display:grid; grid-template-columns:auto 1fr; gap:.75rem; align-items:center; border:1px solid #dbe7f5; background:#fff; border-radius:18px; padding:.9rem; cursor:pointer; min-height:84px; transition:.16s ease; }
.dq-switch-card:hover { border-color:#93c5fd; transform:translateY(-1px); }
.dq-switch-card input { position:absolute; opacity:0; pointer-events:none; }
.dq-switch-card .switch-ui { width:56px; height:32px; border-radius:999px; background:#e2e8f0; position:relative; transition:.18s ease; }
.dq-switch-card .switch-ui::after { content:""; width:24px; height:24px; border-radius:50%; background:#fff; position:absolute; left:4px; top:4px; box-shadow:0 2px 8px rgba(15,23,42,.24); transition:.18s ease; }
.dq-switch-card input:checked + .switch-ui { background:#2563eb; }
.dq-switch-card input:checked + .switch-ui::after { transform:translateX(24px); }
.dq-switch-card.critical input:checked + .switch-ui { background:#dc2626; }
.dq-switch-card strong { display:block; color:#101828; margin-bottom:.18rem; }
.dq-switch-card small { display:block; color:#667085; line-height:1.25; }
.emergency-sticky-actions { position:sticky; bottom:1rem; z-index:20; display:flex; justify-content:flex-end; gap:.65rem; border:1px solid #dbe7f5; box-shadow:0 16px 40px rgba(16,24,40,.12); }
.mt-16 { margin-top:1rem; }

.supervision-kpi.assigned { border-color:#bae6fd; background:#f0f9ff; }
.supervision-kpi.initiated { border-color:#bbf7d0; background:#f0fdf4; }
.supervision-kpi.completed { border-color:#bfdbfe; background:#eff6ff; }
.supervision-order-card.phase-assigned { background:#e0f2fe; border-color:#7dd3fc; }
.supervision-order-card.phase-initiated { background:#dcfce7; border-color:#86efac; }
.supervision-order-card.phase-completed { background:#dbeafe; border-color:#93c5fd; }

.dq-response-table td { max-width: min(72vw, 680px); overflow-wrap:anywhere; word-break:break-word; }
.dq-file-preview img,
.dq-response-image { max-width:min(100%, 320px); max-height:220px; object-fit:contain; border-radius:12px; border:1px solid #dbe7f5; background:#fff; display:block; }
.signature-box canvas { max-width:100%; }

@media (max-width: 980px) {
    .emergency-dashboard-hero,
    .emergency-create-hero { display:block; }
    .emergency-kpi-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .emergency-picker-grid,
    .emergency-form-columns.three,
    .emergency-form-columns.two,
    .emergency-mini-grid { grid-template-columns:1fr 1fr; }
}
@media (max-width: 640px) {
    .emergency-kpi-grid,
    .emergency-picker-grid,
    .emergency-form-columns.three,
    .emergency-form-columns.two,
    .emergency-switch-grid,
    .emergency-mini-grid { grid-template-columns:1fr; }
    .emergency-operation-top { display:block; }
    .emergency-badge-stack { justify-content:flex-start; margin-top:.55rem; }
    .emergency-operation-actions { justify-content:stretch; }
    .emergency-operation-actions .btn,
    .emergency-operation-actions form,
    .emergency-operation-actions button { width:100%; }
    .emergency-sticky-actions { bottom:calc(.75rem + env(safe-area-inset-bottom)); }
}

/* v0.9.5 - Ajustes esteticos: emergencias compactas y agenda TOA */
.emergency-board.compact-board,
.emergency-board { gap:.55rem; }
.emergency-operation-card{
    border-left-width:6px;
    border-radius:16px;
    padding:.68rem .78rem;
    gap:.45rem;
    box-shadow:0 8px 20px rgba(16,24,40,.045);
}
.emergency-operation-top{align-items:center;}
.emergency-operation-top strong{font-size:.96rem;line-height:1.12;}
.emergency-operation-top span{font-size:.82rem;}
.emergency-badge-stack .badge{font-size:.68rem;padding:.22rem .46rem;border-radius:999px;}
.emergency-operation-body p{
    margin:.05rem 0 .45rem;
    font-size:.84rem;
    line-height:1.28;
    display:-webkit-box;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
    overflow:hidden;
}
.emergency-mini-grid{gap:.42rem;}
.emergency-mini-grid>div{border-radius:11px;padding:.45rem .55rem;}
.emergency-mini-grid span{font-size:.62rem;margin-bottom:.12rem;}
.emergency-mini-grid strong{font-size:.78rem;line-height:1.18;}
.emergency-operation-actions{gap:.4rem;}
.emergency-operation-actions .btn{padding:.45rem .62rem;font-size:.78rem;border-radius:11px;}

.supervision-board-card{overflow:visible;}
.supervision-timeline-shell{overflow-x:auto;overflow-y:visible;padding-bottom:10px;}
.supervision-hours-row,.supervision-tech-row{grid-template-columns:230px minmax(1120px,1fr);}
.supervision-resource-heading{padding:8px 10px;border-radius:10px 0 0 10px;font-size:10px;}
.supervision-hours-grid{
    display:grid;
    grid-template-columns:repeat(56,minmax(20px,1fr));
    border-radius:0 10px 10px 0;
    min-width:1120px;
}
.supervision-hours-grid span{padding:7px 2px;font-size:11px;border-left:1px solid #dce4ef;}
.supervision-tech-row{min-height:58px;}
.supervision-resource-cell{padding:8px 10px;align-items:center;}
.supervision-tech-avatar{width:28px;height:28px;border-radius:9px;font-size:12px;}
.supervision-resource-cell strong{font-size:12px;}
.supervision-resource-cell small{font-size:10px;margin-top:1px;}
.supervision-resource-badges{gap:3px;margin-top:4px;}
.supervision-resource-badges span{font-size:8.5px;padding:2px 5px;}
.supervision-timeline-grid{
    display:grid;
    grid-template-columns:repeat(56,minmax(20px,1fr));
    min-width:1120px;
    gap:2px 0;
    align-items:center;
    min-height:58px;
    padding:8px 0;
    overflow:visible;
    background:repeating-linear-gradient(to right,#fff 0,#fff calc(1.7857% - 1px),#eef2f7 calc(1.7857% - 1px),#eef2f7 1.7857%);
}
.supervision-empty-row{font-size:11px;padding:8px 12px;}
.supervision-order-card.supervision-order-slim{
    position:relative;
    min-width:0;
    height:22px;
    border-radius:4px;
    border:1px solid rgba(47,85,151,.35);
    border-left:4px solid #2f5597;
    box-shadow:none;
    overflow:visible;
    z-index:4;
}
.supervision-order-card.supervision-order-slim>a{
    display:flex;
    align-items:center;
    height:100%;
    padding:0 6px;
    overflow:hidden;
    white-space:nowrap;
}
.supervision-order-card.supervision-order-slim .supervision-order-type{
    display:block;
    width:100%;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    color:#102a56;
    font-size:10px;
    font-weight:900;
    line-height:1;
    margin:0;
}
.supervision-order-card.supervision-order-slim.phase-pending{background:#fef3c7;border-color:#f59e0b;border-left-color:#d97706;}
.supervision-order-card.supervision-order-slim.phase-assigned{background:#dff4ff;border-color:#7dd3fc;border-left-color:#0284c7;}
.supervision-order-card.supervision-order-slim.phase-initiated{background:#dcfce7;border-color:#86efac;border-left-color:#16a34a;}
.supervision-order-card.supervision-order-slim.phase-in_progress{background:#bbf7d0;border-color:#22c55e;border-left-color:#15803d;}
.supervision-order-card.supervision-order-slim.phase-completed{background:#dbeafe;border-color:#93c5fd;border-left-color:#2563eb;}
.supervision-order-card.priority-critical.supervision-order-slim,
.supervision-order-card.priority-urgent.supervision-order-slim{box-shadow:0 0 0 1px rgba(220,38,38,.22);}
.supervision-order-tooltip{
    position:absolute;
    left:50%;
    bottom:calc(100% + 10px);
    transform:translateX(-50%) translateY(4px);
    width:min(340px,90vw);
    background:#fff;
    border:1px solid #dbe7f5;
    border-radius:12px;
    box-shadow:0 18px 48px rgba(15,23,42,.20);
    padding:12px;
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transition:.14s ease;
    z-index:60;
}
.supervision-order-tooltip::after{
    content:"";
    position:absolute;
    left:50%;
    bottom:-7px;
    transform:translateX(-50%) rotate(45deg);
    width:14px;height:14px;
    background:#fff;
    border-right:1px solid #dbe7f5;
    border-bottom:1px solid #dbe7f5;
}
.supervision-order-card:hover .supervision-order-tooltip,
.supervision-order-card:focus-within .supervision-order-tooltip,
.supervision-order-card:focus .supervision-order-tooltip{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0);}
.supervision-order-tooltip strong{display:block;font-size:13px;line-height:1.2;margin-bottom:8px;color:#0f172a;overflow-wrap:anywhere;}
.supervision-order-tooltip dl{display:grid;grid-template-columns:92px 1fr;gap:5px 10px;margin:0;}
.supervision-order-tooltip dt{font-size:10px;font-weight:900;color:#667085;text-transform:uppercase;letter-spacing:.04em;}
.supervision-order-tooltip dd{margin:0;font-size:12px;font-weight:700;color:#101828;overflow-wrap:anywhere;}
.supervision-order-tooltip small{display:block;margin-top:8px;color:#667085;font-size:11px;}
.supervision-card-menu{position:absolute;right:2px;top:2px;border:0;z-index:8;}
.supervision-card-menu summary{padding:0 4px;font-size:0;color:transparent;background:rgba(255,255,255,.75);border-radius:999px;}
.supervision-card-menu summary::before{content:"...";font-size:12px;color:#2f5597;letter-spacing:0;font-weight:900;}
.supervision-card-menu[open] form{position:absolute;right:0;top:18px;width:230px;background:#fff;border:1px solid #dbe7f5;border-radius:12px;box-shadow:0 16px 40px rgba(16,24,40,.16);}

@media (max-width:980px){
    .supervision-hours-row,.supervision-tech-row{grid-template-columns:180px minmax(1120px,1fr);}
    .supervision-resource-cell{position:sticky;left:0;z-index:10;box-shadow:4px 0 12px rgba(16,24,40,.05);}
    .emergency-operation-card{padding:.65rem;border-radius:14px;}
}

/* v0.9.6 - Tooltip flotante para agenda de supervision */
body.dq-floating-tooltips-enabled .supervision-order-card .supervision-order-tooltip{
    display:none !important;
}
.dq-supervision-floating-tooltip{
    position:fixed;
    width:min(360px, calc(100vw - 24px));
    max-height:min(68vh, 420px);
    overflow:auto;
    background:#fff;
    border:1px solid #dbe7f5;
    border-radius:14px;
    box-shadow:0 20px 55px rgba(15,23,42,.24);
    padding:13px 14px;
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transition:opacity .12s ease, transform .12s ease;
    transform:translateY(4px);
    z-index:99999;
}
.dq-supervision-floating-tooltip.show{
    opacity:1;
    visibility:visible;
    transform:translateY(0);
}
.dq-supervision-floating-tooltip::after{
    content:"";
    position:absolute;
    left:var(--tooltip-arrow-x, 50%);
    width:14px;
    height:14px;
    background:#fff;
    transform:translateX(-50%) rotate(45deg);
    border:1px solid #dbe7f5;
    z-index:-1;
}
.dq-supervision-floating-tooltip[data-placement="bottom"]::after{
    top:-7px;
    border-right:0;
    border-bottom:0;
}
.dq-supervision-floating-tooltip[data-placement="top"]::after{
    bottom:-7px;
    border-left:0;
    border-top:0;
}
.dq-supervision-floating-tooltip strong{
    display:block;
    font-size:13px;
    line-height:1.2;
    margin-bottom:8px;
    color:#0f172a;
    overflow-wrap:anywhere;
}
.dq-supervision-floating-tooltip dl{
    display:grid;
    grid-template-columns:92px 1fr;
    gap:5px 10px;
    margin:0;
}
.dq-supervision-floating-tooltip dt{
    font-size:10px;
    font-weight:900;
    color:#667085;
    text-transform:uppercase;
    letter-spacing:.04em;
}
.dq-supervision-floating-tooltip dd{
    margin:0;
    font-size:12px;
    font-weight:700;
    color:#101828;
    overflow-wrap:anywhere;
}
.dq-supervision-floating-tooltip small{
    display:block;
    margin-top:8px;
    color:#667085;
    font-size:11px;
}
/* Fallback si JS no carga: el tooltip interno se abre debajo de la barra para no cortarse arriba. */
.supervision-order-card.supervision-order-slim .supervision-order-tooltip{
    bottom:auto;
    top:calc(100% + 10px);
}
.supervision-order-card.supervision-order-slim .supervision-order-tooltip::after{
    bottom:auto;
    top:-7px;
    border-right:0;
    border-bottom:0;
    border-left:1px solid #dbe7f5;
    border-top:1px solid #dbe7f5;
}
.supervision-order-card.supervision-order-slim:hover,
.supervision-order-card.supervision-order-slim:focus-within{
    z-index:999;
}

/* v0.9.7 Reparaciones y presupuestos */
.repairs-budget-hero .section-title { align-items: flex-start; }
.repair-budget-filters { display: grid; grid-template-columns: minmax(260px, 1fr) 180px 220px auto; gap: 14px; align-items: end; margin-top: 16px; }
.repair-budget-filters label { display: block; font-size: .82rem; color: #64748b; margin-bottom: 6px; font-weight: 700; }
.repair-budget-filters input,
.repair-budget-filters select { width: 100%; }
.repairs-budget-groups { display: grid; gap: 14px; }
.customer-repair-group { padding: 0; overflow: hidden; }
.customer-repair-group > summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; gap: 18px; align-items: center; padding: 18px 20px; background: linear-gradient(135deg, #f8fafc, #eef6ff); border-bottom: 1px solid #e5e7eb; }
.customer-repair-group > summary::-webkit-details-marker { display: none; }
.customer-repair-group > summary strong { font-size: 1.02rem; color: #0f172a; }
.repair-group-metrics { display: flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
.repair-group-metrics span { background: #fff; border: 1px solid #dbeafe; color: #1e40af; border-radius: 999px; padding: 5px 10px; font-size: .78rem; font-weight: 700; }
.repair-elevator-list { display: grid; gap: 12px; padding: 14px; }
.repair-elevator-card { border: 1px solid #e5e7eb; border-radius: 18px; padding: 14px; background: #fff; box-shadow: 0 12px 24px rgba(15,23,42,.04); }
.repair-elevator-head { display: flex; justify-content: space-between; gap: 12px; align-items: flex-start; margin-bottom: 10px; }
.repair-elevator-head h3 { margin: 0 0 2px; font-size: 1rem; }
.repair-elevator-stats { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
.repair-quote-list { display: grid; gap: 8px; }
.repair-quote-row { border: 1px solid #eef2f7; border-radius: 14px; padding: 10px 12px; display: grid; grid-template-columns: minmax(240px, 1fr) auto; gap: 12px; align-items: center; background: #f8fafc; }
.repair-quote-row-meta { display: flex; align-items: center; justify-content: flex-end; gap: 10px; flex-wrap: wrap; color: #475569; font-size: .84rem; }
.quote-status-draft { background: #fef3c7; color: #92400e; }
.quote-status-preparation { background: #dbeafe; color: #1e40af; }
.quote-status-closed { background: #e0e7ff; color: #3730a3; }
.quote-status-sent { background: #f3e8ff; color: #6b21a8; }
.quote-status-approved_by_customer { background: #dcfce7; color: #166534; }
.quote-status-rejected { background: #fee2e2; color: #991b1b; }
.quote-status-converted_to_repair { background: #dbeafe; color: #1d4ed8; }
.quote-hero-card .actions-row { justify-content: flex-end; }
.quote-items-scroll { overflow-x: auto; }
.quote-items-v097 { min-width: 1120px; }
.quote-items-v097 textarea.table-input { min-width: 260px; }
.quote-items-v097 .table-input { min-height: 38px; }
.empty-state-card { text-align: center; padding: 32px; }
.mt-2 { margin-top: 12px; }

@media (max-width: 900px) {
  .repair-budget-filters { grid-template-columns: 1fr; }
  .customer-repair-group > summary,
  .repair-elevator-head,
  .repair-quote-row { grid-template-columns: 1fr; display: grid; }
  .repair-group-metrics,
  .repair-elevator-stats,
  .repair-quote-row-meta { justify-content: flex-start; }
}

/* v0.9.7.3 - Auto presupuesto desde reporte técnico */
.dq-open-budget-hint {
    border-color: #b7d0ff;
    background: linear-gradient(135deg, #f7faff, #ffffff);
}
.dq-inline-budget-pill {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .55rem;
    border: 1px solid #d7e4ff;
    border-radius: 14px;
    background: #ffffff;
    padding: .7rem .8rem;
    margin-top: .6rem;
    font-size: .92rem;
}
.dq-linked-requests-section > details > summary,
.dq-repair-panel-section > details > summary {
    cursor: pointer;
    font-weight: 900;
    color: #204b8f;
}
.repair-card-integrated,
.repair-card-mini.muted-card {
    background: #fbfcff;
    border-style: dashed;
}
.repair-card-pending-budget {
    border-color: #f2c94c;
    background: #fffaf0;
}
.new-repair-request-box summary .muted {
    display: inline-block;
    margin-left: .35rem;
    font-weight: 700;
}
@media (max-width: 760px) {
    .dq-inline-budget-pill { font-size: .84rem; }
    .new-repair-request-box summary .muted { display:block; margin:.2rem 0 0; }
}

/* v0.9.8A - Reparaciones y presupuestos: bandeja comercial y evidencias */
.quote-inbox-hero .filter-grid.quote-request-filters{align-items:end;grid-template-columns:2fr .8fr .8fr .8fr auto;margin-top:1rem}
.quote-request-list{display:flex;flex-direction:column;gap:.85rem}
.quote-request-card{display:grid;grid-template-columns:1fr auto;gap:1rem;border:1px solid #dbe5f4;border-radius:18px;padding:1rem;background:#fff;box-shadow:0 8px 22px rgba(15,23,42,.04)}
.quote-request-head{display:flex;justify-content:space-between;gap:.75rem;align-items:flex-start;margin-bottom:.45rem}
.quote-request-head strong{font-size:1rem;color:#0f172a}
.quote-request-main>p{margin:.45rem 0;color:#334155;line-height:1.45}
.quote-request-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.45rem;margin:.7rem 0;color:#64748b;font-size:.82rem}
.quote-request-meta span{background:#f8fafc;border:1px solid #e7edf7;border-radius:10px;padding:.45rem .55rem;min-width:0;overflow:hidden;text-overflow:ellipsis}
.quote-request-actions{display:flex;flex-direction:column;gap:.45rem;justify-content:center;min-width:170px}
.quote-request-actions .btn{width:100%;justify-content:center}
.repair-evidence-strip{display:flex;gap:.45rem;align-items:center;flex-wrap:wrap;margin-top:.55rem}
.repair-evidence-thumb{width:58px;height:58px;border:1px solid #dbe5f4;border-radius:12px;background:#f8fafc;overflow:hidden;display:inline-flex;align-items:center;justify-content:center}
.repair-evidence-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.repair-evidence-file{height:38px;padding:0 .7rem;border-radius:10px;background:#eef4ff;color:#254b91;display:inline-flex;align-items:center;text-decoration:none;font-weight:800;font-size:.78rem}
.repair-evidence-more{height:32px;min-width:32px;border-radius:999px;background:#e2e8f0;color:#475569;display:inline-flex;align-items:center;justify-content:center;font-weight:800;font-size:.78rem}
.commercial-evidence-strip{margin-top:.75rem}
.quote-bulk-actions{display:flex;gap:.6rem;align-items:center;justify-content:flex-end;margin-top:1rem;padding-top:.8rem;border-top:1px solid #e5edf8}
.quote-validation-alert{margin:0 0 1rem 0}
.table-sub-label{display:block;font-size:.68rem;text-transform:uppercase;letter-spacing:.04em;color:#64748b;font-weight:900;margin:.25rem 0 .2rem}
.quote-item-evidence-box{margin-top:.65rem;padding:.55rem;border:1px dashed #d6e0ee;border-radius:12px;background:#f8fbff}
.evidence-pdf-toggle{display:inline-flex;margin-left:-.2rem}
.tiny-link{border:none;background:#eef4ff;color:#284f93;border-radius:8px;padding:.26rem .45rem;font-size:.68rem;font-weight:900;cursor:pointer}
.new-repair-request-box input[type=file]{padding:.8rem;background:#f8fafc;border:1px dashed #cbd5e1;border-radius:14px;width:100%}
@media (max-width:900px){
  .quote-inbox-hero .filter-grid.quote-request-filters{grid-template-columns:1fr}
  .quote-request-card{grid-template-columns:1fr}
  .quote-request-actions{min-width:0;flex-direction:row;flex-wrap:wrap}
  .quote-request-actions .btn{width:auto;flex:1}
  .quote-request-meta{grid-template-columns:1fr}
  .repair-evidence-thumb{width:52px;height:52px}
}

/* v0.9.8B - Word/PDF comercial de presupuestos */
.quote-document-card {
    border: 1px solid rgba(26, 83, 118, .12);
    background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
}
.quote-doc-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .75rem;
    margin: 1rem 0;
}
.quote-doc-panel {
    border: 1px solid rgba(15, 29, 51, .10);
    border-radius: 14px;
    padding: .85rem;
    background: #fff;
    min-height: 92px;
}
.quote-doc-panel span {
    display: block;
    color: #64748b;
    font-size: .78rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .04em;
    margin-bottom: .25rem;
}
.quote-doc-panel strong {
    display: block;
    color: #0f1d33;
    font-size: .98rem;
    line-height: 1.25;
}
.quote-doc-panel small {
    display: block;
    color: #64748b;
    font-size: .82rem;
    margin-top: .35rem;
}
.quote-template-details {
    margin-top: .75rem;
    border: 1px solid rgba(15, 29, 51, .10);
    border-radius: 14px;
    background: #fff;
    overflow: hidden;
}
.quote-template-details summary {
    cursor: pointer;
    padding: .85rem 1rem;
    font-weight: 900;
    color: #12324b;
    background: #f7fbff;
}
.quote-template-upload {
    padding: 1rem;
    display: grid;
    gap: .6rem;
}
.quote-template-upload input[type="file"] {
    border: 1px dashed rgba(15, 29, 51, .25);
    border-radius: 12px;
    padding: .75rem;
    background: #fbfdff;
}
.quote-variable-list {
    padding: 1rem;
    display: flex;
    flex-wrap: wrap;
    gap: .45rem;
}
.quote-variable-list code {
    border-radius: 999px;
    background: #edf6ff;
    color: #12324b;
    padding: .28rem .55rem;
    font-size: .78rem;
    border: 1px solid rgba(26, 83, 118, .12);
}
.quote-document-card .btn[disabled] {
    opacity: .55;
    cursor: not-allowed;
}
@media (max-width: 900px) {
    .quote-doc-grid { grid-template-columns: 1fr; }
}


/* v0.9.8F - textos comerciales del PDF de presupuesto */
.quote-commercial-text-card { border: 1px solid rgba(31, 81, 124, 0.14); }
.quote-commercial-text-form textarea,
.quote-commercial-text-form input { width: 100%; box-sizing: border-box; }
.quote-commercial-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.quote-commercial-grid .wide { grid-column: 1 / -1; }
.form-field { display: flex; flex-direction: column; gap: 6px; font-weight: 700; color: #24364a; }
.form-field span { font-size: 0.86rem; }
.form-field textarea,
.form-field input { border: 1px solid #d7e0eb; border-radius: 12px; padding: 10px 12px; font: inherit; color: #172033; background: #fff; }
.form-field textarea:focus,
.form-field input:focus { outline: 2px solid rgba(14, 112, 198, .16); border-color: #4b9bd8; }
.form-field small { color: #6b7a8f; font-weight: 500; line-height: 1.35; }
.inline-input-suffix { display: flex; align-items: center; gap: 8px; }
.inline-input-suffix input { max-width: 140px; }
.inline-input-suffix em { color: #65748a; font-style: normal; font-weight: 700; }
.quote-commercial-readonly h3 { margin: 14px 0 6px; font-size: 1rem; }
.compact-detail-grid { margin-top: 12px; }
@media (max-width: 780px) { .quote-commercial-grid { grid-template-columns: 1fr; } }

/* v0.9.8G - PDF corporativo y plantillas Word */
.quote-document-card .actions-row .btn {
    white-space: nowrap;
}
.quote-doc-panel .tiny-link {
    display: inline-flex;
    margin-top: .35rem;
    font-size: .78rem;
    font-weight: 800;
    color: #204B8F;
    text-decoration: none;
}
.quote-variable-list code {
    border: 1px solid #d9e2ef;
    background: #f7f9fc;
    color: #142b4e;
    border-radius: .6rem;
    padding: .35rem .5rem;
    font-size: .78rem;
}
@media (max-width: 900px) {
    .quote-document-card .section-title {
        gap: .75rem;
    }
    .quote-document-card .actions-row {
        width: 100%;
        justify-content: stretch;
    }
    .quote-document-card .actions-row .btn,
    .quote-document-card .actions-row form,
    .quote-document-card .actions-row form button {
        width: 100%;
    }
}

/* v0.9.8H - PDF compacto y configuración documental de empresa */
.quote-doc-settings-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    padding: 1rem;
}
.quote-doc-settings-grid .wide { grid-column: 1 / -1; }
.quote-document-settings-form input[type="file"] {
    border: 1px dashed #cbd5e1;
    border-radius: 12px;
    background: #fbfdff;
    padding: .8rem;
}
.quote-document-settings-form input[type="color"] {
    height: 44px;
    padding: 4px;
    max-width: 110px;
}
.quote-template-details[open] > summary {
    border-bottom: 1px solid rgba(15, 29, 51, .08);
}
@media (max-width: 1024px) {
    .quote-doc-settings-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 720px) {
    .quote-doc-settings-grid { grid-template-columns: 1fr; }
}

/* v0.9.8I - Configuración empresa y PDF estable */
.company-settings-hero .section-title { align-items: flex-start; }
.company-document-settings-form .settings-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}
.settings-section {
    background: #f8fafc;
    border: 1px solid #dbe4f0;
    border-radius: 18px;
    padding: 18px;
}
.settings-section h3 {
    margin: 0 0 14px;
    color: #13284a;
    font-size: 1rem;
}
.settings-section .form-field { margin-bottom: 12px; }
.settings-section .form-field span,
.quote-commercial-text-form .form-field span {
    display: block;
    font-weight: 800;
    color: #344054;
    font-size: .82rem;
    margin-bottom: 6px;
}
.settings-section input[type="text"],
.settings-section input[type="email"],
.settings-section input[type="number"],
.settings-section textarea,
.quote-commercial-text-form input[type="text"],
.quote-commercial-text-form input[type="email"],
.quote-commercial-text-form input[type="number"],
.quote-commercial-text-form textarea {
    width: 100%;
    border: 1px solid #cfd8e6;
    border-radius: 12px;
    padding: 10px 12px;
    background: #fff;
    color: #111827;
}
.settings-section small,
.quote-commercial-text-form small { color: #667085; }
.color-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.inline-input-suffix { display: flex; align-items: center; gap: 8px; }
.inline-input-suffix em { color: #667085; font-style: normal; font-weight: 700; }
.quote-document-card .alert.info a { font-weight: 800; color: #1f4ea3; }

@media (max-width: 900px) {
    .company-document-settings-form .settings-grid { grid-template-columns: 1fr; }
}

/* v0.9.8J - Vista previa y control de logo documental */
.document-logo-preview {
    display: flex;
    gap: 12px;
    align-items: center;
    margin-top: 10px;
    padding: 10px;
    border: 1px solid #dbe4f0;
    border-radius: 14px;
    background: #f8fafc;
}
.document-logo-frame {
    width: 180px;
    height: 70px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #ffffff;
    border: 1px dashed #c8d3e2;
    border-radius: 12px;
    overflow: hidden;
    flex: 0 0 auto;
}
.document-logo-frame img {
    max-width: 170px;
    max-height: 60px;
    width: auto;
    height: auto;
    display: block;
}
@media (max-width: 720px) {
    .document-logo-preview { align-items: flex-start; flex-direction: column; }
    .document-logo-frame { width: 100%; max-width: 220px; }
}

/* v0.9.9A - Reparaciones y presupuestos: orden operativo */
.sidebar nav a{display:flex;align-items:center;justify-content:space-between;gap:.55rem}.nav-badge{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;border-radius:999px;background:#f97316;color:#fff;font-size:.74rem;font-weight:900;padding:0 .45rem;box-shadow:0 6px 14px rgba(249,115,22,.25)}
.repairs-budget-hero-v099a .section-title{align-items:flex-start}.repair-budget-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin:1rem 0}.repair-budget-kpi{border:1px solid #e2e8f0;background:#fff;border-radius:16px;padding:.85rem .95rem;box-shadow:0 10px 26px rgba(15,23,42,.04)}.repair-budget-kpi span{display:block;color:#64748b;font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.03em}.repair-budget-kpi strong{display:block;font-size:1.7rem;color:#0f172a;line-height:1;margin:.2rem 0}.repair-budget-kpi small{color:#64748b;font-size:.78rem}.repair-budget-kpi.is-hot{border-color:#fed7aa;background:#fff7ed}.repair-budget-kpi.is-hot strong{color:#c2410c}
.dq-repair-module-section{padding:0;overflow:hidden}.dq-repair-module-section>summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.1rem;background:linear-gradient(135deg,#f8fafc,#f1f7ff);border-bottom:1px solid #e5edf7}.dq-repair-module-section>summary::-webkit-details-marker{display:none}.dq-repair-module-section>summary strong{font-size:1.02rem;color:#0f172a}.dq-repair-module-body{padding:1rem}.empty-state-card.compact{padding:1rem;border:1px dashed #cbd5e1;background:#f8fafc;border-radius:16px}.empty-state-card.compact h3{margin-top:0}.compact-requests .quote-request-card.compact{padding:.85rem;border-radius:16px}.v099a-actions{min-width:190px}.repair-request-review-menu{border:1px solid #dbe5f4;border-radius:12px;background:#fff;overflow:hidden}.repair-request-review-menu>summary{cursor:pointer;list-style:none;padding:.55rem .7rem;font-weight:900;color:#1d4ed8;font-size:.82rem}.repair-request-review-menu>summary::-webkit-details-marker{display:none}.repair-request-review-menu form{display:grid;gap:.45rem;padding:.75rem;border-top:1px solid #e5edf7}.repair-request-review-menu label{font-size:.72rem;font-weight:800;color:#64748b}.repair-request-review-menu select,.repair-request-review-menu textarea{width:100%;border:1px solid #cbd5e1;border-radius:10px;padding:.55rem;font-size:.84rem}.compact-groups{display:grid;gap:.85rem}.customer-repair-group.v099a-collapsed{border:1px solid #dbe5f4;border-radius:16px;background:#fff;overflow:hidden}.customer-repair-group.v099a-collapsed>summary{padding:.85rem 1rem;background:#fff;transition:background .15s ease}.customer-repair-group.v099a-collapsed>summary:hover{background:#f8fbff}.repair-elevator-card.v099a-elevator{border:1px solid #edf2f7;border-radius:14px;background:#fbfdff;overflow:hidden}.repair-elevator-card.v099a-elevator>summary{cursor:pointer;list-style:none;padding:.75rem .85rem}.repair-elevator-card.v099a-elevator>summary::-webkit-details-marker{display:none}.repair-elevator-card.v099a-elevator .repair-quote-list{padding:.65rem;border-top:1px solid #e5edf7;background:#fff}.badge.status-muted{background:#f1f5f9;color:#475569;border:1px solid #cbd5e1}.badge.status-initiated{background:#dcfce7;color:#166534;border:1px solid #86efac}
@media(max-width:900px){.repair-budget-kpis{grid-template-columns:1fr}.dq-repair-module-section>summary{align-items:flex-start}.v099a-actions{min-width:0}.repair-budget-filters{grid-template-columns:1fr!important}.quote-request-actions.v099a-actions{flex-direction:column}.quote-request-actions.v099a-actions .btn{width:100%}}

/* v0.9.9D - Automatizaciones documentales */
.automation-dashboard{display:grid;grid-template-columns:320px minmax(0,1fr);gap:18px;align-items:start}.automation-list{position:sticky;top:16px}.automation-card{display:grid;grid-template-columns:auto 1fr;gap:8px 10px;align-items:center;padding:12px 14px;border:1px solid #dbe3ef;border-radius:14px;margin-bottom:10px;text-decoration:none;color:inherit;background:#fff;transition:.15s ease}.automation-card:hover,.automation-card.active{border-color:#6ba4ff;box-shadow:0 8px 22px rgba(15,42,77,.08)}.automation-card strong{font-size:14px}.automation-card small{grid-column:2;color:#667085;font-size:12px}.status-dot{width:10px;height:10px;border-radius:50%;background:#cbd5e1}.status-dot.on{background:#22c55e}.status-dot.off{background:#94a3b8}.automation-editor{min-width:0}.automation-form .form-grid.two-col{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.automation-form .wide{grid-column:1/-1}.automation-block{border:1px solid #e1e8f2;background:#f8fafc;border-radius:16px;padding:16px;margin-top:16px}.automation-block h3{margin:0 0 12px;color:#142b4e;font-size:16px}.toggle-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.check-card{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border:1px solid #dbe3ef;border-radius:14px;background:#fff;cursor:pointer}.check-card input{margin-top:3px}.check-card strong{display:block;font-size:14px;color:#13233a}.check-card small{display:block;color:#667085;font-size:12px;line-height:1.35}.empty-state.compact{padding:16px;border:1px dashed #d0d8e6;border-radius:14px;color:#667085}.badge.status-failed{background:#fee2e2;color:#991b1b}.badge.status-sent{background:#dcfce7;color:#166534}.badge.status-pending{background:#fef3c7;color:#92400e}.btn.success{background:#16a34a;color:#fff;border-color:#16a34a}.btn.success:hover{background:#15803d;border-color:#15803d}@media (max-width: 980px){.automation-dashboard{grid-template-columns:1fr}.automation-list{position:static}.automation-form .form-grid.two-col,.toggle-grid{grid-template-columns:1fr}}

/* v0.9.9E - Pulido UX documental, presupuesto y automatizaciones */
.dq-page-header{align-items:flex-start}.dq-header-actions{flex-wrap:wrap;justify-content:flex-end}.dq-metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:0 0 18px}.dq-metric-card{background:#fff;border:1px solid #e5edf7;border-radius:18px;padding:18px 20px;box-shadow:0 12px 30px rgba(15,23,42,.06)}.dq-metric-card span{display:block;color:#64748b;font-size:.78rem;font-weight:900;text-transform:uppercase;letter-spacing:.05em}.dq-metric-card strong{display:block;color:#1d4ed8;font-size:2rem;line-height:1.1;margin:.25rem 0}.dq-metric-card small{color:#64748b;font-weight:700}.dq-metric-card.warning strong{color:#dc2626}.dq-metric-card.success strong{color:#059669}.dq-automation-rules-card{padding:18px;margin-bottom:18px}.dq-table-clean table{border-collapse:separate;border-spacing:0;width:100%}.dq-table-clean th{background:#f8fafc;color:#475569;font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid #e5edf7;padding:12px}.dq-table-clean td{border-bottom:1px solid #edf2f7;padding:14px 12px;vertical-align:middle}.dq-table-clean tr:hover td{background:#fbfdff}.dq-table-clean tr.is-selected td{background:#eff6ff}.dq-table-clean td strong{display:block;color:#0f172a}.dq-table-clean td small{display:block;color:#64748b;margin-top:3px}.dq-status-pill{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;font-size:.76rem;font-weight:900;padding:.28rem .65rem}.dq-status-pill.is-on{background:#dcfce7;color:#166534;border:1px solid #bbf7d0}.dq-status-pill.is-paused{background:#fef3c7;color:#92400e;border:1px solid #fde68a}.dq-actions-mini{white-space:nowrap}.dq-automation-workspace{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:18px;align-items:start}.dq-automation-editor{padding:20px}.dq-automation-side{display:grid;gap:18px;position:sticky;top:18px}.dq-form-section{border:1px solid #e5edf7;background:linear-gradient(180deg,#fff,#fbfdff);border-radius:18px;padding:16px;margin-top:16px}.dq-section-head{display:flex;align-items:flex-start;gap:12px;margin-bottom:14px}.dq-section-head>span{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:11px;background:#1d4ed8;color:#fff;font-weight:900;box-shadow:0 10px 18px rgba(29,78,216,.18)}.dq-section-head h3{margin:0;color:#0f172a;font-size:1rem}.dq-section-head p{margin:.15rem 0 0;color:#64748b;font-size:.82rem}.compact-form-grid{gap:12px!important}.compact-form-grid .form-field span,.dq-automation-form .form-field span{font-size:.78rem;text-transform:uppercase;letter-spacing:.03em;color:#475569}.dq-automation-form input,.dq-automation-form select,.dq-automation-form textarea{border-radius:12px!important;min-height:42px}.compact-toggle-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.dq-form-actions{justify-content:flex-end}.dq-variable-chips{max-height:320px;overflow:auto}.dq-variable-chips code{display:inline-flex;margin:4px;padding:7px 9px;border-radius:999px;background:#eef4ff;color:#1d4ed8;border:1px solid #dbeafe;font-size:.76rem}.dq-help-card{border-color:#bfdbfe;background:linear-gradient(135deg,#eff6ff,#fff)}.dq-help-card h3{margin-top:0;color:#1e3a8a}.dq-help-card p{color:#475569;margin-bottom:0}.dq-error-cell{max-width:420px;white-space:normal}.dq-history-card{margin-bottom:28px}

.quote-commercial-text-card{padding:20px}.quote-commercial-text-card .section-title{margin-bottom:8px}.quote-commercial-text-form .quote-commercial-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px;align-items:start}.quote-commercial-text-form .form-field{margin-bottom:0}.quote-commercial-text-form .form-field.wide{grid-column:1/-1}.dq-textarea-card textarea{min-height:88px;resize:vertical}.quote-commercial-text-form input[type="text"],.quote-commercial-text-form input[type="email"],.quote-commercial-text-form input[type="number"],.quote-commercial-text-form textarea{padding:9px 11px;border-radius:11px;line-height:1.4}.quote-commercial-text-form small{font-size:.75rem}.dq-compact-save-row{justify-content:flex-end;margin-top:12px!important}.quote-document-card{padding:20px}.quote-document-card .section-title{align-items:flex-start;gap:16px}.dq-doc-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.dq-doc-actions .inline-form{display:inline-flex;margin:0}.dq-action-btn{height:42px;display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;padding:0 16px;border-radius:12px;font-weight:900}.dq-more-actions{position:relative}.dq-more-actions>summary{list-style:none;cursor:pointer}.dq-more-actions>summary::-webkit-details-marker{display:none}.dq-more-menu{position:absolute;right:0;top:48px;z-index:30;min-width:245px;background:#fff;border:1px solid #dbe5f4;border-radius:14px;box-shadow:0 18px 45px rgba(15,23,42,.14);padding:8px}.dq-more-menu a{display:block;padding:10px 12px;border-radius:10px;text-decoration:none;color:#0f172a;font-weight:800;font-size:.84rem}.dq-more-menu a:hover{background:#eff6ff;color:#1d4ed8}.quote-doc-grid{gap:12px}.quote-doc-panel{border-radius:16px}.quote-template-details{border-radius:14px}.quote-template-details summary{padding:12px 14px}.quote-document-card .alert.info{border-radius:14px}.quote-document-card .quote-variable-list{padding-top:8px}

@media (max-width:1200px){.dq-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dq-automation-workspace{grid-template-columns:1fr}.dq-automation-side{position:static}.quote-commercial-text-form .quote-commercial-grid{grid-template-columns:1fr}.dq-doc-actions{justify-content:flex-start}}@media (max-width:720px){.dq-metric-grid{grid-template-columns:1fr}.compact-toggle-grid{grid-template-columns:1fr}.quote-document-card .section-title{display:block}.dq-doc-actions{margin-top:12px}.dq-action-btn{width:100%}.dq-doc-actions .inline-form{width:100%}.dq-more-actions{width:100%}.dq-more-menu{position:static;margin-top:8px}.dq-header-actions .btn{width:100%}}

/* v0.9.9E - Pulido UX presupuesto y automatizaciones */
.btn-compact{padding:9px 13px!important;border-radius:11px!important;font-size:13px!important}.compact-title{margin-bottom:12px!important}.compact-title h2{margin-bottom:4px}.compact-alert{padding:10px 12px!important;font-size:13px}.dq-truncate{display:block;max-width:260px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.quote-commercial-card-v099e{padding:18px 20px!important}.quote-commercial-form-v099e .form-field{margin-top:0}.quote-commercial-grid-v099e{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:12px 16px!important}.quote-commercial-grid-v099e .commercial-main-field textarea{min-height:92px;resize:vertical}.quote-commercial-grid-v099e input,.quote-commercial-grid-v099e textarea,.quote-commercial-grid-v099e select{padding:9px 11px!important;border-radius:11px!important;font-size:13px!important}.quote-commercial-grid-v099e .form-field span{font-size:12px!important;margin-bottom:5px!important;color:#1e3558!important}.quote-commercial-grid-v099e small{font-size:11px!important;margin-top:4px!important;display:block}.compact-number-field input{max-width:120px}.compact-suffix{align-items:center}.compact-suffix em{font-size:12px}.quote-section-actions{margin-top:12px!important}.quote-document-card-v099e{padding:18px 20px!important}.quote-document-titlebar{align-items:flex-start!important}.quote-document-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap;min-width:fit-content}.quote-document-actions .inline-form{margin:0!important}.quote-document-actions .btn,.dq-action-menu>summary{height:38px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;padding:0 13px!important;border-radius:11px!important;font-size:13px!important;white-space:nowrap;line-height:1!important}.quote-document-actions .btn.success{background:#16a34a!important;color:#fff!important}.dq-action-menu{position:relative;margin:0}.dq-action-menu>summary{list-style:none;cursor:pointer}.dq-action-menu>summary::-webkit-details-marker{display:none}.dq-action-menu[open]>summary{background:#dfe8f5;color:#13233a}.dq-action-menu>div{position:absolute;right:0;top:44px;z-index:40;min-width:250px;background:#fff;border:1px solid #dbe3ef;border-radius:14px;box-shadow:0 20px 42px rgba(15,23,42,.15);padding:8px}.dq-action-menu>div a{display:block;padding:10px 12px;border-radius:10px;color:#13233a;font-weight:800;font-size:13px}.dq-action-menu>div a:hover{background:#f2f6fc;color:#204b8f}.quote-doc-grid-v099e{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:12px!important}.quote-doc-grid-v099e .quote-doc-panel{padding:14px!important;border-radius:14px!important}.dq-doc-variables-panel{margin-top:12px!important}.dq-doc-variables-panel>summary{font-weight:900;color:#204b8f;cursor:pointer;list-style:none}.dq-doc-variables-panel>summary::-webkit-details-marker{display:none}
.dq-automation-page{display:grid;gap:18px}.dq-automation-hero{display:flex;justify-content:space-between;align-items:flex-start;gap:18px}.dq-automation-hero h1{margin:4px 0 6px;color:#10213a}.dq-automation-hero p{margin:0;color:#667085;max-width:880px}.dq-automation-hero-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.dq-automation-hero-actions .btn{height:38px;display:inline-flex;align-items:center}.dq-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.dq-kpi-card{background:#fff;border:1px solid #dbe3ef;border-radius:18px;box-shadow:0 12px 28px rgba(15,23,42,.06);padding:16px}.dq-kpi-card span{display:block;color:#64748b;font-size:12px;text-transform:uppercase;letter-spacing:.05em;font-weight:900}.dq-kpi-card strong{display:block;font-size:30px;line-height:1.1;margin:6px 0;color:#17498f}.dq-kpi-card small{color:#667085;font-size:12px}.dq-kpi-card.is-danger strong{color:#dc2626}.dq-kpi-card.is-success strong{color:#059669}.dq-automation-table-card{padding:16px 18px!important}.dq-table-toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px}.dq-table-toolbar h2{margin:0 0 4px}.dq-table-toolbar-actions{display:flex;gap:10px;align-items:center}.dq-automation-table th{font-size:11px}.dq-automation-table td{font-size:13px;vertical-align:middle}.dq-automation-table tr.is-selected{background:#f4f8ff}.dq-automation-table td strong{display:block;color:#10213a}.dq-automation-table td small{display:block;color:#667085;margin-top:2px}.dq-status-pill{display:inline-flex;align-items:center;border-radius:999px;padding:5px 9px;font-size:11px;font-weight:900;border:1px solid transparent}.dq-status-pill.is-on{background:#dcfce7;color:#166534;border-color:#bbf7d0}.dq-status-pill.is-paused{background:#fff7ed;color:#c2410c;border-color:#fed7aa}.dq-status-pill.is-error{background:#fee2e2;color:#991b1b;border-color:#fecaca}.dq-row-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.dq-row-actions .inline-form{margin:0}.dq-icon-action{border:1px solid #dbe3ef;background:#fff;color:#204b8f;border-radius:10px;padding:7px 9px;font-weight:900;font-size:12px;cursor:pointer}.dq-icon-action:hover{background:#eef5ff;border-color:#9dc2ff}.dq-automation-layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:18px;align-items:start}.dq-automation-editor-card,.dq-automation-side .card{padding:18px 20px!important}.dq-form-section{border:1px solid #e0e7f2;background:linear-gradient(180deg,#fbfdff,#f7faff);border-radius:16px;padding:15px;margin-top:14px}.dq-form-section h3{margin:0 0 12px;color:#163259;font-size:15px}.dq-form-grid{gap:12px!important}.dq-form-grid .form-field,.dq-automation-form .form-field{margin-top:0}.dq-automation-form input,.dq-automation-form select,.dq-automation-form textarea{padding:9px 11px!important;border-radius:11px!important;font-size:13px!important}.dq-automation-form .form-field span{display:block;color:#263b5d;font-size:12px;font-weight:900;margin-bottom:5px}.dq-switch-card{background:#fff!important}.dq-info-strip{border:1px solid #bcd5ff;background:#eff6ff;color:#1e3a8a;border-radius:12px;padding:10px 12px;font-size:12px;font-weight:800;margin-bottom:12px}.dq-attachment-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}.dq-sticky-actions{position:sticky;bottom:0;background:linear-gradient(180deg,rgba(255,255,255,.75),#fff);border-top:1px solid #e6edf6;margin:18px -20px -18px;padding:12px 20px;display:flex;gap:8px;justify-content:flex-end;align-items:center}.dq-sticky-actions .btn{height:38px;display:inline-flex;align-items:center}.dq-variable-card{position:sticky;top:16px}.compact-variables{max-height:430px;overflow:auto}.compact-variables code{font-size:11px}.dq-history-card{padding:16px 18px!important}.dq-history-table th{font-size:11px}.dq-history-table td{font-size:13px}.automation-kpis{margin-top:-4px}
@media(max-width:1180px){.dq-automation-layout{grid-template-columns:1fr}.dq-variable-card{position:static}.dq-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.quote-document-titlebar{display:block!important}.quote-document-actions{justify-content:flex-start;margin-top:12px}.quote-doc-grid-v099e{grid-template-columns:1fr!important}}
@media(max-width:780px){.dq-automation-hero{display:block}.dq-automation-hero-actions{justify-content:flex-start;margin-top:12px}.dq-kpi-grid,.quote-commercial-grid-v099e{grid-template-columns:1fr!important}.quote-document-actions .btn,.quote-document-actions form,.dq-action-menu{width:100%}.dq-action-menu>summary{width:100%}.dq-action-menu>div{position:static;margin-top:8px}.dq-sticky-actions{position:static;flex-direction:column}.dq-sticky-actions .btn{width:100%;justify-content:center}.dq-attachment-grid{grid-template-columns:1fr!important}.dq-table-toolbar{display:block}.dq-table-toolbar-actions{margin-top:8px}.dq-automation-table{min-width:980px}}

/* v0.9.9E - Compatibilidad de vista moderna de automatizaciones */
.automation-modern-page{display:grid;gap:18px}.automation-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.automation-hero h1{margin:4px 0 6px;color:#0f172a;font-size:1.65rem}.automation-hero p{max-width:860px}.automation-hero-actions{display:flex;gap:8px;align-items:center;justify-content:flex-end;flex-wrap:wrap}.btn-uniform{height:38px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;padding:0 14px!important;border-radius:11px!important;font-size:13px!important;line-height:1!important;white-space:nowrap}.automation-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.automation-kpi-card{background:#fff;border:1px solid #dbe5f4;border-radius:18px;box-shadow:0 12px 28px rgba(15,23,42,.06);padding:16px 18px}.automation-kpi-card span{display:block;color:#64748b;font-size:12px;text-transform:uppercase;letter-spacing:.05em;font-weight:900}.automation-kpi-card strong{display:block;font-size:30px;line-height:1.1;color:#1d4ed8;margin:6px 0}.automation-kpi-card small{color:#64748b;font-size:12px;font-weight:700}.automation-kpi-card.is-warning strong{color:#dc2626}.automation-kpi-card.is-success strong{color:#059669}.automation-workspace{display:grid;grid-template-columns:minmax(0,1fr) 430px;gap:18px;align-items:start}.automation-table-card,.automation-editor-modern{padding:18px 20px!important}.automation-filter-pills{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.automation-filter-pills span{display:inline-flex;background:#eef6ff;color:#1d4ed8;border:1px solid #dbeafe;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:900}.automation-rules-table th{font-size:11px;background:#f8fafc}.automation-rules-table td{font-size:13px;vertical-align:middle}.automation-rules-table tr.selected td{background:#eff6ff}.automation-rules-table td strong{display:block;color:#0f172a}.automation-rules-table td small{display:block;color:#667085;margin-top:3px}.automation-table-wrap{border:1px solid #e5edf7;border-radius:14px;overflow:auto}.automation-state{display:inline-flex;align-items:center;border-radius:999px;padding:5px 9px;font-size:11px;font-weight:900;border:1px solid transparent}.automation-state.active{background:#dcfce7;color:#166534;border-color:#bbf7d0}.automation-state.paused{background:#fff7ed;color:#c2410c;border-color:#fed7aa}.automation-actions-cell .inline-form{margin:0}.automation-actions-cell{white-space:nowrap}.icon-action{display:inline-flex;align-items:center;justify-content:center;border:1px solid #dbe3ef;background:#fff;color:#204b8f;border-radius:10px;padding:7px 9px;font-weight:900;font-size:12px;cursor:pointer;margin-left:4px}.icon-action:hover{background:#eef5ff;border-color:#9dc2ff}.automation-form-section{border:1px solid #e0e7f2;background:linear-gradient(180deg,#fbfdff,#f7faff);border-radius:16px;padding:14px;margin-top:14px}.automation-section-label{display:flex;align-items:center;gap:9px;margin-bottom:11px}.automation-section-label span{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:9px;background:#1d4ed8;color:#fff;font-weight:900;font-size:11px}.automation-section-label strong{color:#0f172a;font-size:14px}.automation-form-modern .form-field,.automation-form-modern label{margin-top:0}.automation-form-modern input,.automation-form-modern select,.automation-form-modern textarea{padding:9px 11px!important;border-radius:11px!important;font-size:13px!important}.automation-form-modern .form-field span{display:block;color:#263b5d;font-size:12px;font-weight:900;margin-bottom:5px}.compact-form-grid{gap:12px!important}.compact-check{padding:10px 12px!important;border-radius:12px!important}.compact-check strong{font-size:13px!important}.compact-check small{font-size:11px!important}.compact-toggle-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:10px!important}.automation-sticky-actions{display:flex;gap:8px;justify-content:flex-end;border-top:1px solid #e6edf6;padding-top:12px;margin-top:14px}.automation-bottom-grid{display:grid;grid-template-columns:minmax(0,1.4fr) 360px;gap:18px;align-items:start}.automation-log-table th{font-size:11px}.automation-log-table td{font-size:13px}.automation-variable-card .compact-variable-list{max-height:330px;overflow:auto}.compact-variable-list code{font-size:11px;background:#eef6ff;color:#1d4ed8;border-color:#d5e7ff}.automation-help-card{display:flex;justify-content:space-between;align-items:center;gap:14px;border:1px solid #bfdbfe;background:#eff6ff;color:#1e3a8a;border-radius:16px;padding:13px 15px}.automation-help-card strong{font-size:15px}.automation-help-card span{color:#334155;font-size:13px}.right{text-align:right}@media(max-width:1280px){.automation-workspace{grid-template-columns:1fr}.automation-editor-modern{position:static}.automation-bottom-grid{grid-template-columns:1fr}}@media(max-width:900px){.automation-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.automation-hero{display:block}.automation-hero-actions{justify-content:flex-start;margin-top:12px}.automation-table-wrap table{min-width:980px}}@media(max-width:720px){.automation-kpi-grid,.automation-form-modern .form-grid.two-col,.compact-toggle-grid{grid-template-columns:1fr!important}.automation-sticky-actions{flex-direction:column-reverse}.automation-sticky-actions .btn,.automation-sticky-actions button,.automation-hero-actions .btn{width:100%}.automation-help-card{align-items:flex-start;flex-direction:column}}

/* v0.9.9F - UX avanzada presupuesto y automatizaciones */
.dq-collapse-card{padding:0!important;overflow:visible;background:#fff;border:1px solid #dfe7f2;border-radius:18px;box-shadow:0 10px 24px rgba(15,23,42,.04);margin-bottom:14px}.dq-collapse-card>summary{list-style:none}.dq-collapse-card>summary::-webkit-details-marker{display:none}.dq-collapse-summary{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 20px;cursor:pointer;border-radius:18px;background:linear-gradient(180deg,#fff,#fbfdff)}.dq-collapse-summary:hover{background:#f7fbff}.dq-collapse-summary>span:first-child{display:flex;flex-direction:column;gap:3px}.dq-collapse-summary strong{font-size:18px;color:#0f172a;line-height:1.2}.dq-collapse-summary small{color:#64748b;font-size:12px}.dq-collapse-pill{display:inline-flex!important;align-items:center;justify-content:center;min-width:86px;border:1px solid #dbe7f5;background:#f3f7fc;color:#1d4ed8;border-radius:999px;padding:7px 12px;font-size:12px;font-weight:900}.dq-collapse-card[open]>.dq-collapse-summary{border-bottom:1px solid #e8eef7;border-bottom-left-radius:0;border-bottom-right-radius:0}.dq-collapse-card[open]>.dq-collapse-summary .dq-collapse-pill{background:#eaf2ff}.dq-collapse-card:not([open])>.dq-collapse-summary .dq-collapse-pill{color:#475569}.dq-collapse-body{padding:18px 20px}.dq-section-lead{margin:-3px 0 14px!important}.quote-main-title-hidden,.dq-subtitle-hidden{display:none!important}.quote-document-titlebar{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:18px}.dq-doc-actions-v099f{display:flex!important;align-items:center!important;justify-content:flex-end!important;gap:12px!important;flex-wrap:nowrap!important}.dq-doc-actions-v099f .inline-form{margin:0!important}.dq-doc-action-btn{height:42px!important;min-width:136px!important;border-radius:12px!important;padding:0 16px!important;font-size:14px!important;font-weight:900!important;line-height:1!important;box-shadow:0 8px 18px rgba(15,23,42,.04)}.dq-doc-actions-v099f .btn.primary{background:#2857ae!important;border-color:#2857ae!important;color:#fff!important}.dq-doc-actions-v099f .btn.secondary,.dq-more-actions-v099f>summary{background:#fff!important;border:1px solid #dbe5f2!important;color:#10213a!important}.dq-doc-actions-v099f .btn.secondary:hover,.dq-more-actions-v099f>summary:hover{background:#f4f8ff!important;border-color:#b8cef4!important}.dq-more-actions-v099f{position:relative!important;margin:0!important}.dq-more-actions-v099f>summary{list-style:none!important;cursor:pointer!important}.dq-more-actions-v099f>summary::-webkit-details-marker{display:none}.dq-more-actions-v099f[open]>summary{background:#eef5ff!important;border-color:#9dc2ff!important;color:#1d4ed8!important}.dq-more-actions-v099f>div{position:absolute;right:0;top:48px;z-index:50;min-width:280px;background:#fff;border:1px solid #dbe3ef;border-radius:14px;box-shadow:0 22px 48px rgba(15,23,42,.18);padding:8px}.dq-more-actions-v099f a,.dq-more-actions-v099f button{display:block;width:100%;box-sizing:border-box;text-align:left;background:transparent;border:0;padding:11px 12px;border-radius:10px;color:#13233a;font-weight:850;font-size:13px;cursor:pointer;text-decoration:none}.dq-more-actions-v099f a:hover,.dq-more-actions-v099f button:hover{background:#f2f6fc;color:#204b8f}.dq-menu-form{margin:0}.quote-doc-grid-v099e{margin-top:8px}.quote-document-card-v099e .compact-alert{margin-top:14px!important}.quote-commercial-card-v099e .dq-collapse-body{padding-top:14px}.quote-commercial-grid-v099e .commercial-main-field textarea{min-height:76px!important}.quote-commercial-grid-v099e input,.quote-commercial-grid-v099e textarea,.quote-commercial-grid-v099e select{min-height:38px!important}.totals-card .detail-grid{margin-top:0}

.dq-automation-page-v099f{display:grid;gap:18px}.dq-automation-hero-v099f{background:linear-gradient(135deg,#ffffff 0%,#f4f8ff 55%,#edf5ff 100%);border:1px solid #dbe7f5;border-radius:22px;padding:22px 24px;box-shadow:0 16px 35px rgba(15,23,42,.05)}.dq-automation-hero-v099f h1{font-size:1.85rem;margin:5px 0 7px;color:#0b1f3a}.dq-automation-hero-v099f p{font-size:14px;color:#64748b}.dq-kpi-grid-v099f{margin-top:-4px}.dq-kpi-grid-v099f .dq-kpi-card{position:relative;overflow:hidden;border-radius:20px;background:linear-gradient(180deg,#fff,#fbfdff);box-shadow:0 14px 34px rgba(15,23,42,.07)}.dq-kpi-grid-v099f .dq-kpi-card:after{content:"";position:absolute;right:-28px;top:-28px;width:88px;height:88px;border-radius:50%;background:rgba(29,78,216,.08)}.dq-kpi-grid-v099f .dq-kpi-card span{font-size:11px}.dq-kpi-grid-v099f .dq-kpi-card strong{font-size:34px}.dq-automation-table-card-v099f{padding:20px!important;border-radius:22px!important}.dq-automation-table-wrap{border:1px solid #e5edf7;border-radius:16px;overflow:auto}.dq-automation-table-v099f{border-collapse:separate!important;border-spacing:0!important;width:100%}.dq-automation-table-v099f th{background:#f8fbff!important;color:#475569!important;font-size:11px!important;text-transform:uppercase!important;letter-spacing:.05em!important;padding:13px 14px!important;border-bottom:1px solid #e5edf7!important}.dq-automation-table-v099f td{padding:15px 14px!important;border-bottom:1px solid #eef3f9!important;vertical-align:middle!important}.dq-automation-table-v099f tbody tr:hover td{background:#f9fcff!important}.dq-automation-table-v099f tbody tr.is-selected td{background:#eff6ff!important}.dq-row-actions-v099f{display:flex!important;align-items:center!important;gap:7px!important;flex-wrap:nowrap!important}.dq-row-actions-v099f .inline-form{margin:0!important}.dq-icon-action{display:inline-flex!important;align-items:center!important;justify-content:center!important;min-width:34px!important;height:34px!important;border:1px solid #dbe3ef!important;background:#fff!important;color:#204b8f!important;border-radius:10px!important;font-weight:900!important;font-size:13px!important;cursor:pointer;text-decoration:none!important}.dq-icon-action:hover{background:#eef5ff!important;border-color:#9dc2ff!important;transform:translateY(-1px)}.dq-automation-editor-card-v099f{border-radius:22px!important;padding:20px 22px!important;border:1px solid #dbe7f5!important;box-shadow:0 16px 35px rgba(15,23,42,.05)!important}.dq-editor-placeholder-v099f{display:flex;align-items:center;justify-content:space-between;gap:16px;border:1px dashed #b8cef4!important;background:#f7fbff!important;border-radius:20px!important;padding:20px 22px!important}.dq-editor-placeholder-v099f p{margin:4px 0 0;color:#64748b}.dq-automation-form-v099f .dq-form-section{border:1px solid #e0e7f2!important;background:linear-gradient(180deg,#fff,#f9fbff)!important;border-radius:18px!important;padding:16px!important;margin-top:14px!important}.dq-automation-form-v099f .dq-form-section h3{font-size:15px!important;margin:0 0 12px!important;color:#0f2a4f!important}.dq-info-strip{border:1px solid #bfdbfe!important;background:#eff6ff!important;color:#1e3a8a!important;border-radius:12px!important;padding:10px 12px!important;font-size:12px!important;font-weight:800!important;margin-bottom:12px!important}.dq-bottom-grid-v099f{display:grid;grid-template-columns:minmax(0,1.5fr) 420px;gap:18px;align-items:start}.dq-history-card-v099f,.dq-variable-card-v099f{border-radius:22px!important;padding:20px!important;box-shadow:0 14px 32px rgba(15,23,42,.05)!important}.dq-history-table-v099f th{background:#f8fbff!important;color:#475569!important;font-size:11px!important;text-transform:uppercase!important;letter-spacing:.05em!important}.dq-history-table-v099f td{vertical-align:top!important;padding:13px 12px!important}.dq-error-details summary{cursor:pointer;color:#1d4ed8;font-weight:900}.dq-error-details small{display:block;margin-top:6px;max-width:520px;color:#64748b;line-height:1.35}.dq-variable-card-v099f{position:static!important}.dq-variable-card-v099f .dq-collapse-summary{padding:0!important;background:transparent!important;border-bottom:0!important}.dq-variable-card-v099f[open]>.dq-collapse-summary{padding-bottom:12px!important;border-bottom:1px solid #e8eef7!important}.dq-variable-card-v099f .dq-collapse-body{padding:14px 0 0!important}.dq-variable-card-v099f code{display:inline-flex;margin:4px;padding:7px 9px;border-radius:999px;background:#eef6ff;color:#1d4ed8;border:1px solid #d5e7ff;font-size:11px}.dq-status-pill.is-error{background:#fee2e2!important;color:#991b1b!important;border:1px solid #fecaca!important}.dq-status-pill.is-on{background:#dcfce7!important;color:#166534!important;border:1px solid #bbf7d0!important}.dq-status-pill.is-paused{background:#fff7ed!important;color:#c2410c!important;border:1px solid #fed7aa!important}
@media(max-width:1180px){.dq-doc-actions-v099f{justify-content:flex-start!important;margin-top:12px!important;flex-wrap:wrap!important}.quote-document-titlebar{display:block!important}.dq-bottom-grid-v099f{grid-template-columns:1fr}.dq-kpi-grid-v099f{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:760px){.dq-collapse-summary{align-items:flex-start;flex-direction:column}.dq-collapse-pill{min-width:0}.dq-doc-actions-v099f{display:grid!important;grid-template-columns:1fr!important;width:100%!important}.dq-doc-action-btn,.dq-doc-actions-v099f .inline-form,.dq-more-actions-v099f{width:100%!important}.dq-more-actions-v099f>div{position:static!important;margin-top:8px!important}.dq-kpi-grid-v099f{grid-template-columns:1fr!important}.dq-editor-placeholder-v099f{display:block}.dq-editor-placeholder-v099f .btn{margin-top:12px;width:100%}.dq-table-toolbar{display:block!important}.dq-table-toolbar-actions{margin-top:10px!important}}

/* DataQuest Lift v1.0.0A - aprobacion formal de presupuestos */
.quote-approval-card {
    border: 1px solid rgba(37, 99, 235, .12);
}
.quote-approval-layout {
    display: grid;
    grid-template-columns: minmax(260px, .75fr) minmax(360px, 1.35fr);
    gap: 18px;
    align-items: start;
}
.quote-approval-status-panel,
.quote-approval-actions-panel,
.approval-history-block {
    background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
    border: 1px solid #dbe5f1;
    border-radius: 18px;
    padding: 18px;
    box-shadow: 0 10px 28px rgba(15, 23, 42, .04);
}
.approval-state {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 8px 0 6px;
    padding: 8px 12px;
    border-radius: 999px;
    font-size: 14px;
    font-weight: 800;
}
.approval-state.approved { color: #047857; background: #dcfce7; }
.approval-state.rejected { color: #b91c1c; background: #fee2e2; }
.approval-state.pending { color: #92400e; background: #fef3c7; }
.approval-state.converted { color: #1d4ed8; background: #dbeafe; }
.approval-state.neutral { color: #475569; background: #f1f5f9; }
.approval-latest-box {
    margin-top: 14px;
    padding: 14px;
    border-radius: 14px;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    display: grid;
    gap: 4px;
}
.approval-latest-box span,
.approval-latest-box small {
    color: #64748b;
}
.approval-action-box {
    border: 1px solid #dbe5f1;
    border-radius: 16px;
    padding: 0;
    background: #fff;
    overflow: hidden;
    margin-bottom: 12px;
}
.approval-action-box:last-child { margin-bottom: 0; }
.approval-action-box > summary {
    cursor: pointer;
    list-style: none;
    padding: 14px 16px;
    font-weight: 900;
    color: #0f2a4d;
    background: linear-gradient(90deg, #eff6ff, #ffffff);
    border-bottom: 1px solid #e2e8f0;
}
.approval-action-box > summary::-webkit-details-marker { display: none; }
.rejection-box > summary {
    color: #991b1b;
    background: linear-gradient(90deg, #fff1f2, #ffffff);
}
.approval-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    padding: 16px;
}
.approval-form-grid .full { grid-column: 1 / -1; }
.btn.danger {
    background: #b91c1c;
    color: #fff;
    border-color: #b91c1c;
}
.btn.danger:hover { filter: brightness(.95); }
.approval-history-block {
    margin-top: 18px;
}
.approval-history-block h3 {
    margin: 0 0 12px;
    font-size: 17px;
}
.approval-history-table-wrap {
    overflow-x: auto;
}
.approval-history-table {
    width: 100%;
    border-collapse: collapse;
    min-width: 860px;
}
.approval-history-table th,
.approval-history-table td {
    padding: 12px 10px;
    border-bottom: 1px solid #e2e8f0;
    vertical-align: top;
    text-align: left;
}
.approval-history-table th {
    color: #64748b;
    text-transform: uppercase;
    letter-spacing: .05em;
    font-size: 11px;
}
.approval-history-table td small {
    display: block;
    margin-top: 2px;
    color: #64748b;
}
.decision-badge {
    display: inline-flex;
    align-items: center;
    padding: 5px 9px;
    border-radius: 999px;
    font-weight: 800;
    font-size: 12px;
}
.decision-badge.decision-approved { color: #047857; background: #dcfce7; }
.decision-badge.decision-rejected { color: #b91c1c; background: #fee2e2; }
.decision-badge.decision-changes_requested { color: #92400e; background: #fef3c7; }
@media (max-width: 1100px) {
    .quote-approval-layout {
        grid-template-columns: 1fr;
    }
}
@media (max-width: 720px) {
    .approval-form-grid {
        grid-template-columns: 1fr;
    }
}

/* v1.0.0B - Sacar presupuesto a terreno */
.quote-field-dispatch-card {
    border: 1px solid rgba(20, 43, 78, .12);
    background: linear-gradient(135deg, rgba(20, 43, 78, .04), rgba(212, 124, 55, .04)), #fff;
}
.field-dispatch-grid {
    display: grid;
    grid-template-columns: minmax(260px, .9fr) minmax(360px, 1.4fr);
    gap: 18px;
    align-items: start;
}
.field-dispatch-intro {
    padding: 18px;
    border-radius: 18px;
    background: #0f2747;
    color: #fff;
    box-shadow: 0 16px 40px rgba(15, 39, 71, .16);
}
.field-dispatch-intro .tech-eyebrow { color: rgba(255,255,255,.72); }
.field-dispatch-intro h3 { margin: 6px 0 8px; color: #fff; }
.field-dispatch-intro p { color: rgba(255,255,255,.78); line-height: 1.45; }
.field-dispatch-checks { display: grid; gap: 8px; margin-top: 14px; }
.field-dispatch-checks span {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 10px;
    border-radius: 12px;
    background: rgba(255,255,255,.1);
    color: #fff;
    font-size: .88rem;
}
.field-dispatch-form {
    padding: 16px;
    border: 1px solid rgba(15, 39, 71, .1);
    border-radius: 18px;
    background: rgba(255,255,255,.88);
}
.field-dispatch-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}
.field-dispatch-form-grid .full { grid-column: 1 / -1; }
.field-dispatch-actions { margin-top: 12px; justify-content: flex-end; }
.field-dispatch-created { display: grid; gap: 16px; }
.field-dispatch-created-head {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    align-items: flex-start;
    padding: 16px;
    border-radius: 18px;
    background: linear-gradient(135deg, rgba(20,43,78,.08), rgba(212,124,55,.08));
    border: 1px solid rgba(20,43,78,.1);
}
.field-dispatch-created-head h3 { margin: 4px 0; }
.field-dispatch-created-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.field-dispatch-detail-grid { margin-top: 0; }
.repair-items-preview { margin-top: 4px; }
.repair-items-preview h3 { margin: 0 0 10px; }
.repair-items-preview-table small { display: block; color: var(--muted, #6b7280); margin-top: 4px; line-height: 1.35; }
.repair-item-status-pending { background: #fff7ed; color: #9a3412; }
.repair-item-status-in_progress { background: #eff6ff; color: #1d4ed8; }
.repair-item-status-partial { background: #fef9c3; color: #854d0e; }
.repair-item-status-completed { background: #dcfce7; color: #166534; }
.repair-item-status-not_executed { background: #f3f4f6; color: #374151; }
.repair-item-status-cancelled { background: #fee2e2; color: #991b1b; }
@media (max-width: 980px) {
    .field-dispatch-grid { grid-template-columns: 1fr; }
    .field-dispatch-form-grid { grid-template-columns: 1fr; }
    .field-dispatch-created-head { flex-direction: column; }
}

/* DataQuest-Lift v1.0.0C - Bandeja de presupuestos en ejecucion */
.repairs-budget-head-v100c{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem}.repairs-budget-head-v100c h2{margin:.15rem 0 .3rem;font-size:1.55rem}.repairs-board-v100c{padding:1.25rem}.repairs-kpi-grid-v100c{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.85rem;margin-bottom:1.2rem}.dq-kpi-card{border:1px solid #dfe7f3;border-radius:16px;background:linear-gradient(180deg,#fff,#f8fbff);padding:1rem 1.05rem;box-shadow:0 8px 24px rgba(15,35,75,.05);position:relative;overflow:hidden}.dq-kpi-card:before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:#244c9b}.dq-kpi-card.kpi-pending:before{background:#d97706}.dq-kpi-card.kpi-active:before{background:#2451a6}.dq-kpi-card.kpi-field:before{background:#059669}.dq-kpi-card.kpi-history:before{background:#64748b}.dq-kpi-card span{display:block;text-transform:uppercase;letter-spacing:.045em;font-size:.72rem;font-weight:800;color:#64748b}.dq-kpi-card strong{display:block;font-size:1.9rem;line-height:1.1;color:#12213a;margin:.25rem 0}.dq-kpi-card small{color:#6b7890}.repair-filter-bar-v100c{display:grid;grid-template-columns:minmax(280px,1fr) 180px 210px auto;gap:.75rem;align-items:end}.repair-filter-bar-v100c .form-field{margin:0}.filter-actions{display:flex;gap:.5rem;align-items:center}.quote-list-section-v100c{margin-top:1rem}.quote-list-section-v100c .dq-collapse-summary strong{font-size:1rem}.execution-pill{background:#e9f8ef!important;color:#047857!important;border-color:#bbf7d0!important}.dq-table-wrap-v100c{overflow-x:auto}.dq-quotes-table-v100c{width:100%;border-collapse:separate;border-spacing:0}.dq-quotes-table-v100c th{font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:#66738b;text-align:left;border-bottom:1px solid #dbe5f2;padding:.75rem}.dq-quotes-table-v100c td{border-bottom:1px solid #edf2f7;padding:.8rem .75rem;vertical-align:middle}.dq-quotes-table-v100c td small{display:block;color:#738199;margin-top:.15rem}.compact-empty{padding:1.25rem;border:1px dashed #cbd8ea;border-radius:14px;background:#f8fbff;color:#64748b}.quote-bulk-form-v100c .mb-2{margin-bottom:.75rem}.dq-request-list-v100c{display:grid;gap:.75rem}.dq-request-card-v100c{display:grid;grid-template-columns:auto 1fr auto;gap:.85rem;align-items:center;padding:.9rem;border:1px solid #dfe7f3;border-radius:16px;background:#fff}.dq-request-card-v100c h3{margin:0 0 .25rem;font-size:1rem}.dq-request-card-v100c p{margin:0;color:#506078}.request-check{display:flex;align-items:center}.dq-meta-row{display:flex;flex-wrap:wrap;gap:.4rem .8rem;margin-top:.55rem;color:#64748b;font-size:.82rem}.request-actions{display:flex;justify-content:flex-end}.dq-execution-grid-v100c{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem}.dq-execution-card-v100c{border:1px solid #d8e5f5;border-radius:18px;padding:1rem;background:linear-gradient(180deg,#ffffff,#f7fbff);box-shadow:0 10px 28px rgba(15,35,75,.06)}.execution-card-head{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;margin-bottom:.85rem}.execution-card-head h3{margin:.15rem 0 .2rem;font-size:1.15rem}.execution-card-head p{margin:0;color:#64748b}.execution-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.65rem}.execution-metrics div{border:1px solid #e3ebf6;border-radius:14px;padding:.65rem;background:#fff}.execution-metrics span{display:block;text-transform:uppercase;font-size:.65rem;font-weight:800;color:#718096;letter-spacing:.045em}.execution-metrics strong{display:block;color:#14213d;font-size:.95rem;margin:.15rem 0}.execution-metrics small{display:block;color:#64748b}.execution-actions{display:flex;gap:.5rem;margin-top:.9rem;justify-content:flex-end}.quote-status-converted_to_repair,.quote-status-approved_by_customer{background:#dcfce7;color:#166534}.quote-status-rejected{background:#fee2e2;color:#991b1b}.quote-status-sent{background:#dbeafe;color:#1d4ed8}.quote-status-closed{background:#ede9fe;color:#5b21b6}.quote-status-draft,.quote-status-preparation{background:#fef3c7;color:#92400e}.priority-urgent,.priority-critical{background:#fee2e2;color:#991b1b}.priority-high{background:#ffedd5;color:#9a3412}.priority-medium,.priority-normal{background:#e0f2fe;color:#075985}.priority-low{background:#dcfce7;color:#166534}@media(max-width:1100px){.repairs-kpi-grid-v100c{grid-template-columns:repeat(2,minmax(0,1fr))}.repair-filter-bar-v100c{grid-template-columns:1fr 1fr}.dq-execution-grid-v100c{grid-template-columns:1fr}.execution-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:720px){.repairs-budget-head-v100c{flex-direction:column}.repairs-kpi-grid-v100c,.repair-filter-bar-v100c{grid-template-columns:1fr}.dq-request-card-v100c{grid-template-columns:1fr}.request-check{display:none}.execution-metrics{grid-template-columns:1fr}.execution-actions,.filter-actions{justify-content:flex-start;flex-wrap:wrap}}

/* v1.0.0C.2 - Bandeja comercial agrupada por estado, cliente, ascensor y presupuesto */
.dq-grouped-quotes-v100c2{display:grid;gap:1rem}.dq-customer-group-v100c2{border:1px solid #dbe6f4;border-radius:18px;background:#fff;box-shadow:0 10px 28px rgba(15,35,75,.045);overflow:hidden}.dq-customer-summary-v100c2{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.1rem;cursor:pointer;background:linear-gradient(180deg,#fff,#f8fbff);list-style:none}.dq-customer-summary-v100c2::-webkit-details-marker{display:none}.dq-customer-summary-v100c2:before{content:"▸";font-weight:900;color:#244c9b;margin-right:.35rem}.dq-customer-group-v100c2[open]>.dq-customer-summary-v100c2:before{content:"▾"}.dq-customer-summary-v100c2 span:first-child{display:flex;flex-direction:column;gap:.15rem}.dq-customer-summary-v100c2 strong{font-size:1.03rem;color:#12213a}.dq-customer-summary-v100c2 small{color:#64748b}.dq-group-pills{display:flex!important;flex-direction:row!important;gap:.45rem;flex-wrap:wrap;justify-content:flex-end}.dq-group-pills b{border:1px solid #dbe7f5;border-radius:999px;background:#f4f8ff;color:#244c9b;padding:.35rem .62rem;font-size:.78rem;white-space:nowrap}.dq-customer-body-v100c2{padding:.95rem;display:grid;gap:.85rem;background:#fbfdff;border-top:1px solid #edf2f7}.dq-elevator-group-v100c2{border:1px solid #e3ebf6;border-radius:16px;background:#fff;overflow:hidden}.dq-elevator-head-v100c2{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.8rem .9rem;background:#f7faff;border-bottom:1px solid #e6eef8}.dq-elevator-head-v100c2>span:first-child{display:flex;flex-direction:column;gap:.15rem}.dq-elevator-head-v100c2 strong{color:#12213a}.dq-elevator-head-v100c2 small{color:#6b7890}.dq-quote-rows-v100c2{display:grid}.dq-quote-row-v100c2{display:grid;grid-template-columns:minmax(190px,1.4fr) minmax(140px,.75fr) minmax(120px,.55fr) auto;gap:.8rem;align-items:center;padding:.85rem .9rem;border-top:1px solid #eef3fa}.dq-quote-row-v100c2:first-child{border-top:0}.dq-quote-row-v100c2:hover{background:#f8fbff}.dq-quote-row-v100c2 strong{display:block;color:#10203c}.dq-quote-row-v100c2 small{display:block;color:#6b7890;margin-top:.16rem}.dq-row-actions-v100c2{display:flex;justify-content:flex-end;gap:.45rem}.execution-grouped-v100c2 .dq-customer-group-v100c2{border-color:#cdebdc}.execution-grouped-v100c2 .dq-customer-summary-v100c2{background:linear-gradient(180deg,#ffffff,#f4fff8)}.execution-grouped-v100c2 .dq-customer-summary-v100c2:before{color:#059669}.execution-grouped-v100c2 .dq-group-pills b{background:#ecfdf5;border-color:#bbf7d0;color:#047857}.dq-execution-grid-v100c2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem;padding:.85rem}.dq-execution-card-v100c2{border:1px solid #d8e5f5;border-radius:16px;padding:.9rem;background:linear-gradient(180deg,#fff,#f8fbff)}.execution-card-head-v100c2{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;margin-bottom:.75rem}.execution-card-head-v100c2 h3{margin:.12rem 0 .15rem;font-size:1.05rem}.execution-card-head-v100c2 p{margin:0;color:#64748b;font-size:.84rem}.execution-metrics-v100c2{grid-template-columns:repeat(4,minmax(0,1fr))}.history-grouped-v100c2 .dq-customer-group-v100c2{box-shadow:none}.history-row-v100c2{opacity:.92}@media(max-width:1180px){.dq-execution-grid-v100c2{grid-template-columns:1fr}.dq-quote-row-v100c2{grid-template-columns:1fr 1fr}.dq-row-actions-v100c2{justify-content:flex-start}}@media(max-width:760px){.dq-customer-summary-v100c2,.dq-elevator-head-v100c2{align-items:flex-start;flex-direction:column}.dq-group-pills{justify-content:flex-start}.dq-quote-row-v100c2{grid-template-columns:1fr}.execution-metrics-v100c2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:520px){.execution-metrics-v100c2{grid-template-columns:1fr}}

/* v1.0.0C.3 - Ajuste visual de agrupacion cliente / ascensor */
.dq-grouped-quotes-v100c2{gap:.72rem}
.dq-customer-group-v100c2{border:1px solid #c8d7ec;border-left:4px solid #244c9b;border-radius:16px;background:#fff;box-shadow:0 10px 24px rgba(15,35,75,.055)}
.dq-customer-summary-v100c2{min-height:52px;padding:.68rem .95rem;justify-content:flex-start;background:linear-gradient(180deg,#ffffff,#f6f9fe);border-bottom:1px solid transparent}
.dq-customer-group-v100c2[open]>.dq-customer-summary-v100c2{border-bottom-color:#d8e4f2}
.dq-customer-summary-v100c2:before{flex:0 0 24px;width:24px;height:24px;margin:0 .72rem 0 0;border:1px solid #cfe0f5;border-radius:999px;background:#edf4ff;color:#244c9b;display:inline-flex;align-items:center;justify-content:center;font-size:.78rem;line-height:1}
.dq-customer-summary-v100c2 span:first-child{flex:1 1 auto!important;min-width:0;display:flex!important;flex-direction:row!important;align-items:baseline!important;justify-content:flex-start!important;gap:.58rem!important;text-align:left!important}
.dq-customer-summary-v100c2 span:first-child strong{font-size:1rem;line-height:1.2;color:#0f1f3a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:46vw}
.dq-customer-summary-v100c2 span:first-child small{font-size:.86rem;color:#6b7890;white-space:nowrap}
.dq-customer-summary-v100c2 .dq-group-pills{margin-left:auto}
.dq-group-pills b{border-color:#cfe0f5;background:#f3f7ff;color:#244c9b;padding:.32rem .58rem;box-shadow:0 1px 0 rgba(15,35,75,.035)}
.dq-customer-body-v100c2{padding:.75rem;background:#f3f7fc;border-top:0;gap:.7rem}
.dq-elevator-group-v100c2{border:1px solid #cfdceb;border-radius:14px;background:#fff;overflow:hidden;box-shadow:0 4px 14px rgba(15,35,75,.035)}
.dq-elevator-head-v100c2{list-style:none;cursor:pointer;position:relative;padding:.68rem .78rem .68rem 2.25rem;background:#eef4fb;border-bottom:1px solid transparent;min-height:48px}
.dq-elevator-group-v100c2[open]>.dq-elevator-head-v100c2{border-bottom-color:#d7e2f0;background:#edf5ff}
.dq-elevator-head-v100c2::-webkit-details-marker{display:none}
.dq-elevator-head-v100c2:before{content:"▸";position:absolute;left:.78rem;top:50%;transform:translateY(-50%);width:22px;height:22px;border:1px solid #c8d8ee;border-radius:999px;background:#fff;color:#244c9b;display:flex;align-items:center;justify-content:center;font-weight:900;font-size:.72rem}
.dq-elevator-group-v100c2[open]>.dq-elevator-head-v100c2:before{content:"▾"}
.dq-elevator-head-v100c2>span:first-child{flex:1 1 auto;min-width:0}
.dq-elevator-head-v100c2 strong{font-size:.98rem;color:#10203c}
.dq-elevator-head-v100c2 small{font-size:.83rem;color:#61708a}
.dq-quote-rows-v100c2{background:#fff}
.dq-quote-row-v100c2{grid-template-columns:minmax(220px,1.35fr) minmax(130px,.65fr) minmax(120px,.48fr) auto;padding:.72rem .82rem;border-top:1px solid #dfe8f3;background:#fff}
.dq-quote-row-v100c2:hover{background:#f6faff}
.dq-quote-row-v100c2 strong{font-size:.95rem;color:#0f1f3a}
.dq-quote-row-v100c2 small{font-size:.82rem;color:#6b7890}
.dq-execution-grid-v100c2{padding:.75rem;background:#fff}
.dq-execution-card-v100c2{border-color:#cfdceb;background:linear-gradient(180deg,#ffffff,#f7fbff);box-shadow:0 6px 18px rgba(15,35,75,.04)}
.execution-grouped-v100c2 .dq-customer-group-v100c2{border-color:#bddfcf;border-left-color:#059669}
.execution-grouped-v100c2 .dq-customer-summary-v100c2{background:linear-gradient(180deg,#ffffff,#f3fff8)}
.execution-grouped-v100c2 .dq-customer-summary-v100c2:before{border-color:#bdebd2;background:#ecfdf5;color:#059669}
.execution-grouped-v100c2 .dq-elevator-head-v100c2{background:#f0fbf5}
.history-grouped-v100c2 .dq-customer-group-v100c2{border-left-color:#64748b;background:#fff}
.history-grouped-v100c2 .dq-customer-summary-v100c2:before{color:#64748b;background:#f1f5f9;border-color:#d5dee9}
@media(max-width:900px){.dq-customer-summary-v100c2 span:first-child{flex-direction:column!important;align-items:flex-start!important;gap:.1rem!important}.dq-customer-summary-v100c2 span:first-child strong{max-width:100%}.dq-customer-summary-v100c2{align-items:flex-start;flex-wrap:wrap}.dq-customer-summary-v100c2 .dq-group-pills{margin-left:2.8rem;justify-content:flex-start}}
@media(max-width:760px){.dq-elevator-head-v100c2{align-items:flex-start;flex-direction:column;padding-left:2.25rem}.dq-elevator-head-v100c2 .dq-group-pills{justify-content:flex-start}.dq-quote-row-v100c2{grid-template-columns:1fr}}

/* v1.0.0D - versionado y archivo de presupuestos rechazados */
.rejected-workflow-panel-v100d{margin-top:1rem;border:1px solid #dbe6f5;border-radius:18px;background:linear-gradient(180deg,#ffffff,#f8fbff);padding:1rem;box-shadow:0 8px 24px rgba(15,35,75,.05)}
.rejected-workflow-panel-v100d h3{margin:.25rem 0 .35rem;color:#12213a;font-size:1.05rem}.rejected-workflow-panel-v100d p{margin:.2rem 0 .9rem;color:#607089}.rejected-actions-grid-v100d{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem}.rejected-action-card-v100d{border:1px solid #dbe6f5;border-radius:16px;background:#fff;padding:1rem;display:flex;flex-direction:column;gap:.65rem}.rejected-action-card-v100d strong{font-size:1rem;color:#12213a}.rejected-action-card-v100d small{color:#607089;line-height:1.35}.rejected-action-card-v100d textarea{width:100%;border:1px solid #ccd8ea;border-radius:12px;padding:.7rem;font-family:inherit;resize:vertical}.rejected-action-card-v100d.archive{background:#fffafa;border-color:#f2c8c8}.quote-version-links-v100d{margin-top:1rem;border:1px solid #dbe6f5;border-radius:16px;background:#f8fbff;padding:.85rem;display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.quote-version-links-v100d .tech-eyebrow{width:100%;margin-bottom:.1rem}.quote-version-links-v100d a{border:1px solid #cfe0f7;background:#fff;border-radius:999px;padding:.35rem .65rem;text-decoration:none;color:#244c9b;font-weight:700;font-size:.82rem}.quote-archived-badge-v100d{margin-left:.35rem;background:#f1f5f9!important;color:#475569!important;border:1px solid #cbd5e1!important}.quote-status-rejected{background:#fee2e2;color:#991b1b}.decision-rejected{background:#fee2e2;color:#991b1b}.approval-state.rejected{color:#991b1b}@media(max-width:900px){.rejected-actions-grid-v100d{grid-template-columns:1fr}}

/* v1.0.2A - Normalizacion nucleo tecnico, GPS y reparacion dentro de OT */
.dq-gps-status-card{border:1px solid #d8e5f5;background:linear-gradient(135deg,#ffffff,#f3f8ff);border-radius:18px;padding:.85rem 1rem;display:flex;justify-content:space-between;align-items:center;gap:1rem;box-shadow:0 12px 30px rgba(15,35,75,.06);margin-bottom:.75rem}.dq-gps-status-card strong{display:block;color:#10213f;font-size:.95rem}.dq-gps-status-card span{display:block;color:#66758d;font-size:.82rem;line-height:1.35}.dq-gps-status-card:before{content:"";width:11px;height:11px;border-radius:999px;background:#94a3b8;box-shadow:0 0 0 5px rgba(148,163,184,.14);flex:0 0 auto}.dq-gps-status-card[data-gps-state="granted"]:before{background:#059669;box-shadow:0 0 0 5px rgba(5,150,105,.16)}.dq-gps-status-card[data-gps-state="requesting"]:before,.dq-gps-status-card[data-gps-state="prompt"]:before{background:#d97706;box-shadow:0 0 0 5px rgba(217,119,6,.16)}.dq-gps-status-card[data-gps-state="denied"]:before{background:#dc2626;box-shadow:0 0 0 5px rgba(220,38,38,.14)}.dq-gps-status-card>div{flex:1 1 auto}.dq-gps-status-card .btn{white-space:nowrap}
.tech-repair-core{border:1px solid #d8e5f5;background:linear-gradient(180deg,#ffffff,#f8fbff);box-shadow:0 16px 42px rgba(15,35,75,.07);overflow:hidden}.tech-repair-core-head{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;margin-bottom:1rem}.tech-repair-core-head h2{margin:.15rem 0 .25rem;color:#10213f}.tech-repair-core-head p{margin:0;color:#66758d;max-width:760px}.tech-repair-head-actions{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap;justify-content:flex-end}.tech-repair-stepper{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.7rem;margin:.9rem 0 1rem}.tech-repair-step{border:1px solid #e1eaf6;background:#fff;border-radius:16px;padding:.75rem;display:grid;gap:.15rem;position:relative;min-height:84px}.tech-repair-step strong{width:30px;height:30px;border-radius:999px;background:#e8eef8;color:#244c9b;display:inline-flex;align-items:center;justify-content:center;font-weight:900}.tech-repair-step span{font-weight:900;color:#10213f}.tech-repair-step small{color:#66758d;font-size:.76rem}.tech-repair-step.done{border-color:#bbf7d0;background:#f0fdf4}.tech-repair-step.done strong{background:#059669;color:#fff}.tech-repair-step.active{border-color:#bfdbfe;background:#eff6ff}.tech-repair-step.active strong{background:#244c9b;color:#fff}.tech-repair-step.locked{opacity:.72}.tech-repair-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;margin-bottom:1rem}.tech-repair-kpis>div{border:1px solid #e1eaf6;background:#fff;border-radius:16px;padding:.8rem}.tech-repair-kpis span{display:block;text-transform:uppercase;letter-spacing:.045em;color:#66758d;font-size:.68rem;font-weight:900}.tech-repair-kpis strong{display:block;color:#10213f;font-size:1.05rem;margin:.15rem 0;overflow-wrap:anywhere}.tech-repair-kpis small{color:#66758d}.tech-repair-progress,.tech-repair-item-progress{height:9px;background:#e5edf7;border-radius:999px;overflow:hidden;position:relative}.tech-repair-progress i,.tech-repair-item-progress i{display:block;height:100%;background:linear-gradient(90deg,#244c9b,#059669);border-radius:inherit}.tech-repair-body-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(280px,.7fr);gap:1rem}.tech-repair-items-panel,.tech-repair-side-panel{display:grid;gap:.85rem}.tech-repair-subhead{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.65rem}.tech-repair-subhead h3{margin:0;color:#10213f}.tech-repair-subhead span{background:#eef4ff;border:1px solid #d8e4ff;border-radius:999px;color:#244c9b;font-weight:900;padding:.35rem .6rem;font-size:.78rem}.tech-repair-items-list{display:grid;gap:.8rem}.tech-repair-item{border:1px solid #d8e5f5;border-radius:18px;background:#fff;padding:.9rem;box-shadow:0 10px 24px rgba(15,35,75,.04);border-left:5px solid #94a3b8}.tech-repair-item.repair-item-status-completed{border-left-color:#059669}.tech-repair-item.repair-item-status-partial{border-left-color:#d97706}.tech-repair-item.repair-item-status-in_progress{border-left-color:#244c9b}.tech-repair-item.repair-item-status-not_executed,.tech-repair-item.repair-item-status-cancelled{border-left-color:#dc2626}.tech-repair-item-title{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}.tech-repair-item-title strong{display:block;color:#10213f}.tech-repair-item-title p{margin:.25rem 0 0;color:#66758d}.tech-repair-item-progress{height:10px;margin:.75rem 0}.tech-repair-item-progress span{position:absolute;right:.45rem;top:50%;transform:translateY(-50%);font-size:.68rem;font-weight:900;color:#10213f}.tech-repair-item-grid{display:grid;grid-template-columns:1fr 160px 120px;gap:.7rem;align-items:start}.tech-repair-item-grid label,.tech-repair-visit-fields label{display:grid;gap:.3rem;font-weight:900;color:#10213f;font-size:.82rem}.tech-repair-item-grid input,.tech-repair-item-grid select,.tech-repair-item-grid textarea,.tech-repair-visit-fields textarea{width:100%;border:1px solid #cad7ea;border-radius:12px;padding:.65rem;background:#fff}.tech-repair-notes{grid-column:1 / -1}.tech-repair-visit-fields{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin-top:.85rem}.tech-repair-save-row{justify-content:flex-end;margin-top:.75rem}.tech-repair-context-box{border:1px solid #d8e5f5;border-radius:18px;background:#fff;padding:.9rem;display:grid;gap:.65rem}.tech-repair-context-box h3{margin:0;color:#10213f}.tech-repair-context-box div:not(.tech-repair-visit-mini){border-top:1px solid #eef3f8;padding-top:.55rem}.tech-repair-context-box span{display:block;color:#66758d;font-size:.72rem;font-weight:900;text-transform:uppercase;letter-spacing:.045em}.tech-repair-context-box strong{color:#10213f;overflow-wrap:anywhere}.tech-repair-visit-mini{border-top:1px solid #eef3f8;padding-top:.55rem;display:grid;gap:.15rem}.tech-repair-visit-mini small{color:#66758d}.tech-repair-alert{margin:.75rem 0}.dq-automation-source-form{margin-bottom:1rem}.forms-automation-transition{border:1px solid #d8e5f5;background:#f8fbff;border-radius:16px;padding:.85rem;margin:.75rem 0}
@media(max-width:980px){.tech-repair-core-head,.tech-repair-item-title{display:grid}.tech-repair-stepper,.tech-repair-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.tech-repair-body-grid{grid-template-columns:1fr}.tech-repair-item-grid{grid-template-columns:1fr 1fr}.tech-repair-visit-fields{grid-template-columns:1fr}.tech-repair-head-actions{justify-content:flex-start}}
@media(max-width:640px){.dq-gps-status-card{align-items:flex-start;padding:.75rem;gap:.7rem}.dq-gps-status-card .btn{padding:.55rem .65rem}.tech-repair-core{padding:.8rem!important}.tech-repair-stepper,.tech-repair-kpis{grid-template-columns:1fr}.tech-repair-step{min-height:0}.tech-repair-item{border-radius:16px;padding:.75rem}.tech-repair-item-grid{grid-template-columns:1fr}.tech-repair-save-row .btn,.tech-repair-head-actions .btn{width:100%;justify-content:center}}

/* =========================================================
   DataQuest Lift v1.0.2B - Sistema visual base
   Objetivo: unificar contraste, tarjetas, botones, badges,
   formularios, tablas y estructura visual sin reescribir módulos.
   ========================================================= */
:root {
    --dq-bg: #f3f6fa;
    --dq-surface: #ffffff;
    --dq-surface-soft: #f8fbff;
    --dq-surface-blue: #eef5ff;
    --dq-ink: #10213f;
    --dq-ink-2: #23395d;
    --dq-muted: #66758d;
    --dq-muted-2: #8793a8;
    --dq-border: #d8e5f5;
    --dq-border-strong: #c7d6ea;
    --dq-primary: #244c9b;
    --dq-primary-dark: #173a78;
    --dq-primary-soft: #e9f2ff;
    --dq-success: #059669;
    --dq-success-soft: #ecfdf5;
    --dq-warning: #d97706;
    --dq-warning-soft: #fff7ed;
    --dq-danger: #dc2626;
    --dq-danger-soft: #fef2f2;
    --dq-orange: #f97316;
    --dq-violet: #7c3aed;
    --dq-radius-sm: 10px;
    --dq-radius: 14px;
    --dq-radius-lg: 18px;
    --dq-radius-xl: 24px;
    --dq-shadow-xs: 0 1px 2px rgba(15, 35, 75, .05);
    --dq-shadow-sm: 0 8px 24px rgba(15, 35, 75, .06);
    --dq-shadow-md: 0 16px 42px rgba(15, 35, 75, .08);
    --dq-focus: 0 0 0 4px rgba(36, 76, 155, .16);

    /* compatibilidad con variables históricas */
    --bg: var(--dq-bg);
    --panel: var(--dq-surface);
    --ink: var(--dq-ink);
    --muted: var(--dq-muted);
    --line: var(--dq-border);
    --primary: var(--dq-primary);
    --primary-dark: var(--dq-primary-dark);
    --danger: var(--dq-danger);
    --success: var(--dq-success);
    --radius: var(--dq-radius-lg);
    --shadow: var(--dq-shadow-sm);
}
body.dq-app-v102b {
    background:
        radial-gradient(circle at top right, rgba(36, 76, 155, .065), transparent 34rem),
        linear-gradient(180deg, #f7f9fd 0%, var(--dq-bg) 42%, #eef3f9 100%);
    color: var(--dq-ink);
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}
body.dq-app-v102b .main { padding: 28px 32px; }
body.dq-app-v102b .content { gap: 18px; }
body.dq-app-v102b .topbar {
    min-height: 58px;
    margin-bottom: 18px;
    padding-bottom: 8px;
    border-bottom: 1px solid rgba(216, 229, 245, .75);
}
body.dq-app-v102b .topbar h1 { color: var(--dq-ink); letter-spacing: -.02em; }
body.dq-app-v102b .topbar p { color: var(--dq-muted); font-weight: 600; }
body.dq-app-v102b .sidebar {
    background:
        radial-gradient(circle at top left, rgba(53, 163, 255, .18), transparent 15rem),
        linear-gradient(180deg, #10213f 0%, #0d1a30 100%);
    border-right: 1px solid rgba(255,255,255,.08);
    box-shadow: 18px 0 50px rgba(15, 35, 75, .08);
}
body.dq-app-v102b .brand-mark {
    background: linear-gradient(135deg, #4aa3ff 0%, #244c9b 62%, #173a78 100%);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.28), 0 12px 26px rgba(0,0,0,.18);
}
body.dq-app-v102b .sidebar nav a,
body.dq-app-v102b .dq-nav-module > summary {
    border: 1px solid transparent;
    transition: background .16s ease, color .16s ease, border-color .16s ease, transform .16s ease;
}
body.dq-app-v102b .sidebar nav a:hover,
body.dq-app-v102b .dq-nav-module > summary:hover {
    transform: translateX(2px);
    background: rgba(255,255,255,.08);
    border-color: rgba(255,255,255,.08);
}
body.dq-app-v102b .sidebar nav a.active,
body.dq-app-v102b .dq-nav-module[open] > summary {
    background: rgba(53, 163, 255, .16);
    color: #fff;
    border-color: rgba(147,197,253,.22);
    box-shadow: inset 3px 0 0 #60a5fa;
}
body.dq-app-v102b .card,
body.dq-app-v102b .login-card,
body.dq-app-v102b .qr-card,
body.dq-app-v102b .dq-card,
body.dq-app-v102b .dq-collapse-card,
body.dq-app-v102b .quote-document-card,
body.dq-app-v102b .automation-table-card,
body.dq-app-v102b .automation-editor-modern,
body.dq-app-v102b .automation-kpi-card,
body.dq-app-v102b .dq-customer-group-v100c2,
body.dq-app-v102b .dq-elevator-group-v100c2,
body.dq-app-v102b .tech-repair-core {
    border-color: var(--dq-border);
    border-radius: var(--dq-radius-lg);
    background: linear-gradient(180deg, rgba(255,255,255,.98), rgba(252,254,255,.96));
    box-shadow: var(--dq-shadow-sm);
}
body.dq-app-v102b .card:hover,
body.dq-app-v102b .dq-customer-group-v100c2:hover,
body.dq-app-v102b .dq-elevator-group-v100c2:hover {
    border-color: var(--dq-border-strong);
}
body.dq-app-v102b input,
body.dq-app-v102b select,
body.dq-app-v102b textarea {
    border-color: #cfdced;
    background: #fff;
    color: var(--dq-ink);
    transition: border-color .16s ease, box-shadow .16s ease, background .16s ease;
}
body.dq-app-v102b input:focus,
body.dq-app-v102b select:focus,
body.dq-app-v102b textarea:focus {
    outline: none;
    border-color: rgba(36, 76, 155, .72);
    box-shadow: var(--dq-focus);
}
body.dq-app-v102b label,
body.dq-app-v102b .form-field span {
    color: var(--dq-ink-2);
}
body.dq-app-v102b .btn,
body.dq-app-v102b button.btn,
body.dq-app-v102b a.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 40px;
    border-radius: 12px;
    border: 1px solid transparent;
    font-weight: 850;
    line-height: 1;
    transition: transform .14s ease, box-shadow .14s ease, background .14s ease, border-color .14s ease;
}
body.dq-app-v102b .btn:hover { transform: translateY(-1px); }
body.dq-app-v102b .btn.primary {
    background: linear-gradient(180deg, #2d5bb6, var(--dq-primary));
    color: #fff;
    box-shadow: 0 10px 22px rgba(36,76,155,.20);
}
body.dq-app-v102b .btn.primary:hover { background: linear-gradient(180deg, #244c9b, var(--dq-primary-dark)); }
body.dq-app-v102b .btn.secondary {
    background: #eef3f9;
    color: var(--dq-ink);
    border-color: #dbe5f2;
}
body.dq-app-v102b .btn.secondary:hover { background: #e6eef8; border-color: #c8d8ea; }
body.dq-app-v102b .btn.danger,
body.dq-app-v102b button.danger {
    background: var(--dq-danger);
    color: #fff;
    border-color: var(--dq-danger);
}
body.dq-app-v102b .btn-compact { min-height: 34px; padding: 8px 11px; font-size: 12px; }
body.dq-app-v102b table { border-collapse: separate; border-spacing: 0; }
body.dq-app-v102b th {
    color: var(--dq-muted);
    background: #f8fbff;
    border-bottom-color: var(--dq-border);
}
body.dq-app-v102b td { border-bottom-color: #e7eef8; }
body.dq-app-v102b tr:hover td { background: #f9fcff; }
body.dq-app-v102b .badge,
body.dq-app-v102b .dq-status-pill,
body.dq-app-v102b .automation-state,
body.dq-app-v102b .quote-status-draft,
body.dq-app-v102b .quote-status-preparation,
body.dq-app-v102b .quote-status-closed,
body.dq-app-v102b .quote-status-sent,
body.dq-app-v102b .quote-status-approved_by_customer,
body.dq-app-v102b .quote-status-converted_to_repair,
body.dq-app-v102b .quote-status-rejected {
    border-radius: 999px;
    border: 1px solid transparent;
    font-weight: 900;
    letter-spacing: .01em;
}
body.dq-app-v102b .status-pending,
body.dq-app-v102b .status-draft,
body.dq-app-v102b .quote-status-draft,
body.dq-app-v102b .quote-status-preparation {
    background: var(--dq-warning-soft) !important;
    color: #9a3412 !important;
    border-color: #fed7aa !important;
}
body.dq-app-v102b .status-in_progress,
body.dq-app-v102b .status-assigned,
body.dq-app-v102b .status-sent,
body.dq-app-v102b .quote-status-sent {
    background: var(--dq-primary-soft) !important;
    color: #1d4ed8 !important;
    border-color: #bfdbfe !important;
}
body.dq-app-v102b .status-closed,
body.dq-app-v102b .status-approved,
body.dq-app-v102b .quote-status-approved_by_customer,
body.dq-app-v102b .quote-status-converted_to_repair,
body.dq-app-v102b .automation-state.active,
body.dq-app-v102b .dq-status-pill.is-on {
    background: var(--dq-success-soft) !important;
    color: #047857 !important;
    border-color: #bbf7d0 !important;
}
body.dq-app-v102b .status-rejected,
body.dq-app-v102b .status-cancelled,
body.dq-app-v102b .status-critical,
body.dq-app-v102b .quote-status-rejected,
body.dq-app-v102b .automation-state.error,
body.dq-app-v102b .dq-status-pill.is-error {
    background: var(--dq-danger-soft) !important;
    color: #b91c1c !important;
    border-color: #fecaca !important;
}
body.dq-app-v102b .alert {
    border-radius: var(--dq-radius);
    border: 1px solid var(--dq-border);
    box-shadow: var(--dq-shadow-xs);
}
body.dq-app-v102b .alert.info { background: #eff6ff; color: #1e3a8a; border-color: #bfdbfe; }
body.dq-app-v102b .alert.success { background: var(--dq-success-soft); color: #047857; border-color: #bbf7d0; }
body.dq-app-v102b .alert.danger { background: var(--dq-danger-soft); color: #b91c1c; border-color: #fecaca; }
body.dq-app-v102b details.card > summary,
body.dq-app-v102b .dq-collapse-summary,
body.dq-app-v102b .dq-customer-summary-v100c2,
body.dq-app-v102b .dq-elevator-head-v100c2 {
    border-radius: inherit;
}
body.dq-app-v102b .dq-customer-summary-v100c2,
body.dq-app-v102b .dq-elevator-head-v100c2 {
    background: linear-gradient(180deg, #ffffff, #f7fbff);
}
body.dq-app-v102b .dq-group-pills b {
    border-color: #d8e5f5;
    background: #f4f8ff;
    color: var(--dq-primary);
}
body.dq-app-v102b .dq-quote-row-v100c2 { border-color: #e7eef8; }
body.dq-app-v102b .dq-quote-row-v100c2:hover { background: #f7fbff; }
body.dq-app-v102b .section-title,
body.dq-app-v102b .dq-table-toolbar,
body.dq-app-v102b .automation-hero,
body.dq-app-v102b .repairs-budget-head-v100c,
body.dq-app-v102b .tech-repair-core-head {
    border-bottom: 1px solid rgba(216,229,245,.8);
    padding-bottom: 10px;
}
body.dq-app-v102b .dq-kpi-card,
body.dq-app-v102b .automation-kpi-card,
body.dq-app-v102b .tech-repair-kpis > div,
body.dq-app-v102b .metric,
body.dq-app-v102b .detail-grid div {
    border: 1px solid var(--dq-border);
    background: linear-gradient(180deg,#fff,#f8fbff);
    border-radius: var(--dq-radius-lg);
    box-shadow: var(--dq-shadow-xs);
}
body.dq-app-v102b .tech-user .sidebar,
body.dq-app-v102b.dq-mode-tech .sidebar {
    background: linear-gradient(180deg, #0f213d 0%, #091629 100%);
}
body.dq-app-v102b.dq-mode-tech .content { gap: 14px; }
body.dq-app-v102b.dq-mode-tech .card,
body.dq-app-v102b.dq-mode-tech .tech-repair-core,
body.dq-app-v102b.dq-mode-tech .dq-gps-status-card {
    border-radius: 20px;
    box-shadow: 0 14px 34px rgba(15, 35, 75, .08);
}
body.dq-app-v102b.dq-mode-tech .btn.primary {
    min-height: 44px;
    border-radius: 14px;
}
body.dq-app-v102b.dq-mode-tech .tech-bottom-nav {
    border-top: 1px solid rgba(216,229,245,.95);
    box-shadow: 0 -16px 36px rgba(15,35,75,.12);
}
body.dq-app-v102b .dq-page-shell { display: grid; gap: 18px; }
body.dq-app-v102b .dq-page-hero {
    display: flex;
    justify-content: space-between;
    gap: 18px;
    align-items: flex-start;
    padding: 18px 20px;
    border: 1px solid var(--dq-border);
    border-radius: var(--dq-radius-xl);
    background: linear-gradient(135deg,#ffffff 0%,#f5f9ff 100%);
    box-shadow: var(--dq-shadow-sm);
}
body.dq-app-v102b .dq-page-hero h1,
body.dq-app-v102b .dq-page-hero h2 { margin: 0 0 6px; letter-spacing: -.02em; }
body.dq-app-v102b .dq-page-hero p { margin: 0; color: var(--dq-muted); max-width: 920px; }
body.dq-app-v102b .dq-actionbar { display:flex; flex-wrap:wrap; gap:8px; align-items:center; justify-content:flex-end; }
body.dq-app-v102b .dq-grid-2 { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
body.dq-app-v102b .dq-grid-3 { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
body.dq-app-v102b .dq-grid-4 { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; }
body.dq-app-v102b .dq-soft-panel {
    border: 1px solid var(--dq-border);
    border-radius: var(--dq-radius-lg);
    background: var(--dq-surface-soft);
    padding: 14px;
}
body.dq-app-v102b .dq-empty-state {
    border: 1px dashed var(--dq-border-strong);
    border-radius: var(--dq-radius-lg);
    background: #f8fbff;
    color: var(--dq-muted);
    padding: 18px;
}
body.dq-app-v102b .dq-list-clean { display:grid; gap:10px; }
body.dq-app-v102b .dq-list-row {
    border: 1px solid var(--dq-border);
    border-radius: var(--dq-radius);
    background: #fff;
    padding: 12px 14px;
}
body.dq-app-v102b .right { text-align: right; }
@media (max-width: 1100px) {
    body.dq-app-v102b .main { padding: 22px; }
    body.dq-app-v102b .dq-grid-4 { grid-template-columns: repeat(2,minmax(0,1fr)); }
    body.dq-app-v102b .dq-grid-3 { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 760px) {
    body.dq-app-v102b .main { padding: 14px 12px 84px; }
    body.dq-app-v102b .topbar { display: none; }
    body.dq-app-v102b.dq-mode-admin .topbar { display: flex; }
    body.dq-app-v102b .content { gap: 12px; }
    body.dq-app-v102b .card,
    body.dq-app-v102b .dq-card,
    body.dq-app-v102b .quote-document-card,
    body.dq-app-v102b .automation-table-card,
    body.dq-app-v102b .automation-editor-modern { padding: 14px; border-radius: 18px; }
    body.dq-app-v102b .dq-page-hero { display:grid; padding:14px; }
    body.dq-app-v102b .dq-actionbar { justify-content: stretch; }
    body.dq-app-v102b .dq-actionbar .btn { flex: 1 1 100%; }
    body.dq-app-v102b .dq-grid-2,
    body.dq-app-v102b .dq-grid-3,
    body.dq-app-v102b .dq-grid-4 { grid-template-columns: 1fr; }
    body.dq-app-v102b table { font-size: 13px; }
}

/* v1.0.2C - Normalizacion especifica de app tecnica y OT de reparacion */
body.dq-app-v102c.dq-mode-tech {
    --tech-accent: #244c9b;
    --tech-accent-soft: #eaf1ff;
    --tech-repair: #f97316;
    --tech-repair-soft: #fff7ed;
    --tech-emergency: #dc2626;
    --tech-maintenance: #2563eb;
    --tech-diagnosis: #7c3aed;
}
body.dq-app-v102c.dq-mode-tech .main { background: linear-gradient(180deg,#f2f6fb 0%,#edf3f9 100%); }
body.dq-app-v102c .tech-home-hero-v102c {
    display: grid;
    grid-template-columns: minmax(0,1fr) auto;
    gap: 18px;
    align-items: center;
    padding: 20px;
    border: 1px solid #d6e4f5;
    background: radial-gradient(circle at 0 0, rgba(36,76,155,.12), transparent 36%), linear-gradient(135deg,#ffffff 0%,#f7fbff 100%);
    overflow: hidden;
}
body.dq-app-v102c .tech-home-copy-v102c h2 { margin: 3px 0 6px; font-size: clamp(24px, 4vw, 34px); letter-spacing: -.03em; }
body.dq-app-v102c .tech-home-copy-v102c p { margin: 0; max-width: 720px; color: #66758d; }
body.dq-app-v102c .tech-home-actions-v102c { display: flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
body.dq-app-v102c .tech-home-status-row-v102c { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 12px; }
body.dq-app-v102c .tech-status-chip-v102c {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 6px 10px;
    border-radius: 999px;
    border: 1px solid #d8e5f5;
    background: #f8fbff;
    color: #244c9b;
    font-size: 12px;
    font-weight: 900;
}
body.dq-app-v102c .tech-status-chip-v102c.is-success { background: #ecfdf5; border-color: #bbf7d0; color: #047857; }
body.dq-app-v102c .tech-status-chip-v102c.is-warning { background: #fff7ed; border-color: #fed7aa; color: #c2410c; }
body.dq-app-v102c .tech-status-chip-v102c.is-info { background: #eff6ff; border-color: #bfdbfe; color: #1d4ed8; }
body.dq-app-v102c .tech-quick-grid-v102c .tech-quick-card { min-height: 104px; align-items: flex-start; padding: 16px; }
body.dq-app-v102c .tech-quick-grid-v102c .tech-quick-card span { font-size: 30px; }
body.dq-app-v102c .tech-quick-grid-v102c .tech-quick-card small { color: #66758d; font-size: 12px; }
body.dq-app-v102c .tech-priority-panel-v102c { border-left: 4px solid var(--tech-accent); }
body.dq-app-v102c .tech-emergency-section.tech-priority-panel-v102c { border-left-color: var(--tech-emergency); }
body.dq-app-v102c .tech-module-grid-v102c { align-items: start; }
body.dq-app-v102c .tech-location-card-v102c { border-left: 4px solid #059669; }
body.dq-app-v102c .dq-gps-status-card {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    border: 1px solid #cfe0f5;
    border-radius: 18px;
    background: linear-gradient(135deg,#ffffff,#f5f9ff);
    box-shadow: 0 12px 32px rgba(15,35,75,.08);
    padding: 12px 14px;
}
body.dq-app-v102c .dq-gps-status-card strong { display: block; color: #10213f; }
body.dq-app-v102c .dq-gps-status-card span { color: #66758d; font-size: 13px; }
body.dq-app-v102c .dq-gps-status-card[data-gps-state="granted"] { border-color: #bbf7d0; background: #f0fdf4; }
body.dq-app-v102c .dq-gps-status-card[data-gps-state="denied"] { border-color: #fecaca; background: #fef2f2; }
body.dq-app-v102c .dq-gps-status-card[data-gps-state="requesting"] { border-color: #bfdbfe; background: #eff6ff; }

body.dq-app-v102c .tech-tabs-v102c {
    display: grid;
    grid-template-columns: repeat(4,minmax(0,1fr));
    gap: 8px;
    margin: 0 0 10px;
}
body.dq-app-v102c .tech-tabs-v102c a {
    display: grid;
    gap: 2px;
    text-decoration: none;
    color: #10213f;
    border: 1px solid #d8e5f5;
    border-radius: 16px;
    background: #fff;
    padding: 11px 12px;
    box-shadow: 0 8px 20px rgba(15,35,75,.04);
}
body.dq-app-v102c .tech-tabs-v102c a small { color: #66758d; }
body.dq-app-v102c .tech-tabs-v102c a.active { background: #244c9b; border-color: #244c9b; color: #fff; box-shadow: 0 12px 28px rgba(36,76,155,.22); }
body.dq-app-v102c .tech-tabs-v102c a.active small { color: rgba(255,255,255,.82); }
body.dq-app-v102c .tech-orders-list-card-v102c { display: grid; gap: 12px; }

body.dq-app-v102c .tech-order-card-v102c {
    display: grid;
    grid-template-columns: 6px minmax(0,1fr);
    padding: 0 !important;
    overflow: hidden;
    border: 1px solid #d7e4f5;
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 12px 28px rgba(15,35,75,.06);
}
body.dq-app-v102c .tech-order-accent-v102c { background: #244c9b; }
body.dq-app-v102c .tech-order-card-v102c.tech-type-repair .tech-order-accent-v102c { background: var(--tech-repair); }
body.dq-app-v102c .tech-order-card-v102c.tech-type-emergency .tech-order-accent-v102c { background: var(--tech-emergency); }
body.dq-app-v102c .tech-order-card-v102c.tech-type-maintenance .tech-order-accent-v102c { background: var(--tech-maintenance); }
body.dq-app-v102c .tech-order-card-v102c.tech-type-diagnosis .tech-order-accent-v102c { background: var(--tech-diagnosis); }
body.dq-app-v102c .tech-order-main-v102c { padding: 14px; display: grid; gap: 12px; }
body.dq-app-v102c .tech-order-type-v102c { display: flex; gap: 10px; align-items: center; }
body.dq-app-v102c .tech-order-icon-v102c { width: 38px; height: 38px; display: inline-flex; align-items: center; justify-content: center; border-radius: 14px; background: #eef4ff; font-size: 18px; }
body.dq-app-v102c .tech-type-repair .tech-order-icon-v102c { background: #fff7ed; }
body.dq-app-v102c .tech-type-emergency .tech-order-icon-v102c { background: #fef2f2; }
body.dq-app-v102c .tech-card-meta-v102c { gap: 6px; }
body.dq-app-v102c .tech-card-meta-v102c span { background: #f6f9fd; border: 1px solid #e1eaf6; border-radius: 999px; padding: 5px 8px; }
body.dq-app-v102c .tech-assigned-badge-v102c { background: #eef4ff; color: #244c9b; border-color: #d8e5f5; }

body.dq-app-v102c .tech-command-strip-v102c {
    display: flex;
    gap: 8px;
    overflow-x: auto;
    padding: 4px 2px 6px;
    margin-bottom: 2px;
    scrollbar-width: none;
}
body.dq-app-v102c .tech-command-strip-v102c::-webkit-scrollbar { display: none; }
body.dq-app-v102c .tech-command-strip-v102c a {
    white-space: nowrap;
    text-decoration: none;
    border: 1px solid #d8e5f5;
    border-radius: 999px;
    background: #fff;
    color: #244c9b;
    font-weight: 900;
    font-size: 13px;
    padding: 9px 12px;
    box-shadow: 0 8px 18px rgba(15,35,75,.05);
}
body.dq-app-v102c .tech-order-detail-v102c { border-left: 4px solid #244c9b; }
body.dq-app-v102c .tech-order-detail-v102c .workorder-summary-grid { grid-template-columns: repeat(4,minmax(0,1fr)); }
body.dq-app-v102c .tech-order-detail-v102c .workorder-time-panel { background: #f8fbff; border-radius: 18px; border: 1px solid #d8e5f5; }
body.dq-app-v102c .tech-ot-actions .btn { min-width: 148px; }

body.dq-app-v102c .tech-repair-core-v102c { border-left: 4px solid var(--tech-repair); }
body.dq-app-v102c .tech-repair-core-head-v102c { align-items: center; }
body.dq-app-v102c .tech-repair-command-grid-v102c {
    display: grid;
    grid-template-columns: repeat(4,minmax(0,1fr));
    gap: 10px;
    margin: 12px 0;
}
body.dq-app-v102c .tech-repair-command-grid-v102c a {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 2px 10px;
    align-items: center;
    text-decoration: none;
    padding: 12px;
    border-radius: 16px;
    border: 1px solid #d8e5f5;
    background: #fff;
    color: #10213f;
}
body.dq-app-v102c .tech-repair-command-grid-v102c a strong {
    grid-row: span 2;
    width: 34px;
    height: 34px;
    border-radius: 999px;
    background: #fff7ed;
    color: #c2410c;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
body.dq-app-v102c .tech-repair-command-grid-v102c a span { font-weight: 950; }
body.dq-app-v102c .tech-repair-command-grid-v102c a small { color: #66758d; }
body.dq-app-v102c .tech-repair-stepper-v102c .tech-repair-step { min-height: 74px; }
body.dq-app-v102c .tech-repair-kpis-v102c > div { min-height: 92px; }
body.dq-app-v102c .tech-repair-body-grid-v102c { align-items: start; }
body.dq-app-v102c .tech-repair-item { padding: 0; overflow: hidden; }
body.dq-app-v102c .tech-repair-item-summary-v102c {
    cursor: pointer;
    list-style: none;
    display: flex;
    justify-content: space-between;
    gap: 10px;
    align-items: center;
    padding: 14px;
}
body.dq-app-v102c .tech-repair-item-summary-v102c::-webkit-details-marker { display: none; }
body.dq-app-v102c .tech-repair-item-summary-v102c strong { color: #10213f; display: block; }
body.dq-app-v102c .tech-repair-item-summary-v102c small { color: #66758d; }
body.dq-app-v102c .tech-repair-item-content-v102c { padding: 0 14px 14px; border-top: 1px solid #edf3f8; }
body.dq-app-v102c .repair-state-closed { background: #ecfdf5; color: #047857; border-color: #bbf7d0; }
body.dq-app-v102c .repair-state-in_progress { background: #eff6ff; color: #1d4ed8; border-color: #bfdbfe; }
body.dq-app-v102c .repair-state-planned { background: #fff7ed; color: #c2410c; border-color: #fed7aa; }

@media (max-width: 980px) {
    body.dq-app-v102c .tech-home-hero-v102c { grid-template-columns: 1fr; }
    body.dq-app-v102c .tech-home-actions-v102c { justify-content: stretch; }
    body.dq-app-v102c .tech-home-actions-v102c .btn { flex: 1 1 180px; }
    body.dq-app-v102c .tech-order-detail-v102c .workorder-summary-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    body.dq-app-v102c .tech-repair-command-grid-v102c { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 640px) {
    body.dq-app-v102c .tech-home-hero-v102c { padding: 16px; border-radius: 20px; }
    body.dq-app-v102c .tech-home-actions-v102c { display: grid; grid-template-columns: 1fr; }
    body.dq-app-v102c .tech-quick-grid-v102c { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
    body.dq-app-v102c .tech-quick-grid-v102c .tech-quick-card { min-height: 94px; padding: 12px; }
    body.dq-app-v102c .tech-tabs-v102c { grid-template-columns: repeat(2,minmax(0,1fr)); }
    body.dq-app-v102c .tech-order-main-v102c { padding: 12px; }
    body.dq-app-v102c .tech-order-actions { display: grid; gap: 8px; }
    body.dq-app-v102c .tech-order-actions .btn { width: 100%; }
    body.dq-app-v102c .tech-order-detail-v102c .workorder-summary-grid { grid-template-columns: 1fr; }
    body.dq-app-v102c .tech-command-strip-v102c { position: sticky; top: 0; z-index: 5; background: rgba(243,246,250,.92); backdrop-filter: blur(8px); }
    body.dq-app-v102c .tech-repair-command-grid-v102c { grid-template-columns: 1fr; }
    body.dq-app-v102c .tech-repair-core-head-v102c { display: grid; }
    body.dq-app-v102c .tech-repair-head-actions { justify-content: stretch; }
    body.dq-app-v102c .tech-repair-head-actions .btn { width: 100%; }
}

/* v1.0.2D - Optimización móvil técnica y formularios compactos */
.dq-app-v102d .tech-home-hero-v102d{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(290px,.9fr);gap:1rem;align-items:stretch;padding:1rem 1.05rem;border:1px solid #d8e5f5;background:linear-gradient(135deg,#ffffff 0%,#f7fbff 58%,#eef6ff 100%);box-shadow:0 12px 32px rgba(16,33,63,.07)}
.dq-app-v102d .tech-home-copy-v102d h2{margin:.2rem 0 .2rem;font-size:1.55rem;letter-spacing:-.02em;color:#10213f}.dq-app-v102d .tech-home-copy-v102d p{margin:0;color:#61718b;max-width:48rem;line-height:1.35}.dq-app-v102d .tech-gps-inline-v102d{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:.75rem;align-items:center;border:1px solid #cfe0f5;border-radius:18px;background:#fff;padding:.78rem .85rem;box-shadow:0 8px 24px rgba(16,33,63,.055)}
.dq-app-v102d .tech-gps-inline-v102d[data-gps-state="granted"]{border-color:#a7f3d0;background:linear-gradient(135deg,#ecfdf5,#fff)}.dq-app-v102d .tech-gps-inline-v102d[data-gps-state="denied"]{border-color:#fecaca;background:linear-gradient(135deg,#fff1f2,#fff)}.dq-app-v102d .tech-gps-inline-v102d[data-gps-state="requesting"],.dq-app-v102d .tech-gps-inline-v102d[data-gps-state="prompt"]{border-color:#bfdbfe;background:linear-gradient(135deg,#eff6ff,#fff)}.dq-app-v102d .tech-gps-inline-v102d[data-gps-state="warning"]{border-color:#fed7aa;background:linear-gradient(135deg,#fff7ed,#fff)}
.dq-app-v102d .tech-gps-icon-v102d{width:40px;height:40px;border-radius:14px;display:grid;place-items:center;font-weight:900;color:#244c9b;background:#eaf2ff;border:1px solid #d3e3fb}.dq-app-v102d .tech-gps-inline-v102d[data-gps-state="granted"] .tech-gps-icon-v102d{color:#047857;background:#d1fae5;border-color:#a7f3d0}.dq-app-v102d .tech-gps-inline-v102d[data-gps-state="denied"] .tech-gps-icon-v102d{color:#dc2626;background:#fee2e2;border-color:#fecaca}
.dq-app-v102d .tech-gps-copy-v102d{min-width:0}.dq-app-v102d .tech-gps-copy-v102d strong{display:block;color:#10213f;font-size:.92rem}.dq-app-v102d .tech-gps-copy-v102d span{display:block;color:#31435f;font-size:.86rem;line-height:1.25}.dq-app-v102d .tech-gps-copy-v102d small{display:block;color:#6b7890;font-size:.74rem;margin-top:.15rem}.dq-app-v102d .tech-gps-order-v102d{margin:.65rem 0 1rem;padding:.68rem .8rem}.dq-app-v102d .tech-gps-order-v102d .tech-gps-icon-v102d{width:34px;height:34px;border-radius:12px}.dq-app-v102d .tech-gps-order-v102d .tech-gps-copy-v102d small{display:none}
.dq-app-v102d .tech-quick-grid-v102d{grid-template-columns:repeat(4,minmax(0,1fr));gap:.65rem;margin:.85rem 0}.dq-app-v102d .tech-quick-grid-v102d .tech-quick-card{min-height:auto;padding:.78rem .82rem;border-color:#d8e5f5;background:#fff}.dq-app-v102d .tech-quick-grid-v102d .tech-quick-card span{font-size:1.35rem}.dq-app-v102d .tech-quick-grid-v102d .tech-quick-card strong{font-size:.88rem}.dq-app-v102d .tech-quick-grid-v102d .tech-quick-card small{font-size:.72rem}
.dq-app-v102d .tech-priority-panel-v102d,.dq-app-v102d .tech-main-work-panel-v102d{padding:1rem;border-color:#d8e5f5}.dq-app-v102d .tech-secondary-stack-v102d{display:grid;gap:.75rem;margin-top:.85rem}.dq-app-v102d .tech-compact-details-v102d{padding:0;overflow:hidden;border-color:#d8e5f5}.dq-app-v102d .tech-compact-details-v102d summary{cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.85rem .95rem;background:#fff}.dq-app-v102d .tech-compact-details-v102d summary::-webkit-details-marker{display:none}.dq-app-v102d .tech-compact-details-v102d summary:before{content:'▸';color:#244c9b;font-weight:900;margin-right:.2rem}.dq-app-v102d .tech-compact-details-v102d[open] summary:before{content:'▾'}.dq-app-v102d .tech-compact-details-v102d summary>span{display:flex;flex-direction:column;min-width:0;flex:1}.dq-app-v102d .tech-compact-details-v102d summary strong{color:#10213f}.dq-app-v102d .tech-compact-details-v102d summary small{color:#66758d}.dq-app-v102d .tech-compact-details-v102d>.tech-card-list,.dq-app-v102d .tech-compact-details-v102d>.dq-empty-state,.dq-app-v102d .tech-compact-details-v102d>.tech-notification-list{padding:.75rem .95rem;border-top:1px solid #e3ebf6;background:#f8fbff}
.dq-app-v102d .tech-order-card-v102c{border-color:#d6e3f2;background:#fff;box-shadow:0 8px 22px rgba(16,33,63,.055)}.dq-app-v102d .tech-order-card-v102c .btn.primary{min-height:42px;font-weight:900}.dq-app-v102d .tech-type-repair{background:linear-gradient(135deg,#fff,#fff7ed)}.dq-app-v102d .tech-type-emergency{background:linear-gradient(135deg,#fff,#fff1f2)}.dq-app-v102d .tech-type-maintenance{background:linear-gradient(135deg,#fff,#eff6ff)}.dq-app-v102d .tech-order-actions{gap:.45rem}.dq-app-v102d .tech-card-meta-v102c span{border-color:#d8e5f5;background:#f8fbff;color:#31435f}
.dq-app-v102d .tech-command-strip-v102d{top:0;z-index:9;margin-bottom:.55rem;border:1px solid #d8e5f5;background:rgba(255,255,255,.96);backdrop-filter:saturate(1.1) blur(10px)}.dq-app-v102d .tech-command-strip-v102d a{font-weight:850}.dq-app-v102d .tech-operational-milestones-v102d{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.55rem;margin:.85rem 0;border:1px solid #d8e5f5;border-radius:18px;background:#f8fbff;padding:.65rem}.dq-app-v102d .tech-operational-milestones-v102d div{display:grid;grid-template-columns:auto 1fr;gap:.15rem .5rem;align-items:center;border:1px solid #e2ebf6;border-radius:14px;background:#fff;padding:.55rem}.dq-app-v102d .tech-operational-milestones-v102d strong{grid-row:1/3;width:28px;height:28px;border-radius:10px;display:grid;place-items:center;background:#eaf2ff;color:#244c9b;font-size:.78rem}.dq-app-v102d .tech-operational-milestones-v102d span{font-weight:900;color:#10213f;font-size:.82rem}.dq-app-v102d .tech-operational-milestones-v102d small{color:#66758d;font-size:.72rem}.dq-app-v102d .tech-operational-milestones-v102d .done strong{background:#d1fae5;color:#047857}.dq-app-v102d .tech-operational-milestones-v102d .current{border-color:#bfdbfe;background:#eff6ff}.dq-app-v102d .tech-operational-milestones-v102d .locked{opacity:.65}
.dq-app-v102d .workorder-time-panel{display:block}.dq-app-v102d.tech-user .workorder-time-panel{display:none}.dq-app-v102d .runtime-section{border-color:#d8e5f5}.dq-app-v102d .runtime-section summary{padding:.85rem 1rem;background:#f8fbff}.dq-app-v102d .runtime-section[open] summary{border-bottom:1px solid #e2ebf6}.dq-app-v102d .runtime-fields-grid-v102d{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;padding:.85rem 1rem 1rem}.dq-app-v102d .runtime-fields-grid-v102d .runtime-field{margin:0}.dq-app-v102d .runtime-field-full-v102d{grid-column:1/-1}.dq-app-v102d .runtime-field-half-v102d{grid-column:auto}.dq-app-v102d .runtime-field label{font-size:.8rem;color:#273b5b}.dq-app-v102d .runtime-field input,.dq-app-v102d .runtime-field select,.dq-app-v102d .runtime-field textarea{border-color:#d6e3f2;background:#fff}.dq-app-v102d .runtime-field textarea{min-height:90px}.dq-app-v102d .dq-system-runtime-field{background:#f8fbff;border:1px solid #e3ebf6;border-radius:14px;padding:.65rem}.dq-app-v102d .dq-system-runtime-field input[readonly]{background:#fff;color:#31435f}.dq-app-v102d .final-status-section{border-color:#b9d3fb;background:#f8fbff}.dq-app-v102d .sticky-close-actions{position:sticky;bottom:calc(64px + env(safe-area-inset-bottom));background:rgba(255,255,255,.94);backdrop-filter:blur(10px);border:1px solid #d8e5f5;border-radius:18px;padding:.75rem;margin-top:.9rem;box-shadow:0 -8px 22px rgba(16,33,63,.08)}.dq-app-v102d .sticky-close-actions .btn{width:100%;min-height:46px}
@media(max-width:900px){.dq-app-v102d .tech-home-hero-v102d{grid-template-columns:1fr}.dq-app-v102d .tech-quick-grid-v102d{grid-template-columns:repeat(2,minmax(0,1fr))}.dq-app-v102d .tech-operational-milestones-v102d{grid-template-columns:repeat(2,minmax(0,1fr))}.dq-app-v102d .runtime-fields-grid-v102d{grid-template-columns:1fr 1fr}.dq-app-v102d .tech-gps-inline-v102d{grid-template-columns:auto 1fr}.dq-app-v102d .tech-gps-inline-v102d .btn{grid-column:1/-1;width:100%}}
@media(max-width:560px){.dq-app-v102d .tech-home-hero-v102d{padding:.85rem}.dq-app-v102d .tech-home-copy-v102d h2{font-size:1.35rem}.dq-app-v102d .tech-home-copy-v102d p{font-size:.86rem}.dq-app-v102d .tech-quick-grid-v102d{gap:.5rem}.dq-app-v102d .tech-quick-grid-v102d .tech-quick-card{padding:.65rem}.dq-app-v102d .tech-operational-milestones-v102d{grid-template-columns:1fr 1fr;padding:.5rem}.dq-app-v102d .runtime-fields-grid-v102d{grid-template-columns:1fr}.dq-app-v102d .tech-gps-copy-v102d span{font-size:.8rem}.dq-app-v102d .tech-gps-copy-v102d small{font-size:.69rem}.dq-app-v102d .tech-command-strip-v102d{overflow-x:auto;white-space:nowrap}.dq-app-v102d .tech-secondary-stack-v102d{margin-bottom:.75rem}}

/* v1.0.2E - Hotfix persistencia de avance y pulido OT reparación móvil */
.dq-app-v102e.tech-order-page { padding-top: env(safe-area-inset-top); }
.dq-app-v102e .main-content { padding-bottom: calc(96px + env(safe-area-inset-bottom)); }
.dq-app-v102e .tech-command-strip-v102d {
    padding-top: max(10px, env(safe-area-inset-top));
    margin-top: -2px;
    gap: 7px;
    border-radius: 0 0 18px 18px;
    border-top: 0;
    box-shadow: 0 10px 24px rgba(16,33,63,.07);
}
.dq-app-v102e .tech-command-strip-v102d a { padding: 8px 11px; font-size: 12.5px; }
.dq-app-v102e .tech-gps-order-v102d { margin-top: .45rem; }
.dq-app-v102e .tech-repair-core-v102e { border-left-color: #f97316; }
.dq-app-v102e .tech-repair-core-head-v102e { margin-bottom: .75rem; }
.dq-app-v102e .tech-repair-core-head-v102e h2 { font-size: 1.28rem; margin: .12rem 0 .2rem; }
.dq-app-v102e .tech-repair-core-head-v102e p { max-width: 54rem; font-size: .9rem; line-height: 1.35; }
.dq-app-v102e .tech-repair-quick-context-v102e {
    display: grid;
    grid-template-columns: repeat(4,minmax(0,1fr));
    gap: .65rem;
    border: 1px solid #dbe7f4;
    background: linear-gradient(180deg,#ffffff,#f8fbff);
    border-radius: 16px;
    padding: .75rem;
    margin: .7rem 0 .85rem;
}
.dq-app-v102e .tech-repair-quick-context-v102e div { min-width: 0; border-right: 1px solid #edf3f8; padding-right: .65rem; }
.dq-app-v102e .tech-repair-quick-context-v102e div:last-child { border-right: 0; padding-right: 0; }
.dq-app-v102e .tech-repair-quick-context-v102e span { display:block; text-transform:uppercase; letter-spacing:.045em; color:#6b7890; font-size:.66rem; font-weight:900; }
.dq-app-v102e .tech-repair-quick-context-v102e strong { display:block; color:#10213f; font-size:.9rem; overflow-wrap:anywhere; margin-top:.12rem; }
.dq-app-v102e .tech-repair-stepper-v102e { margin: .75rem 0; }
.dq-app-v102e .tech-repair-stepper-v102e .tech-repair-step { min-height: 64px; padding: .6rem; border-radius: 14px; }
.dq-app-v102e .tech-repair-stepper-v102e .tech-repair-step strong { width: 26px; height: 26px; font-size: .78rem; }
.dq-app-v102e .tech-repair-stepper-v102e .tech-repair-step span { font-size: .82rem; }
.dq-app-v102e .tech-repair-stepper-v102e .tech-repair-step small { font-size: .69rem; }
.dq-app-v102e .tech-repair-kpis-v102e { grid-template-columns: repeat(4,minmax(0,1fr)); gap: .6rem; margin-bottom: .85rem; }
.dq-app-v102e .tech-repair-kpis-v102e > div { min-height: 76px; padding: .65rem; border-radius: 14px; }
.dq-app-v102e .tech-repair-kpis-v102e strong { font-size: .98rem; }
.dq-app-v102e .tech-repair-items-panel-v102e { border: 1px solid #d8e5f5; border-radius: 18px; padding: .85rem; background: #fff; box-shadow: 0 10px 28px rgba(16,33,63,.055); }
.dq-app-v102e .tech-repair-subhead-v102e { margin-bottom: .7rem; }
.dq-app-v102e .tech-repair-subhead-v102e h3 { margin: 0 0 .1rem; }
.dq-app-v102e .tech-repair-subhead-v102e p { margin: 0; }
.dq-app-v102e .tech-repair-subhead-v102e > span { white-space: nowrap; }
.dq-app-v102e .tech-repair-items-list-v102e { gap: .6rem; }
.dq-app-v102e .tech-repair-item-v102e { border-radius: 16px; border-left-width: 4px; box-shadow: 0 8px 20px rgba(16,33,63,.045); }
.dq-app-v102e .tech-repair-item-summary-v102e { padding: .78rem .85rem; min-height: 58px; }
.dq-app-v102e .tech-repair-item-summary-v102e::after { content: '›'; color: #244c9b; font-size: 1.35rem; font-weight: 900; transition: transform .16s ease; }
.dq-app-v102e details[open] > .tech-repair-item-summary-v102e::after { transform: rotate(90deg); }
.dq-app-v102e .tech-repair-item-summary-v102e strong { font-size: .98rem; line-height: 1.22; }
.dq-app-v102e .tech-repair-item-summary-v102e small { font-size: .78rem; }
.dq-app-v102e .tech-repair-item-content-v102e { padding: .75rem .85rem .85rem; }
.dq-app-v102e .tech-repair-item-description { margin: 0 0 .65rem; font-size: .86rem; }
.dq-app-v102e .tech-repair-item-grid-v102e { grid-template-columns: minmax(0,1fr) minmax(110px,.55fr) minmax(90px,.45fr); gap: .65rem; }
.dq-app-v102e .tech-repair-item-grid-v102e label { font-size: .78rem; }
.dq-app-v102e .tech-repair-item-grid-v102e input,
.dq-app-v102e .tech-repair-item-grid-v102e select,
.dq-app-v102e .tech-repair-item-grid-v102e textarea { min-height: 42px; border-color: #d6e3f2; }
.dq-app-v102e .tech-repair-item-actions-v102e { display:flex; justify-content:flex-end; margin-top:.7rem; }
.dq-app-v102e .tech-repair-item-actions-v102e .btn { min-height: 38px; }
.dq-app-v102e .tech-repair-visit-box-v102e { margin-top: .75rem; border: 1px solid #d8e5f5; border-radius: 16px; background: #f8fbff; overflow:hidden; }
.dq-app-v102e .tech-repair-visit-box-v102e summary { cursor:pointer; list-style:none; display:flex; justify-content:space-between; gap:.75rem; padding:.78rem .9rem; font-weight:900; color:#10213f; }
.dq-app-v102e .tech-repair-visit-box-v102e summary::-webkit-details-marker { display:none; }
.dq-app-v102e .tech-repair-visit-box-v102e summary:before { content:'▸'; color:#244c9b; margin-right:.3rem; }
.dq-app-v102e .tech-repair-visit-box-v102e[open] summary:before { content:'▾'; }
.dq-app-v102e .tech-repair-visit-fields-v102e { padding: .75rem .9rem .9rem; border-top:1px solid #e3ebf6; }
.dq-app-v102e .tech-repair-save-row-v102e { position: sticky; bottom: calc(70px + env(safe-area-inset-bottom)); z-index: 4; background: rgba(255,255,255,.94); backdrop-filter: blur(8px); border: 1px solid #d8e5f5; border-radius: 16px; padding: .65rem; box-shadow: 0 -8px 24px rgba(16,33,63,.08); }
.dq-app-v102e .tech-repair-save-row-v102e .btn { width: 100%; min-height: 44px; }
.dq-app-v102e .tech-repair-secondary-v102e { margin-top: .85rem; }
.dq-app-v102e .tech-repair-mini-details-v102e { border:1px solid #d8e5f5; border-radius:16px; background:#fff; overflow:hidden; }
.dq-app-v102e .tech-repair-mini-details-v102e summary { cursor:pointer; list-style:none; display:flex; align-items:center; justify-content:space-between; gap:.75rem; padding:.78rem .9rem; }
.dq-app-v102e .tech-repair-mini-details-v102e summary::-webkit-details-marker { display:none; }
.dq-app-v102e .tech-repair-mini-details-v102e summary:before { content:'▸'; color:#244c9b; font-weight:900; margin-right:.35rem; }
.dq-app-v102e .tech-repair-mini-details-v102e[open] summary:before { content:'▾'; }
.dq-app-v102e .tech-repair-mini-details-v102e summary span { font-weight:900; color:#10213f; flex:1; }
.dq-app-v102e .tech-repair-mini-details-v102e summary small { background:#eef4ff; border:1px solid #d8e5f5; border-radius:999px; color:#244c9b; padding:.25rem .55rem; font-weight:900; }
.dq-app-v102e .tech-repair-visits-table-v102e { overflow-x:auto; padding:.7rem; border-top:1px solid #e8eff8; }
.dq-app-v102e .tech-repair-visits-table-v102e table,
.dq-app-v102e .tech-operational-history-table-v102e table { width:100%; border-collapse:collapse; font-size:.82rem; }
.dq-app-v102e .tech-repair-visits-table-v102e th,
.dq-app-v102e .tech-repair-visits-table-v102e td,
.dq-app-v102e .tech-operational-history-table-v102e th,
.dq-app-v102e .tech-operational-history-table-v102e td { border-bottom:1px solid #e8eff8; padding:.48rem .45rem; text-align:left; vertical-align:top; }
.dq-app-v102e .tech-repair-visits-table-v102e th,
.dq-app-v102e .tech-operational-history-table-v102e th { color:#6b7890; text-transform:uppercase; letter-spacing:.045em; font-size:.65rem; }
.dq-app-v102e .tech-history-compact-card-v102e { padding:0; overflow:hidden; }
.dq-app-v102e .tech-history-compact-card-v102e summary { cursor:pointer; list-style:none; display:flex; align-items:center; justify-content:space-between; gap:.75rem; padding:.9rem 1rem; }
.dq-app-v102e .tech-history-compact-card-v102e summary::-webkit-details-marker { display:none; }
.dq-app-v102e .tech-history-compact-card-v102e summary:before { content:'▸'; color:#244c9b; font-weight:900; margin-right:.35rem; }
.dq-app-v102e .tech-history-compact-card-v102e[open] summary:before { content:'▾'; }
.dq-app-v102e .tech-history-compact-card-v102e summary span { font-weight:950; color:#10213f; flex:1; }
.dq-app-v102e .tech-history-compact-card-v102e summary small { color:#66758d; font-weight:800; }
.dq-app-v102e .tech-operational-history-table-v102e { overflow-x:auto; padding:.7rem; border-top:1px solid #e8eff8; }
.dq-app-v102e .tech-history-note-row td { color:#66758d; font-size:.78rem; background:#f8fbff; }
.dq-app-v102e .tech-secondary-grid-v102e { margin-top: .85rem; }
.dq-app-v102e .sticky-close-actions { bottom: calc(74px + env(safe-area-inset-bottom)); }
.dq-app-v102e .mobile-bottom-nav { padding-bottom: max(8px, env(safe-area-inset-bottom)); }
@media(max-width:900px){
  .dq-app-v102e .tech-repair-quick-context-v102e{grid-template-columns:repeat(2,minmax(0,1fr));}
  .dq-app-v102e .tech-repair-kpis-v102e{grid-template-columns:repeat(2,minmax(0,1fr));}
  .dq-app-v102e .tech-repair-item-grid-v102e{grid-template-columns:1fr 1fr;}
  .dq-app-v102e .tech-repair-notes{grid-column:1/-1;}
}
@media(max-width:560px){
  .dq-app-v102e .tech-command-strip-v102d{padding-left:.5rem;padding-right:.5rem;}
  .dq-app-v102e .tech-command-strip-v102d a{padding:7px 10px;font-size:12px;}
  .dq-app-v102e .tech-repair-core-head-v102e{display:grid;gap:.7rem;}
  .dq-app-v102e .tech-repair-head-actions{justify-content:flex-start;}
  .dq-app-v102e .tech-repair-quick-context-v102e{grid-template-columns:1fr 1fr;padding:.65rem;gap:.5rem;}
  .dq-app-v102e .tech-repair-quick-context-v102e div{border-right:0;border-bottom:1px solid #edf3f8;padding:.15rem 0 .45rem;}
  .dq-app-v102e .tech-repair-quick-context-v102e div:nth-last-child(-n+2){border-bottom:0;}
  .dq-app-v102e .tech-repair-stepper-v102e{grid-template-columns:1fr 1fr;gap:.5rem;}
  .dq-app-v102e .tech-repair-kpis-v102e{grid-template-columns:1fr 1fr;gap:.5rem;}
  .dq-app-v102e .tech-repair-items-panel-v102e{padding:.65rem;border-radius:16px;}
  .dq-app-v102e .tech-repair-subhead-v102e{display:grid;gap:.45rem;}
  .dq-app-v102e .tech-repair-subhead-v102e > span{justify-self:start;}
  .dq-app-v102e .tech-repair-item-summary-v102e{padding:.72rem;}
  .dq-app-v102e .tech-repair-item-summary-v102e strong{font-size:.93rem;}
  .dq-app-v102e .tech-repair-item-summary-v102e .badge{font-size:.7rem;padding:.28rem .5rem;}
  .dq-app-v102e .tech-repair-item-grid-v102e{grid-template-columns:1fr;}
  .dq-app-v102e .tech-repair-item-actions-v102e .btn{width:100%;}
  .dq-app-v102e .tech-repair-visit-fields-v102e{grid-template-columns:1fr;}
  .dq-app-v102e .tech-repair-visits-table-v102e table,
  .dq-app-v102e .tech-operational-history-table-v102e table{font-size:.75rem;}
  .dq-app-v102e .tech-repair-visits-table-v102e th,
  .dq-app-v102e .tech-repair-visits-table-v102e td,
  .dq-app-v102e .tech-operational-history-table-v102e th,
  .dq-app-v102e .tech-operational-history-table-v102e td{padding:.4rem .35rem;}
}

/* v1.0.2E1 - Hotfix submit nativo de ítems de reparación */
.dq-app-v102e1 .tech-repair-items-panel-v102e1 {
  position: relative;
}
.dq-app-v102e1 .tech-repair-native-forms-v102e1 {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
}
.dq-app-v102e1 .tech-repair-core-v102e1 .tech-repair-subhead-v102e p {
  max-width: 44rem;
}
.dq-app-v102e1 .tech-repair-item-actions-v102e1 .btn {
  box-shadow: 0 8px 18px rgba(36, 76, 155, .12);
}
.dq-app-v102e1 .tech-repair-native-submit-form-v102e1.is-saving + .tech-repair-items-list-v102e,
.dq-app-v102e1 .tech-repair-native-submit-form-v102e1.is-saving ~ .tech-repair-items-list-v102e {
  opacity: .92;
}
.dq-app-v102e1 [data-dq-repair-submit-button="1"][data-dq-submitting="1"] {
  pointer-events: none;
}
.dq-app-v102e1 .tech-repair-save-row-v102e1 {
  margin-top: .75rem;
}
@media(max-width:560px){
  .dq-app-v102e1 .tech-repair-subhead-v102e p {
    font-size: .78rem;
    line-height: 1.3;
  }
}

/* v1.0.2E2 - Formularios inline reales para guardado de ítems de reparación */
.dq-app-v102e2 .tech-repair-items-panel-v102e2 { scroll-margin-top: calc(88px + env(safe-area-inset-top, 0px)); }
.dq-app-v102e2 .tech-repair-item-v102e2 { overflow: visible; }
.dq-app-v102e2 .tech-repair-inline-item-form-v102e2 { display:block; margin:0; padding:0; }
.dq-app-v102e2 .tech-repair-item-content-v102e2 { padding-top:.75rem; }
.dq-app-v102e2 .tech-repair-item-grid-v102e2 { margin-top:.75rem; }
.dq-app-v102e2 .tech-repair-item-actions-v102e2 { display:flex; justify-content:flex-end; gap:.5rem; padding-top:.8rem; padding-bottom:.35rem; }
.dq-app-v102e2 .tech-repair-item-actions-v102e2 .btn { min-height:44px; border-radius:14px; font-weight:900; }
.dq-app-v102e2 .tech-repair-general-form-v102e2 { display:block; margin-top:.85rem; }
.dq-app-v102e2 .tech-repair-save-row-v102e2 { padding-bottom:calc(1rem + env(safe-area-inset-bottom, 0px)); }
.dq-app-v102e2 [data-dq-repair-submit-form="1"].is-saving { opacity:.82; }
.dq-app-v102e2 [data-dq-repair-submit-button="1"][data-dq-submitting="1"] { pointer-events:none; }
@media(max-width:720px){
  .dq-app-v102e2 .tech-repair-item-actions-v102e2{position:sticky;bottom:calc(74px + env(safe-area-inset-bottom, 0px));background:linear-gradient(180deg,rgba(255,255,255,.72),#fff 38%);padding:.75rem 0 .65rem;z-index:2;}
  .dq-app-v102e2 .tech-repair-item-actions-v102e2 .btn{width:100%;}
}

/* v1.0.2E2 - Submit directo por ítem de reparación */
.dq-app-v102e2 .tech-repair-item-direct-form-v102e2 {
  margin: 0;
}
.dq-app-v102e2 .tech-repair-general-direct-form-v102e2 {
  margin-top: .75rem;
}
.dq-app-v102e2 .tech-repair-item-direct-form-v102e2.is-saving,
.dq-app-v102e2 .tech-repair-general-direct-form-v102e2.is-saving {
  opacity: .92;
}
.dq-app-v102e2 [data-dq-repair-direct-button="1"][data-dq-submitting="1"] {
  pointer-events: none;
  opacity: .82;
}
.dq-app-v102e2 .tech-repair-item-actions-v102e2 {
  margin-top: .8rem;
}
.dq-app-v102e2 .tech-repair-item-actions-v102e2 .btn,
.dq-app-v102e2 .tech-repair-save-row-v102e2 .btn {
  min-height: 44px;
}
@media(max-width:560px){
  .dq-app-v102e2 .tech-repair-item-actions-v102e2 .btn,
  .dq-app-v102e2 .tech-repair-save-row-v102e2 .btn {
    width: 100%;
  }
}


/* v1.0.2E2 - Hotfix final: formularios directos dentro del ítem de reparación */
.dq-app-v102e2 .tech-repair-items-panel-v102e2 { scroll-margin-top: calc(92px + env(safe-area-inset-top, 0px)); }
.dq-app-v102e2 .tech-repair-item-direct-form-v102e2,
.dq-app-v102e2 .tech-repair-general-direct-form-v102e2 { display:block; margin:0; padding:0; }
.dq-app-v102e2 .tech-repair-item-v102e2 { overflow:visible; }
.dq-app-v102e2 .tech-repair-item-v102e2 summary { touch-action:manipulation; }
.dq-app-v102e2 .tech-repair-item-v102e2 .tech-repair-item-content-v102e { padding-top:.75rem; }
.dq-app-v102e2 .tech-repair-item-actions-v102e2 { display:flex; justify-content:flex-end; gap:.5rem; padding-top:.85rem; padding-bottom:.45rem; }
.dq-app-v102e2 .tech-repair-item-actions-v102e2 .btn { min-height:46px; border-radius:14px; font-weight:900; }
.dq-app-v102e2 form[data-dq-repair-direct-form="1"].is-saving { opacity:.82; }
.dq-app-v102e2 [data-dq-repair-direct-button="1"][data-dq-submitting="1"] { pointer-events:none; }
@media(max-width:720px){
  .dq-app-v102e2 .tech-repair-item-actions-v102e2{position:sticky;bottom:calc(76px + env(safe-area-inset-bottom, 0px));background:linear-gradient(180deg,rgba(255,255,255,.62),#fff 42%);padding:.85rem 0 .75rem;z-index:4;}
  .dq-app-v102e2 .tech-repair-item-actions-v102e2 .btn{width:100%;box-shadow:0 10px 24px rgba(36,76,155,.18);}
  .dq-app-v102e2 .tech-repair-save-row-v102e2{padding-bottom:calc(1.5rem + env(safe-area-inset-bottom, 0px));}
}


/* v1.0.2E3 - Corrección profesional de OT reparación técnica */
.dq-app-v102e3 .tech-repair-core-v102e3 {
  border-left: 4px solid #315bb6;
  padding-bottom: 1rem !important;
}
.dq-app-v102e3 .tech-repair-core-head-v102e3 p { max-width: 42rem; }
.dq-app-v102e3 .tech-repair-stepper-v102e,
.dq-app-v102e3 .tech-repair-stepper-v102c {
  display: none !important;
}
.dq-app-v102e3 .tech-repair-kpis-v102e {
  display: none !important;
}
.dq-app-v102e3 .tech-repair-status-strip-v102e3 {
  display: grid;
  gap: .55rem;
  border: 1px solid #d8e5f5;
  background: linear-gradient(135deg, #f8fbff, #ffffff);
  border-radius: 18px;
  padding: .85rem .95rem;
  margin: .85rem 0;
}
.dq-app-v102e3 .tech-repair-status-strip-v102e3 span {
  color: #66758d;
  font-size: .74rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .045em;
}
.dq-app-v102e3 .tech-repair-status-strip-v102e3 strong {
  display: block;
  color: #10213f;
  font-size: .98rem;
  margin-top: .15rem;
}
.dq-app-v102e3 .tech-repair-status-mini-v102e3 {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
}
.dq-app-v102e3 .tech-repair-status-mini-v102e3 span {
  text-transform: none;
  letter-spacing: 0;
  background: #eef4ff;
  border: 1px solid #dbe8fb;
  color: #244c9b;
  border-radius: 999px;
  padding: .25rem .55rem;
}
.dq-app-v102e3 .tech-repair-subhead-v102e3 p {
  margin-bottom: 0;
}
.dq-app-v102e3 .tech-repair-item-v102e3 {
  overflow: visible !important;
  border-radius: 18px;
}
.dq-app-v102e3 .tech-repair-item-direct-form-v102e3,
.dq-app-v102e3 .tech-repair-general-direct-form-v102e3 {
  display: block;
  margin: 0;
  padding: 0;
}
.dq-app-v102e3 .tech-repair-item-content-v102e3 {
  padding-top: .85rem;
}
.dq-app-v102e3 .tech-repair-item-grid-v102e3 {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .75rem;
  margin-top: .8rem;
}
.dq-app-v102e3 .tech-repair-item-grid-v102e3 label {
  display: grid;
  gap: .35rem;
  color: #1e355b;
  font-weight: 900;
}
.dq-app-v102e3 .tech-repair-item-grid-v102e3 select,
.dq-app-v102e3 .tech-repair-item-grid-v102e3 input,
.dq-app-v102e3 .tech-repair-item-grid-v102e3 textarea {
  width: 100%;
  border: 1px solid #cad7ea;
  border-radius: 14px;
  padding: .72rem .78rem;
  background: #fff;
  color: #10213f;
}
.dq-app-v102e3 .tech-repair-item-grid-v102e3 textarea {
  min-height: 96px;
  resize: vertical;
}
.dq-app-v102e3 .tech-repair-item-grid-v102e3 .tech-repair-notes {
  grid-column: 1 / -1;
}
.dq-app-v102e3 .tech-repair-item-actions-v102e2,
.dq-app-v102e3 .tech-repair-item-actions-v102e3 {
  position: static !important;
  bottom: auto !important;
  z-index: auto !important;
  background: transparent !important;
  box-shadow: none !important;
  display: flex;
  justify-content: flex-end;
  padding: .9rem 0 0 !important;
  margin-top: .4rem;
}
.dq-app-v102e3 .tech-repair-item-actions-v102e3 .btn {
  min-height: 46px;
  border-radius: 14px;
  font-weight: 900;
}
.dq-app-v102e3 .tech-repair-visit-box-v102e3 {
  margin-top: .9rem;
  border: 1px solid #d8e5f5;
  border-radius: 18px;
  overflow: hidden;
  background: #fff;
}
.dq-app-v102e3 .tech-repair-visit-box-v102e3 summary {
  min-height: 48px;
  padding: .8rem 1rem;
  cursor: pointer;
}
.dq-app-v102e3 .tech-repair-visit-fields-v102e3 {
  padding: .85rem 1rem 0;
}
.dq-app-v102e3 .tech-repair-save-row-v102e3 {
  padding: .85rem 1rem 1rem;
  justify-content: flex-end;
}
.dq-app-v102e3 [data-dq-repair-native-button-v102e3][data-dq-submitting="1"] {
  pointer-events: none;
  opacity: .78;
}
.dq-app-v102e3 form[data-dq-repair-native-form-v102e3="1"].is-saving {
  opacity: .92;
}
.dq-app-v102e3 .tech-repair-history-details-v102e3 {
  margin-top: .9rem;
}
.dq-app-v102e3 .tech-order-page .main-content,
.dq-app-v102e3.tech-order-page .main-content {
  padding-bottom: calc(7.5rem + env(safe-area-inset-bottom, 0px));
}
@media (max-width: 640px) {
  .dq-app-v102e3 .tech-repair-core-v102e3 { padding: .78rem !important; }
  .dq-app-v102e3 .tech-repair-quick-context-v102e3 { grid-template-columns: 1fr 1fr; gap: .55rem; }
  .dq-app-v102e3 .tech-repair-item-grid-v102e3 { grid-template-columns: 1fr; }
  .dq-app-v102e3 .tech-repair-item-actions-v102e3 .btn,
  .dq-app-v102e3 .tech-repair-save-row-v102e3 .btn { width: 100%; }
}


/* v1.0.2F - Sincronización profesional cierre técnico / bandeja comercial */
.dq-app-v102f .repairs-kpi-grid-v100c {
    grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
}
.dq-app-v102f .kpi-technical-completed-v102f {
    border-left: 4px solid #16a34a;
    background: linear-gradient(180deg, #f0fdf4 0%, #ffffff 100%);
}
.dq-app-v102f .technical-completed-section-v102f {
    border-left: 4px solid #16a34a;
}
.dq-app-v102f .technical-completed-pill-v102f,
.dq-app-v102f .quote-status-technical_completed {
    background: #dcfce7;
    color: #166534;
    border-color: #bbf7d0;
}
.dq-app-v102f .technical-completed-card-v102f {
    border-left: 4px solid #16a34a;
}
.dq-app-v102f .technical-completed-card-v102f .execution-card-head-v100c2 h3 {
    color: #0f172a;
}


/* v1.0.2F1 - UX profesional bandeja comercial: secciones de revision contraidas */
.dq-app-v102f1 .quote-list-section-v100c > .dq-collapse-summary {
    position: relative;
    padding-left: 2.65rem;
}
.dq-app-v102f1 .quote-list-section-v100c > .dq-collapse-summary::before {
    content: "›";
    position: absolute;
    left: 1.05rem;
    top: 50%;
    width: 1.35rem;
    height: 1.35rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transform: translateY(-50%);
    border-radius: 999px;
    background: #eef5ff;
    border: 1px solid #dbe7f5;
    color: #244c9b;
    font-size: 1.25rem;
    font-weight: 900;
    line-height: 1;
    transition: transform .18s ease, background .18s ease, color .18s ease;
}
.dq-app-v102f1 .quote-list-section-v100c[open] > .dq-collapse-summary::before {
    transform: translateY(-50%) rotate(90deg);
    background: #244c9b;
    color: #fff;
    border-color: #244c9b;
}
.dq-app-v102f1 .technical-completed-section-v102f1:not([open]) {
    background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
}
.dq-app-v102f1 .technical-completed-section-v102f1:not([open]) > .dq-collapse-summary {
    border-bottom: 0;
}
.dq-app-v102f1 .technical-completed-section-v102f1:not([open]) .technical-completed-pill-v102f {
    background: #f0fdf4 !important;
    color: #166534 !important;
    border-color: #bbf7d0 !important;
}
.dq-app-v102f1 .technical-completed-customer-v102f1 > .dq-customer-summary-v100c2 {
    background: #ffffff;
}
.dq-app-v102f1 .quote-section-history-v102f1:not([open]) .dq-collapse-pill {
    background: #f8fafc !important;
    color: #475569 !important;
}
@media (max-width: 720px) {
    .dq-app-v102f1 .quote-list-section-v100c > .dq-collapse-summary {
        padding-left: 2.45rem;
    }
    .dq-app-v102f1 .quote-list-section-v100c > .dq-collapse-summary::before {
        left: .85rem;
        top: 1.35rem;
        transform: none;
    }
    .dq-app-v102f1 .quote-list-section-v100c[open] > .dq-collapse-summary::before {
        transform: rotate(90deg);
    }
}


/* v1.0.2F2 - Cierre de presupuesto claro y UX de acordeones comerciales */
.dq-app-v102f2 .quote-list-section-v100c > .dq-collapse-summary {
    padding-left: 2.35rem;
}
.dq-app-v102f2 .quote-list-section-v100c > .dq-collapse-summary::before {
    content: "›";
    position: absolute;
    left: 1.05rem;
    top: 50%;
    width: auto;
    height: auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transform: translateY(-50%);
    border-radius: 0;
    background: transparent;
    border: 0;
    color: #42679d;
    font-size: 1.3rem;
    font-weight: 950;
    line-height: 1;
    transition: transform .18s ease, color .18s ease;
}
.dq-app-v102f2 .quote-list-section-v100c[open] > .dq-collapse-summary::before {
    transform: translateY(-50%) rotate(90deg);
    background: transparent;
    color: #173b76;
    border: 0;
}
.dq-app-v102f2 .quote-list-section-v100c > .dq-collapse-summary:hover::before {
    color: #244c9b;
}
.dq-app-v102f2 .quote-document-gate-v102f2,
.dq-app-v102f2 .quote-document-ready-v102f2 {
    margin: 1rem 0 1.15rem;
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 1rem;
    align-items: start;
    border: 1px solid #d6e3f3;
    border-radius: 18px;
    padding: 1rem 1.1rem;
    background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
    box-shadow: 0 10px 24px rgba(15, 35, 75, .045);
}
.dq-app-v102f2 .quote-document-gate-v102f2.can-close {
    border-color: #b8cdf5;
    background: linear-gradient(180deg, #f8fbff 0%, #ffffff 100%);
}
.dq-app-v102f2 .quote-document-ready-v102f2 {
    grid-template-columns: 1fr auto;
    align-items: center;
    border-color: #bbf7d0;
    background: linear-gradient(180deg, #f0fdf4 0%, #ffffff 100%);
}
.dq-app-v102f2 .quote-document-gate-icon-v102f2 {
    width: 52px;
    height: 52px;
    border-radius: 16px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #eaf2ff;
    color: #244c9b;
    border: 1px solid #cfe0fb;
    font-size: .72rem;
    font-weight: 950;
    letter-spacing: .04em;
}
.dq-app-v102f2 .quote-document-gate-content-v102f2 h3,
.dq-app-v102f2 .quote-document-ready-v102f2 h3 {
    margin: .1rem 0 .35rem;
    color: #10213a;
    font-size: 1.05rem;
}
.dq-app-v102f2 .quote-document-gate-content-v102f2 p,
.dq-app-v102f2 .quote-document-ready-v102f2 p {
    margin: 0 0 .85rem;
    color: #64748b;
    line-height: 1.45;
}
.dq-app-v102f2 .quote-close-pdf-form-v102f2,
.dq-app-v102f2 .quote-reopen-pdf-form-v102f2 {
    margin: 0;
}
.dq-app-v102f2 .quote-close-pdf-btn-v102f2 {
    min-width: 240px;
}
.dq-app-v102f2 .quote-hidden-actions-clean-v102f2 {
    display: none !important;
}
@media (max-width: 720px) {
    .dq-app-v102f2 .quote-list-section-v100c > .dq-collapse-summary {
        padding-left: 2.25rem;
    }
    .dq-app-v102f2 .quote-list-section-v100c > .dq-collapse-summary::before {
        left: .9rem;
        top: 1.38rem;
        transform: none;
    }
    .dq-app-v102f2 .quote-list-section-v100c[open] > .dq-collapse-summary::before {
        transform: rotate(90deg);
    }
    .dq-app-v102f2 .quote-document-gate-v102f2,
    .dq-app-v102f2 .quote-document-ready-v102f2 {
        grid-template-columns: 1fr;
    }
    .dq-app-v102f2 .quote-close-pdf-btn-v102f2,
    .dq-app-v102f2 .quote-reopen-pdf-form-v102f2 .btn {
        width: 100%;
        min-width: 0;
    }
}


/* v1.0.2F3 - Firma móvil profesional */
.dq-app-v102f3 .dq-signature-field-v102f3 {
    border: 1px solid #d8e5f5;
    background: linear-gradient(180deg, #ffffff, #f8fbff);
    border-radius: 16px;
    padding: 12px;
    box-shadow: 0 8px 20px rgba(18, 43, 80, .04);
}
.dq-app-v102f3 .dq-signature-status-v102f3 {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    border: 1px solid #dbe7f5;
    border-radius: 999px;
    background: #f8fafc;
    color: #64748b;
    font-size: .76rem;
    font-weight: 800;
    padding: .32rem .65rem;
    margin-bottom: .55rem;
}
.dq-app-v102f3 .dq-signature-status-v102f3::before {
    content: '';
    width: 8px;
    height: 8px;
    border-radius: 999px;
    background: #cbd5e1;
}
.dq-app-v102f3 .dq-signature-status-v102f3.is-signed {
    background: #ecfdf5;
    border-color: #bbf7d0;
    color: #166534;
}
.dq-app-v102f3 .dq-signature-status-v102f3.is-signed::before { background: #22c55e; }
.dq-app-v102f3 .dq-signature-inline-surface-v102f3 canvas,
.dq-signature-modal-canvas-v102f3 {
    display: block;
    width: 100%;
    background: #fff;
    border: 1px solid #cfdced;
    border-radius: 14px;
    touch-action: none;
    user-select: none;
    -webkit-user-select: none;
    -webkit-touch-callout: none;
}
.dq-app-v102f3 .dq-signature-inline-surface-v102f3 canvas {
    height: 190px;
}
.dq-app-v102f3 .dq-signature-actions-v102f3 {
    display: flex;
    gap: .55rem;
    flex-wrap: wrap;
    margin-top: .65rem;
}
.dq-app-v102f3 .dq-signature-help-v102f3 { margin: .55rem 0 0; }
body.dq-signature-modal-open-v102f3,
body.dq-signature-drawing-v102f3 {
    overflow: hidden !important;
    overscroll-behavior: contain;
    touch-action: none;
}
.dq-signature-modal-v102f3[hidden] { display: none !important; }
.dq-signature-modal-v102f3 {
    position: fixed;
    inset: 0;
    z-index: 99999;
    background: rgba(15, 23, 42, .72);
    display: flex;
    align-items: stretch;
    justify-content: center;
    padding: max(12px, env(safe-area-inset-top)) max(12px, env(safe-area-inset-right)) max(12px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left));
}
.dq-signature-modal-shell-v102f3 {
    width: min(980px, 100%);
    height: 100%;
    background: #f8fbff;
    border-radius: 22px;
    overflow: hidden;
    display: grid;
    grid-template-rows: auto minmax(0, 1fr) auto;
    box-shadow: 0 24px 80px rgba(0, 0, 0, .35);
}
.dq-signature-modal-head-v102f3 {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 1rem;
    padding: 16px 18px;
    background: #fff;
    border-bottom: 1px solid #dbe7f5;
}
.dq-signature-modal-head-v102f3 h2 {
    margin: 0;
    color: #10213f;
    font-size: 1.15rem;
}
.dq-signature-modal-head-v102f3 p {
    margin: .2rem 0 0;
    color: #64748b;
    font-size: .86rem;
}
.dq-signature-modal-close-v102f3 {
    width: 42px;
    height: 42px;
    border: 1px solid #dbe7f5;
    border-radius: 14px;
    background: #fff;
    color: #475569;
    font-size: 1.6rem;
    line-height: 1;
    cursor: pointer;
}
.dq-signature-modal-body-v102f3 {
    padding: 14px;
    min-height: 0;
    display: flex;
}
.dq-signature-modal-canvas-v102f3 {
    flex: 1;
    min-height: 320px;
    height: 100%;
}
.dq-signature-modal-actions-v102f3 {
    display: flex;
    justify-content: space-between;
    gap: .75rem;
    padding: 14px 18px max(14px, env(safe-area-inset-bottom));
    background: #fff;
    border-top: 1px solid #dbe7f5;
}
.dq-signature-modal-actions-right-v102f3 {
    display: flex;
    gap: .65rem;
    flex-wrap: wrap;
    justify-content: flex-end;
}
@media (max-width: 760px) {
    .dq-app-v102f3 .dq-signature-inline-surface-v102f3 canvas {
        height: 112px;
        pointer-events: none;
        background: repeating-linear-gradient(0deg, #fff, #fff 18px, #f8fafc 19px);
    }
    .dq-app-v102f3 .dq-signature-actions-v102f3 .btn {
        flex: 1 1 auto;
        justify-content: center;
        min-height: 44px;
    }
    .dq-signature-modal-v102f3 {
        padding: max(8px, env(safe-area-inset-top)) max(8px, env(safe-area-inset-right)) max(8px, env(safe-area-inset-bottom)) max(8px, env(safe-area-inset-left));
    }
    .dq-signature-modal-shell-v102f3 { border-radius: 18px; }
    .dq-signature-modal-head-v102f3 { padding: 12px 14px; }
    .dq-signature-modal-body-v102f3 { padding: 10px; }
    .dq-signature-modal-canvas-v102f3 { min-height: 420px; }
    .dq-signature-modal-actions-v102f3 { padding: 10px 12px max(12px, env(safe-area-inset-bottom)); }
}
@media (orientation: landscape) and (max-height: 520px) {
    .dq-signature-modal-head-v102f3 { padding: 8px 12px; }
    .dq-signature-modal-head-v102f3 p { display: none; }
    .dq-signature-modal-body-v102f3 { padding: 8px; }
    .dq-signature-modal-actions-v102f3 { padding: 8px 12px max(8px, env(safe-area-inset-bottom)); }
    .dq-signature-modal-canvas-v102f3 { min-height: 220px; }
}

/* v1.0.3A - Motor visual avanzado de formularios */
.dq-app-v103a .runtime-fields-grid-v102d{
    display:grid!important;
    grid-template-columns:repeat(12,minmax(0,1fr))!important;
    gap:.75rem!important;
    align-items:start!important;
}
.dq-app-v103a .runtime-field-layout-v103a{min-width:0;position:relative;}
.dq-app-v103a .runtime-field-desktop-100-v103a{grid-column:span 12!important;}
.dq-app-v103a .runtime-field-desktop-50-v103a{grid-column:span 6!important;}
.dq-app-v103a .runtime-field-desktop-33-v103a{grid-column:span 4!important;}
.dq-app-v103a .runtime-field-desktop-25-v103a{grid-column:span 3!important;}
.dq-app-v103a .runtime-field-forced-full-v103a{grid-column:span 12!important;}
.dq-app-v103a .runtime-field label{display:flex;align-items:center;gap:.35rem;line-height:1.2;}
.dq-app-v103a .dq-runtime-field-icon-v103a{display:inline-flex;align-items:center;justify-content:center;min-width:1.35rem;height:1.35rem;border-radius:.45rem;background:color-mix(in srgb,var(--dq-runtime-field-accent,#244c9b) 12%,#fff);color:var(--dq-runtime-field-accent,#244c9b);border:1px solid color-mix(in srgb,var(--dq-runtime-field-accent,#244c9b) 22%,#d6e3f2);font-size:.78rem;font-weight:900;}
.dq-app-v103a .runtime-field-has-accent-v103a{border-left:3px solid var(--dq-runtime-field-accent,#244c9b);padding-left:.55rem;}
.dq-app-v103a .runtime-field-size-compact-v103a input,.dq-app-v103a .runtime-field-size-compact-v103a select{min-height:38px;padding:.48rem .58rem;font-size:.88rem;}
.dq-app-v103a .runtime-field-size-compact-v103a textarea{min-height:70px;padding:.52rem .6rem;font-size:.88rem;}
.dq-app-v103a .runtime-field-size-large-v103a input,.dq-app-v103a .runtime-field-size-large-v103a select{min-height:50px;padding:.78rem .82rem;font-size:1rem;}
.dq-app-v103a .runtime-field-size-large-v103a textarea{min-height:130px;padding:.78rem .82rem;font-size:1rem;}
.dq-presentation-note-v103a{border:1px solid #bfdbfe;background:#eff6ff;color:#1e3a8a;border-radius:14px;padding:.75rem .85rem;margin:.2rem 0 .85rem;display:grid;gap:.18rem;font-size:.86rem;}
.dq-presentation-note-v103a strong{color:#17337a;}
.dq-presentation-examples-v103a{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:.75rem;}
.dq-presentation-examples-v103a code{display:inline-flex;background:#f8fafc;border:1px solid #dbe6f3;color:#273b5b;border-radius:10px;padding:.28rem .45rem;font-size:.78rem;}
.dq-field-badge.layout{background:#eef4ff;color:#244c9b;border:1px solid #d7e5ff;}
.dq-preview-fields-grid-v103a{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:.75rem;align-items:start;}
.dq-preview-field-v103a{min-width:0;margin:0!important;}
.dq-preview-desktop-100-v103a{grid-column:span 12;}
.dq-preview-desktop-50-v103a{grid-column:span 6;}
.dq-preview-desktop-33-v103a{grid-column:span 4;}
.dq-preview-desktop-25-v103a{grid-column:span 3;}
.dq-preview-forced-full-v103a{grid-column:span 12;}
.dq-preview-field-v103a label{display:flex;align-items:center;gap:.35rem;}
.dq-preview-field-v103a[style*="--dq-runtime-field-accent"]{border-left:3px solid var(--dq-runtime-field-accent,#244c9b);padding-left:.55rem;}
@media(max-width:900px){
    .dq-app-v103a .runtime-fields-grid-v102d{grid-template-columns:repeat(12,minmax(0,1fr))!important;}
}
@media(max-width:640px){
    .dq-app-v103a .runtime-fields-grid-v102d{grid-template-columns:repeat(12,minmax(0,1fr))!important;gap:.62rem!important;padding:.7rem .75rem .9rem!important;}
    .dq-app-v103a .runtime-field-mobile-50-v103a{grid-column:span 6!important;}
    .dq-app-v103a .runtime-field-mobile-100-v103a,.dq-app-v103a .runtime-field-forced-full-v103a{grid-column:span 12!important;}
    .dq-app-v103a .runtime-field-mobile-inline-v103a input,.dq-app-v103a .runtime-field-mobile-inline-v103a select{font-size:.88rem;padding:.56rem .58rem;}
    .dq-app-v103a .runtime-field-mobile-inline-v103a label{font-size:.74rem;}
    .dq-preview-fields-grid-v103a{grid-template-columns:repeat(12,minmax(0,1fr));gap:.62rem;}
    .dq-preview-mobile-50-v103a{grid-column:span 6;}
    .dq-preview-mobile-100-v103a,.dq-preview-forced-full-v103a{grid-column:span 12;}
}
@media(max-width:380px){
    .dq-app-v103a .runtime-field-mobile-inline-v103a label{font-size:.7rem;}
    .dq-app-v103a .runtime-field-mobile-inline-v103a input,.dq-app-v103a .runtime-field-mobile-inline-v103a select{font-size:.82rem;padding:.5rem .5rem;}
}
/* /v1.0.3A */

/* v1.0.3A1 - Pulido UX constructor y formulario tecnico movil */
.dq-app-v103a1 .dq-runtime-field-icon-v103a{display:none!important;}
.dq-app-v103a1 .dq-icon-disabled-note-v103a1{grid-column:span 1;border:1px dashed #d7e2f1;background:#f8fafc;border-radius:12px;padding:.65rem .75rem;}
.dq-app-v103a1 .dq-icon-disabled-note-v103a1 label{font-weight:900;color:#334155;display:block;margin-bottom:.2rem;}
.dq-app-v103a1 .dq-designer-pending-bar-v103a1{display:flex;align-items:center;justify-content:space-between;gap:1rem;border:1px solid #fde68a;background:#fffbeb;color:#92400e;border-radius:16px;padding:.8rem 1rem;margin:.85rem 0;box-shadow:0 10px 22px rgba(146,64,14,.06);}
.dq-app-v103a1 .dq-designer-pending-bar-v103a1[hidden]{display:none!important;}
.dq-app-v103a1 .dq-designer-pending-bar-v103a1 strong{font-weight:950;}
.dq-app-v103a1 .dq-designer-pending-bar-v103a1 span{font-size:.86rem;color:#78350f;}
.dq-app-v103a1 .dq-bottom-actions-v103a1{gap:.6rem;align-items:center;}
.dq-app-v103a1 .dq-bottom-actions-v103a1 .is-dirty-v103a1{box-shadow:0 0 0 3px rgba(245,158,11,.18);}
.dq-app-v103a1 .dq-field-line-pending-v103a1{border-color:#fbbf24!important;background:linear-gradient(180deg,#fffbeb,#ffffff)!important;}
.dq-app-v103a1 .dq-field-line-delete-pending-v103a1{opacity:.5;background:#fff1f2!important;border-color:#fecdd3!important;text-decoration:line-through;}
.dq-app-v103a1 .dq-section-card-pending-v103a1{border-color:#fbbf24!important;background:linear-gradient(180deg,#fffbeb,#fff)!important;}
.dq-app-v103a1 .dq-field-badge.draft{background:#fef3c7;color:#92400e;border:1px solid #fde68a;}
.dq-app-v103a1 .dq-studio-canvas-head .muted strong{color:#1e3a8a;}

/* App tecnica: formulario mas compacto, sin iconografia decorativa */
body.tech-order-page.dq-app-v103a1 .runtime-fields-grid-v102d,
.dq-app-v103a1 .tech-user .runtime-fields-grid-v102d,
.dq-app-v103a1 .tech-app-page .runtime-fields-grid-v102d{gap:.54rem!important;}
body.tech-order-page.dq-app-v103a1 .runtime-field,
.dq-app-v103a1 .tech-user .runtime-field,
.dq-app-v103a1 .tech-app-page .runtime-field{margin:5px 0 8px!important;}
body.tech-order-page.dq-app-v103a1 .runtime-field label,
.dq-app-v103a1 .tech-user .runtime-field label,
.dq-app-v103a1 .tech-app-page .runtime-field label{font-size:12px!important;line-height:1.15!important;font-weight:900!important;color:#25364f!important;}
body.tech-order-page.dq-app-v103a1 .runtime-field .muted.small,
.dq-app-v103a1 .tech-user .runtime-field .muted.small,
.dq-app-v103a1 .tech-app-page .runtime-field .muted.small{font-size:11px!important;line-height:1.2!important;margin-top:.22rem!important;}
body.tech-order-page.dq-app-v103a1 .runtime-field input:not([type="radio"]):not([type="checkbox"]),
body.tech-order-page.dq-app-v103a1 .runtime-field select,
.dq-app-v103a1 .tech-user .runtime-field input:not([type="radio"]):not([type="checkbox"]),
.dq-app-v103a1 .tech-user .runtime-field select,
.dq-app-v103a1 .tech-app-page .runtime-field input:not([type="radio"]):not([type="checkbox"]),
.dq-app-v103a1 .tech-app-page .runtime-field select{min-height:36px!important;padding:.5rem .55rem!important;font-size:13px!important;border-radius:12px!important;}
body.tech-order-page.dq-app-v103a1 .runtime-field textarea,
.dq-app-v103a1 .tech-user .runtime-field textarea,
.dq-app-v103a1 .tech-app-page .runtime-field textarea{min-height:76px!important;padding:.55rem .6rem!important;font-size:13px!important;border-radius:12px!important;}
body.tech-order-page.dq-app-v103a1 .runtime-field .status-chip-group,
.dq-app-v103a1 .tech-user .runtime-field .status-chip-group,
.dq-app-v103a1 .tech-app-page .runtime-field .status-chip-group{gap:.34rem!important;}
body.tech-order-page.dq-app-v103a1 .runtime-field .status-chip span,
.dq-app-v103a1 .tech-user .runtime-field .status-chip span,
.dq-app-v103a1 .tech-app-page .runtime-field .status-chip span{min-height:32px!important;padding:6px 7px!important;font-size:12px!important;line-height:1.12!important;border-radius:11px!important;}
body.tech-order-page.dq-app-v103a1 .runtime-section > :not(summary){margin-left:10px!important;margin-right:10px!important;}
body.tech-order-page.dq-app-v103a1 .runtime-section > summary{padding:9px 11px!important;font-size:14px!important;}
@media(max-width:640px){
  .dq-app-v103a1 .dq-designer-pending-bar-v103a1{align-items:flex-start;flex-direction:column;gap:.3rem;padding:.7rem .8rem;}
  .dq-app-v103a1 .dq-bottom-actions-v103a1{display:grid;grid-template-columns:1fr;}
  .dq-app-v103a1 .dq-icon-disabled-note-v103a1{grid-column:span 2;}
}
/* /v1.0.3A1 */

/* v1.0.3A2 - Edicion de campos nuevos en constructor */
.dq-app-v103a2 .dq-field-line-temp-editable-v103a2 {
  background: #fffdf4;
  border-color: #f3c969;
}
.dq-app-v103a2 .dq-temp-field-modal-v103a2 .dq-modal-panel {
  max-width: min(1120px, 96vw);
}
.dq-app-v103a2 .dq-field-line-temp-editable-v103a2 .dq-field-actions {
  display: flex;
  gap: 8px;
  align-items: center;
}
.dq-app-v103a2 .dq-field-line-temp-editable-v103a2 .dq-icon-button[title*="Configurar"] {
  background: #eef4ff;
  border-color: #c9d8ff;
  color: #24489f;
}
.dq-app-v103a2 .dq-field-line-temp-editable-v103a2 .dq-icon-button[title*="Duplicar"] {
  background: #f7fbff;
  border-color: #d9e6f7;
  color: #334155;
}
.dq-app-v103a2 .dq-temp-field-modal-v103a2 .dq-modal-foot {
  position: sticky;
  bottom: 0;
  background: #fff;
  border-top: 1px solid #e6edf7;
  padding: 14px 18px;
  display: flex;
  justify-content: flex-end;
  gap: 10px;
}
/* /v1.0.3A2 */

/* DataQuest Lift v1.0.3A3 - Identidad visual del sistema */
body.dq-app-v103a3 .brand.dq-system-brand {
    gap: 11px;
    margin-bottom: 30px;
}
body.dq-app-v103a3 .brand-mark-img {
    width: 44px;
    height: 44px;
    object-fit: contain;
    background: #ffffff;
    border-radius: 14px;
    padding: 5px;
    box-shadow: 0 10px 26px rgba(0,0,0,.18);
    flex: 0 0 auto;
}
body.dq-app-v103a3 .brand.dq-system-brand strong {
    letter-spacing: -.01em;
}
body.dq-app-v103a3 .brand.dq-system-brand small {
    color: rgba(214,227,245,.78);
}
body.dq-guest-branded {
    min-height: 100vh;
    place-items: center;
    background:
        radial-gradient(circle at 20% 10%, rgba(53,163,255,.12), transparent 30%),
        radial-gradient(circle at 85% 18%, rgba(255,139,35,.10), transparent 26%),
        linear-gradient(135deg, #eef3fa 0%, #f8fbff 52%, #edf4fb 100%);
    padding: 32px 16px;
}
body.dq-guest-branded .dq-login-card-brand {
    width: min(460px, calc(100vw - 32px));
    margin: 0 auto;
    padding: 30px 30px 26px;
    border-radius: 26px;
    border: 1px solid rgba(15, 29, 51, .08);
    box-shadow: 0 24px 70px rgba(15, 29, 51, .14);
}
body.dq-guest-branded .dq-login-brand {
    text-align: center;
    margin-bottom: 24px;
    padding-bottom: 18px;
    border-bottom: 1px solid rgba(219, 227, 239, .92);
}
body.dq-guest-branded .dq-login-logo {
    display: block;
    width: min(315px, 88%);
    height: auto;
    margin: 0 auto 10px;
}
body.dq-guest-branded .dq-login-brand p {
    margin: 0;
    color: var(--muted);
    font-size: 14px;
    line-height: 1.45;
    font-weight: 650;
}
body.dq-guest-branded .dq-login-card-brand label {
    color: #23324a;
}
body.dq-guest-branded .dq-login-card-brand .btn.primary.full {
    min-height: 46px;
    border-radius: 14px;
    background: linear-gradient(135deg, #204b8f, #315ec0);
    box-shadow: 0 12px 24px rgba(32,75,143,.22);
}
body.dq-guest-branded .dq-login-footnote {
    text-align: center;
    font-size: 13px;
    line-height: 1.45;
    margin-top: 16px;
}
@media (max-width: 560px) {
    body.dq-guest-branded {
        padding: 18px 12px;
        align-items: center;
    }
    body.dq-guest-branded .dq-login-card-brand {
        padding: 24px 18px 22px;
        border-radius: 22px;
    }
    body.dq-guest-branded .dq-login-logo {
        width: min(280px, 92%);
    }
}


/* v1.0.3B3 - Consolidación funcional de galería fotográfica.
   Estilos mínimos para no alterar la estética general del sistema. */
.dq-photo-gallery-field-v103b3{display:block;width:100%}
.dq-photo-gallery-meta-v103b3{font-size:.78rem;color:#64748b;margin:.35rem 0 .45rem}
.dq-photo-gallery-preview-v103b3{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:.65rem;margin-top:.6rem}
.dq-photo-item-v103b3{border:1px solid #e2e8f0;border-radius:12px;padding:.45rem;background:#fff;display:flex;flex-direction:column;gap:.4rem}
.dq-photo-thumb-v103b3{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:9px;background:#f1f5f9}
.dq-photo-caption-v103b3{min-height:34px;font-size:.8rem;padding:.4rem .5rem}
.dq-photo-actions-v103b3{display:flex;gap:.25rem;justify-content:space-between;align-items:center}
.dq-photo-actions-v103b3 button{min-height:30px;padding:.25rem .45rem;font-size:.74rem}
.dq-photo-error-v103b3{color:#b91c1c;margin-top:.4rem}.dq-photo-error-v103b3:empty{display:none}
.dq-response-gallery-v103b3{display:flex;flex-wrap:wrap;gap:.5rem;align-items:flex-start}.dq-response-gallery-v103b3 small{display:block;color:#64748b;font-size:.75rem;width:100%}

/* v1.0.3C - Configuracion documental y PDF bajo demanda de reparacion */
.dq-doc-config-v103c{display:grid;gap:1.25rem}.dq-doc-hero-v103c{display:flex;justify-content:space-between;align-items:stretch;gap:1rem;padding:1.35rem;border-radius:24px;background:linear-gradient(135deg,#10233f,#173761 55%,#255381);color:#fff;box-shadow:0 18px 40px rgba(15,35,63,.20)}.dq-doc-hero-v103c h1{margin:.15rem 0 .45rem;font-size:clamp(1.65rem,2.8vw,2.45rem);line-height:1.05}.dq-doc-hero-v103c p{max-width:860px;margin:0;color:rgba(255,255,255,.86)}.dq-doc-hero-card-v103c{min-width:240px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.10);border-radius:20px;padding:1rem;display:flex;flex-direction:column;gap:.25rem}.dq-doc-hero-card-v103c small{color:rgba(255,255,255,.74);text-transform:uppercase;letter-spacing:.08em}.dq-doc-hero-card-v103c strong{font-size:1.05rem}.dq-doc-type-strip-v103c{display:flex;gap:.65rem;overflow:auto;padding:.2rem}.dq-doc-type-pill-v103c{display:flex;flex-direction:column;gap:.15rem;min-width:160px;text-decoration:none;border:1px solid #dfe6ef;border-radius:16px;padding:.8rem .95rem;background:#fff;color:#142b4e;box-shadow:0 8px 24px rgba(20,43,78,.06)}.dq-doc-type-pill-v103c.active{border-color:#d47c37;background:linear-gradient(180deg,#fff8f1,#fff);box-shadow:0 10px 24px rgba(212,124,55,.16)}.dq-doc-type-pill-v103c small{color:#64748b}.dq-doc-grid-v103c{display:grid;grid-template-columns:minmax(0,2fr) minmax(260px,.8fr);gap:1rem;align-items:start}.dq-doc-upload-card-v103c,.dq-doc-help-card-v103c,.dq-doc-table-card-v103c,.dq-doc-vars-card-v103c{border-radius:22px}.dq-doc-form-v103c small{display:block;color:#64748b;margin-top:.35rem;line-height:1.35}.dq-doc-help-card-v103c ol{padding-left:1.2rem;line-height:1.8;margin:.5rem 0 1rem}.dq-doc-help-card-v103c li::marker{color:#d47c37;font-weight:700}.dq-doc-table-card-v103c table code{font-size:.8rem;white-space:normal}.dq-doc-validation-detail-v103c{margin-top:.35rem}.dq-doc-validation-detail-v103c summary{cursor:pointer;color:#9a5b1f;font-size:.85rem}.dq-doc-validation-detail-v103c ul{margin:.45rem 0 0;padding-left:1rem}.dq-doc-validation-detail-v103c li{margin:.2rem 0;color:#475569}.dq-doc-vars-grid-v103c{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem}.dq-doc-var-group-v103c{border:1px solid #e2e8f0;border-radius:18px;background:#fff;overflow:hidden}.dq-doc-var-group-v103c summary{cursor:pointer;display:flex;justify-content:space-between;align-items:center;padding:.9rem 1rem;font-weight:800;color:#142b4e;background:#f8fafc}.dq-doc-var-group-v103c summary span{font-size:.8rem;border-radius:999px;background:#eaf0f7;color:#3b5578;padding:.15rem .5rem}.dq-doc-var-list-v103c{padding:.8rem;display:grid;gap:.55rem}.dq-doc-var-chip-v103c{text-align:left;border:1px solid #e2e8f0;background:#fff;border-radius:14px;padding:.65rem .75rem;display:grid;gap:.25rem;cursor:pointer;transition:.15s ease}.dq-doc-var-chip-v103c:hover,.dq-doc-var-chip-v103c.copied{border-color:#d47c37;background:#fff8f1}.dq-doc-var-chip-v103c code{font-size:.82rem;color:#142b4e;font-weight:800;word-break:break-word}.dq-doc-var-chip-v103c small{color:#64748b;line-height:1.3}.workorder-document-actions-v103c{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap}.dq-pdf-button-v103c{box-shadow:0 10px 22px rgba(212,124,55,.18)}
@media (max-width:900px){.dq-doc-hero-v103c,.dq-doc-grid-v103c{grid-template-columns:1fr;display:grid}.dq-doc-hero-card-v103c{min-width:0}.dq-doc-type-pill-v103c{min-width:145px}.workorder-document-actions-v103c{width:100%;justify-content:flex-start}.dq-pdf-button-v103c{width:auto}}
/* /v1.0.3C */

/* DataQuest Lift v1.0.3C1 - menú contextual de acciones en Órdenes de trabajo */
.dq-app-v103c1 .dq-action-menu {
    position: relative;
    display: inline-block;
    text-align: left;
    z-index: 20;
}

.dq-app-v103c1 .dq-more-button {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    cursor: pointer;
    user-select: none;
    min-width: 82px;
    justify-content: center;
}

.dq-app-v103c1 .dq-action-menu > summary {
    list-style: none;
}

.dq-app-v103c1 .dq-action-menu > summary::-webkit-details-marker,
.dq-app-v103c1 .dq-action-submenu > summary::-webkit-details-marker {
    display: none;
}

.dq-app-v103c1 .dq-action-menu-panel {
    display: none;
    position: absolute;
    right: 0;
    top: calc(100% + 8px);
    min-width: 260px;
    max-width: 330px;
    background: #ffffff;
    border: 1px solid rgba(15, 23, 42, 0.10);
    border-radius: 16px;
    box-shadow: 0 22px 60px rgba(15, 23, 42, 0.18);
    padding: 8px;
    z-index: 999;
}

.dq-app-v103c1 .dq-action-menu[open] .dq-action-menu-panel {
    display: block;
}

.dq-app-v103c1 .dq-action-menu-panel::before {
    content: '';
    position: absolute;
    right: 24px;
    top: -7px;
    width: 14px;
    height: 14px;
    background: #ffffff;
    border-left: 1px solid rgba(15, 23, 42, 0.10);
    border-top: 1px solid rgba(15, 23, 42, 0.10);
    transform: rotate(45deg);
}

.dq-app-v103c1 .dq-action-menu-item,
.dq-app-v103c1 .dq-action-submenu > summary {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    padding: 10px 11px;
    border-radius: 12px;
    color: #0f172a;
    text-decoration: none;
    cursor: pointer;
    transition: background 0.15s ease, transform 0.15s ease;
}

.dq-app-v103c1 .dq-action-menu-item:hover,
.dq-app-v103c1 .dq-action-submenu > summary:hover {
    background: #f8fafc;
    transform: translateY(-1px);
}

.dq-app-v103c1 .dq-action-menu-item strong,
.dq-app-v103c1 .dq-action-submenu strong {
    display: block;
    font-size: 0.92rem;
    line-height: 1.2;
}

.dq-app-v103c1 .dq-action-menu-item small,
.dq-app-v103c1 .dq-action-submenu small {
    display: block;
    margin-top: 2px;
    color: #64748b;
    font-size: 0.76rem;
    line-height: 1.2;
}

.dq-app-v103c1 .dq-action-menu-icon {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 32px;
    height: 32px;
    padding: 0 6px;
    border-radius: 10px;
    background: #eff6ff;
    color: #1d4ed8;
    font-weight: 800;
    font-size: 0.70rem;
    letter-spacing: 0.02em;
}

.dq-app-v103c1 .dq-action-menu-divider {
    height: 1px;
    margin: 6px 4px;
    background: rgba(15, 23, 42, 0.08);
}

.dq-app-v103c1 .dq-action-submenu {
    display: block;
}

.dq-app-v103c1 .dq-action-submenu > summary {
    list-style: none;
}

.dq-app-v103c1 .dq-action-assign-form {
    margin: 6px 4px 4px;
    padding: 12px;
    border-radius: 14px;
    background: #f8fafc;
    border: 1px solid rgba(15, 23, 42, 0.08);
}

.dq-app-v103c1 .dq-action-assign-form label {
    display: block;
    margin-bottom: 6px;
    color: #334155;
    font-size: 0.82rem;
    font-weight: 700;
}

.dq-app-v103c1 .dq-action-assign-form select {
    width: 100%;
    margin-bottom: 10px;
}

@media (max-width: 780px) {
    .dq-app-v103c1 .dq-action-menu {
        position: static;
    }

    .dq-app-v103c1 .dq-action-menu-panel {
        position: fixed;
        left: 14px;
        right: 14px;
        top: auto;
        bottom: 16px;
        width: auto;
        max-width: none;
        border-radius: 20px;
        box-shadow: 0 26px 80px rgba(15, 23, 42, 0.28);
    }

    .dq-app-v103c1 .dq-action-menu-panel::before {
        display: none;
    }

    .dq-app-v103c1 .dq-more-button {
        min-height: 40px;
    }
}

/* DataQuest Lift v1.0.3C2 - corrección profesional de capa del menú Más en Órdenes de trabajo */
.dq-app-v103c2 .dq-action-cell-v103c2 {
    position: relative;
    overflow: visible;
}

.dq-app-v103c2 .dq-action-menu {
    z-index: 1;
}

.dq-app-v103c2 .dq-action-menu[open],
.dq-app-v103c2 .dq-action-row-open-v103c2 {
    position: relative;
    z-index: 100000;
}

.dq-app-v103c2 .dq-action-menu[open] .dq-more-button {
    position: relative;
    z-index: 100003;
}

.dq-app-v103c2 .dq-action-menu[open] .dq-action-menu-panel {
    z-index: 100002;
}

.dq-app-v103c2 .dq-action-menu-panel {
    max-height: min(70vh, 560px);
    overflow-y: auto;
    overscroll-behavior: contain;
}

.dq-app-v103c2.dq-workorders-actions-open-v103c2 .dq-action-menu:not([open]) {
    z-index: 0;
}

.dq-app-v103c2.dq-workorders-actions-open-v103c2 .dq-action-menu:not([open]) .dq-more-button {
    opacity: 0;
    pointer-events: none;
}

.dq-app-v103c2 .dq-action-menu-panel-fixed-v103c2 {
    position: fixed !important;
    right: auto !important;
    top: auto;
    transform: translateZ(0);
}

@media (max-width: 780px) {
    .dq-app-v103c2.dq-workorders-actions-open-v103c2 .dq-action-menu:not([open]) .dq-more-button {
        opacity: 1;
        pointer-events: auto;
    }
    .dq-app-v103c2 .dq-action-menu-panel-fixed-v103c2 {
        position: fixed !important;
        left: 14px !important;
        right: 14px !important;
        top: auto !important;
        bottom: 16px !important;
        width: auto !important;
        max-height: min(76vh, 620px);
    }
}
/* /v1.0.3C2 */

/* v1.0.3C3 - UX variables documentales copiables */
.dq-doc-config-v103c3{gap:1.1rem}.dq-doc-hero-v103c3{background:linear-gradient(135deg,#0f2747 0%,#173b68 56%,#27618f 100%)}.dq-doc-toolbox-v103c3{border-radius:24px;border:1px solid #dfe8f4;background:linear-gradient(180deg,#ffffff 0%,#f8fbff 100%);box-shadow:0 18px 38px rgba(15,35,63,.08);display:grid;gap:1rem}.dq-doc-toolbox-main-v103c3{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem}.dq-doc-toolbox-main-v103c3 h2{margin:.15rem 0 .25rem;font-size:1.35rem;color:#10233f}.dq-doc-toolbox-actions-v103c3{display:flex;align-items:flex-end;justify-content:flex-end;gap:.75rem;flex-wrap:wrap}.dq-doc-form-selector-v103c3{margin:0}.dq-doc-form-selector-v103c3 label{display:grid;gap:.35rem;min-width:310px}.dq-doc-form-selector-v103c3 span{font-size:.72rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:#586a82}.dq-doc-form-selector-v103c3 select{height:44px;border-radius:14px;border:1px solid #d7e2ef;background:#fff;color:#10233f;font-weight:800;padding:0 .9rem}.dq-doc-example-btn-v103c3{height:44px;display:inline-flex;align-items:center;justify-content:center;white-space:nowrap}.dq-doc-toolbox-note-v103c3{border:1px solid #dfe8f4;background:#fff;border-radius:16px;padding:.8rem .95rem;color:#53657d;font-size:.92rem}.dq-doc-help-card-v103c3{background:linear-gradient(180deg,#fff,#f8fbff)}.dq-doc-vars-card-v103c3{border-radius:24px;border:1px solid #dfe8f4}.dq-doc-vars-title-v103c3{align-items:flex-start}.dq-doc-vars-grid-v103c3{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}.dq-doc-var-group-v103c3{border:1px solid #dfe8f4;border-radius:20px;background:#fff;box-shadow:0 12px 26px rgba(15,35,63,.05)}.dq-doc-var-group-v103c3 summary{background:#f8fbff;min-height:58px;padding:1rem 1.05rem}.dq-doc-var-group-name-v103c3{font-size:.98rem;color:#10233f}.dq-doc-var-count-v103c3{background:#eaf2ff!important;color:#2250a5!important;font-weight:900}.dq-doc-var-group-v103c3.tone-fields summary{background:linear-gradient(90deg,#fff8f1,#fff)}.dq-doc-var-group-v103c3.tone-fields .dq-doc-var-count-v103c3{background:#fff0df!important;color:#a85512!important}.dq-doc-var-group-v103c3.tone-repair summary{background:linear-gradient(90deg,#eff6ff,#fff)}.dq-doc-var-group-v103c3.tone-repair .dq-doc-var-count-v103c3{background:#dbeafe!important;color:#1d4ed8!important}.dq-doc-var-list-v103c3{padding:1rem;gap:.65rem}.dq-doc-var-chip-v103c3{position:relative;grid-template-columns:1fr auto;align-items:center;border-radius:16px;padding:.75rem .85rem}.dq-doc-var-chip-v103c3 code{grid-column:1/2;font-size:.84rem;line-height:1.25}.dq-doc-var-chip-v103c3 small{grid-column:1/2}.dq-doc-var-chip-v103c3 em{grid-column:2/3;grid-row:1/3;font-style:normal;font-size:.72rem;font-weight:900;color:#255381;background:#eef5ff;border:1px solid #dceaff;border-radius:999px;padding:.28rem .55rem}.dq-doc-var-chip-v103c3:hover em,.dq-doc-var-chip-v103c3.copied em{color:#fff;background:#d47c37;border-color:#d47c37}.dq-copy-toast-v103c3{position:fixed;right:20px;bottom:22px;z-index:9999;max-width:min(420px,calc(100vw - 40px));background:#10233f;color:#fff;border-radius:16px;padding:.8rem 1rem;font-weight:900;box-shadow:0 18px 42px rgba(15,35,63,.26);transform:translateY(18px);opacity:0;pointer-events:none;transition:.18s ease}.dq-copy-toast-v103c3.is-visible{transform:translateY(0);opacity:1}.dq-doc-table-card-v103c{border-radius:22px}.dq-doc-config-v103c3 .actions-row{gap:.65rem;flex-wrap:wrap}
@media(max-width:900px){.dq-doc-toolbox-main-v103c3{display:grid}.dq-doc-toolbox-actions-v103c3{justify-content:stretch}.dq-doc-form-selector-v103c3,.dq-doc-form-selector-v103c3 label,.dq-doc-example-btn-v103c3{width:100%;min-width:0}.dq-doc-vars-grid-v103c3{grid-template-columns:1fr}.dq-doc-var-chip-v103c3{grid-template-columns:1fr}.dq-doc-var-chip-v103c3 em{grid-column:1/2;grid-row:auto;justify-self:start;margin-top:.25rem}.dq-copy-toast-v103c3{left:14px;right:14px;bottom:14px;max-width:none}}

/* v1.0.3C4 maintenance PDF */
.dq-app-v103c4 .dq-action-menu-item .dq-action-menu-icon{flex-shrink:0}


/* v1.0.3C5 - Hotfix menú Más estable después de descargar PDF
   Mantiene visible la acción de cada OT aunque el body conserve temporalmente
   dq-workorders-actions-open-v103c2 después de una descarga o retorno de pestaña. */
.dq-app-v103c5 .dq-action-menu { opacity: 1 !important; visibility: visible !important; }
.dq-app-v103c5 .dq-more-button { opacity: 1 !important; visibility: visible !important; pointer-events: auto !important; }
.dq-app-v103c5.dq-workorders-actions-open-v103c2 .dq-action-menu:not([open]) .dq-more-button { opacity: 1 !important; pointer-events: auto !important; visibility: visible !important; }
.dq-app-v103c5 .dq-action-menu:not([open]) .dq-action-menu-panel { display: none !important; }
.dq-app-v103c5 .dq-action-menu[open] .dq-action-menu-panel { display: block; }
.dq-app-v103c5 .dq-action-cell-v103c2 { min-width: 118px; }
.dq-app-v103c5 .dq-action-menu-panel-fixed-v103c2 { will-change: left, top; }
@media (max-width: 780px) {
  .dq-app-v103c5 .dq-action-cell-v103c2 { min-width: 92px; }
}
/* /v1.0.3C5 */

/* v1.0.3E - Diagnostico y version del sistema */
.dq-system-status-v103e{display:flex;flex-direction:column;gap:18px}.dq-system-hero-v103e{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:18px;align-items:stretch;background:linear-gradient(135deg,#10213f,#244c9b);border-radius:24px;padding:24px;color:#fff;box-shadow:0 18px 40px rgba(16,33,63,.18)}.dq-system-hero-v103e h1{margin:6px 0 8px;font-size:clamp(1.7rem,3vw,2.5rem);line-height:1.05}.dq-system-hero-v103e p{max-width:840px;margin:0;color:rgba(255,255,255,.82)}.dq-system-version-card-v103e{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.22);border-radius:20px;padding:18px;display:flex;flex-direction:column;gap:6px;backdrop-filter:blur(12px)}.dq-system-version-card-v103e small,.dq-system-version-card-v103e em{color:rgba(255,255,255,.75);font-style:normal}.dq-system-version-card-v103e strong{font-size:2rem}.dq-system-filter-v103e{display:flex;justify-content:space-between;align-items:flex-end;gap:18px}.dq-system-filter-v103e h2{margin:0 0 4px}.dq-system-filter-v103e form{min-width:320px}.dq-system-kpis-v103e{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.dq-system-kpi-v103e{border-left:5px solid #244c9b}.dq-system-kpi-v103e.warning{border-left-color:#d97706}.dq-system-kpi-v103e.success{border-left-color:#059669}.dq-system-kpi-v103e span{display:block;color:#66758d;font-size:.85rem}.dq-system-kpi-v103e strong{display:block;font-size:2rem;color:#10213f;line-height:1.1}.dq-system-kpi-v103e small{color:#66758d}.dq-system-alerts-v103e{display:grid;gap:10px}.dq-system-alert-v103e{border-radius:16px;padding:13px 15px;display:flex;justify-content:space-between;gap:14px;border:1px solid #d8e5f5;background:#fff}.dq-system-alert-v103e.success{border-color:#a7f3d0;background:#ecfdf5;color:#065f46}.dq-system-alert-v103e.warning{border-color:#fed7aa;background:#fff7ed;color:#9a3412}.dq-system-alert-v103e.danger{border-color:#fecaca;background:#fef2f2;color:#991b1b}.dq-system-grid-v103e{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(360px,.8fr);gap:18px}.dq-system-panel-v103e{overflow:hidden}.dq-system-checks-v103e{display:grid;gap:10px}.dq-system-check-v103e{display:grid;grid-template-columns:minmax(180px,.55fr) minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px;border:1px solid #d8e5f5;border-radius:14px;background:#f8fbff}.dq-system-check-v103e.fail{background:#fff7ed;border-color:#fed7aa}.dq-system-check-v103e strong{color:#10213f}.dq-system-check-v103e small,.dq-system-check-v103e span{color:#66758d}.dq-system-table-wrap-v103e{max-height:420px;overflow:auto;border:1px solid #d8e5f5;border-radius:14px}.dq-system-table-v103e{margin:0}.dq-system-table-v103e th{position:sticky;top:0;background:#f8fbff;z-index:1}.dq-system-table-v103e .right{text-align:right}.dq-system-mini-kpis-v103e{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:12px 0}.dq-system-mini-kpis-v103e div,.dq-system-mailbox-v103e div{background:#f8fbff;border:1px solid #d8e5f5;border-radius:14px;padding:12px}.dq-system-mini-kpis-v103e span,.dq-system-mailbox-v103e span{display:block;color:#66758d;font-size:.78rem}.dq-system-mini-kpis-v103e strong,.dq-system-mailbox-v103e strong{display:block;color:#10213f;word-break:break-word}.dq-system-mailbox-v103e{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:12px 0}.dq-system-list-v103e{display:grid;gap:9px;max-height:360px;overflow:auto}.dq-system-list-v103e>div{border:1px solid #d8e5f5;border-radius:14px;padding:11px;background:#fff}.dq-system-list-v103e strong,.dq-system-list-v103e span,.dq-system-list-v103e small,.dq-system-list-v103e em{display:block}.dq-system-list-v103e span{color:#10213f}.dq-system-list-v103e small{color:#66758d}.dq-system-list-v103e em{margin-top:5px;color:#991b1b;font-style:normal;font-size:.82rem}.dq-system-ops-grid-v103e{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.dq-system-ops-grid-v103e h3,.dq-system-desync-v103e h3{margin:0 0 8px;color:#10213f}.dq-system-desync-v103e{margin-top:16px;padding-top:16px;border-top:1px solid #d8e5f5}.dq-system-log-grid-v103e{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.dq-system-log-card-v103e{border:1px solid #d8e5f5;border-radius:16px;padding:14px;background:#f8fbff;display:flex;flex-direction:column;gap:8px;min-width:0}.dq-system-log-card-v103e strong{color:#10213f}.dq-system-log-card-v103e small{color:#66758d}.dq-system-log-card-v103e code{display:block;white-space:pre-wrap;word-break:break-word;background:#0f172a;color:#e2e8f0;border-radius:10px;padding:9px;font-size:.75rem;max-height:120px;overflow:auto}@media (max-width:1100px){.dq-system-hero-v103e,.dq-system-grid-v103e,.dq-system-ops-grid-v103e{grid-template-columns:1fr}.dq-system-kpis-v103e{grid-template-columns:repeat(2,minmax(0,1fr))}.dq-system-log-grid-v103e{grid-template-columns:1fr}}@media (max-width:720px){.dq-system-hero-v103e{padding:18px;border-radius:18px}.dq-system-filter-v103e{display:block}.dq-system-filter-v103e form{min-width:0;margin-top:12px}.dq-system-kpis-v103e,.dq-system-mini-kpis-v103e,.dq-system-mailbox-v103e{grid-template-columns:1fr}.dq-system-alert-v103e,.dq-system-check-v103e{display:flex;flex-direction:column;align-items:flex-start}.dq-system-table-wrap-v103e{max-height:none}}


/* v1.0.3F - Optimización profesional WebApp técnica móvil
   Principios: menos ruido, acción primaria evidente, GPS no invasivo,
   tarjetas operativas compactas y formularios más navegables en terreno. */
body.dq-app-v103f.dq-mode-tech{
    background:linear-gradient(180deg,#f3f7fc 0%,#eef4fb 100%);
}
body.dq-app-v103f.dq-mode-tech .topbar{
    position:sticky;top:0;z-index:18;background:rgba(255,255,255,.94);backdrop-filter:blur(14px);
    border-bottom:1px solid #dce8f6;box-shadow:0 8px 26px rgba(16,33,63,.06);
}
body.dq-app-v103f.dq-mode-tech .topbar h1{font-size:1.02rem;letter-spacing:-.01em;margin-bottom:.08rem;}
body.dq-app-v103f.dq-mode-tech .topbar p{font-size:.78rem;margin:0;color:#607189;}
body.dq-app-v103f .tech-home-shell-v103f{display:grid;gap:.8rem;}
body.dq-app-v103f .tech-hero-v103f{
    position:relative;overflow:hidden;border:1px solid #d6e5f6;border-radius:22px;
    background:linear-gradient(135deg,#ffffff 0%,#f8fbff 52%,#edf6ff 100%);
    box-shadow:0 14px 36px rgba(16,33,63,.075);padding:1rem;display:grid;gap:.85rem;
}
body.dq-app-v103f .tech-hero-v103f:before{content:"";position:absolute;inset:auto -90px -120px auto;width:260px;height:260px;border-radius:999px;background:rgba(36,76,155,.08);pointer-events:none;}
body.dq-app-v103f .tech-hero-head-v103f{position:relative;display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;}
body.dq-app-v103f .tech-hero-head-v103f h2{margin:.15rem 0 .08rem;color:#10213f;font-size:1.45rem;line-height:1.05;letter-spacing:-.025em;}
body.dq-app-v103f .tech-hero-head-v103f p{margin:0;color:#63738c;line-height:1.32;font-size:.92rem;max-width:48rem;}
body.dq-app-v103f .tech-mode-pill-v103f{display:inline-flex;align-items:center;gap:.35rem;padding:.34rem .56rem;border-radius:999px;background:#eaf2ff;color:#244c9b;font-weight:850;font-size:.73rem;border:1px solid #d2e3fb;white-space:nowrap;}
body.dq-app-v103f .tech-gps-card-v103f,
body.dq-app-v103f .tech-gps-inline-v102d.tech-gps-card-v103f{
    position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.7rem;padding:.72rem .78rem;
    border:1px solid #d4e4f7;border-radius:18px;background:rgba(255,255,255,.9);box-shadow:0 8px 22px rgba(16,33,63,.055);
}
body.dq-app-v103f .tech-gps-card-v103f[data-gps-state="granted"]{border-color:#a7f3d0;background:linear-gradient(135deg,#ecfdf5,#ffffff);}
body.dq-app-v103f .tech-gps-card-v103f[data-gps-state="warning"]{border-color:#fed7aa;background:linear-gradient(135deg,#fff7ed,#ffffff);}
body.dq-app-v103f .tech-gps-card-v103f[data-gps-state="denied"]{border-color:#fecaca;background:linear-gradient(135deg,#fff1f2,#ffffff);}
body.dq-app-v103f .tech-gps-card-v103f[data-gps-state="prompt"]{border-color:#bfdbfe;background:linear-gradient(135deg,#eff6ff,#ffffff);}
body.dq-app-v103f .tech-gps-copy-v103f{display:grid;gap:.08rem;min-width:0;}
body.dq-app-v103f .tech-gps-copy-v103f strong{font-size:.85rem;color:#10213f;}
body.dq-app-v103f .tech-gps-copy-v103f span{font-size:.78rem;color:#556982;white-space:normal;}
body.dq-app-v103f .tech-gps-copy-v103f small{font-size:.68rem;color:#738199;}
body.dq-app-v103f .tech-gps-card-v103f .btn{min-height:36px;padding:.48rem .68rem;white-space:nowrap;}
body.dq-app-v103f .tech-kpi-strip-v103f{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.55rem;}
body.dq-app-v103f .tech-kpi-v103f{display:grid;gap:.08rem;border:1px solid #d7e5f5;border-radius:16px;background:#fff;padding:.65rem .72rem;text-decoration:none;box-shadow:0 6px 18px rgba(16,33,63,.045);}
body.dq-app-v103f .tech-kpi-v103f strong{font-size:1.25rem;color:#10213f;line-height:1;}
body.dq-app-v103f .tech-kpi-v103f span{font-size:.73rem;color:#62728a;font-weight:850;}
body.dq-app-v103f .tech-kpi-v103f.is-danger{border-color:#fecaca;background:linear-gradient(135deg,#fff,#fff1f2);}
body.dq-app-v103f .tech-section-v103f{border:1px solid #d8e5f5;border-radius:22px;background:#fff;box-shadow:0 10px 28px rgba(16,33,63,.055);padding:.95rem;}
body.dq-app-v103f .tech-section-head-v103f{display:flex;justify-content:space-between;align-items:flex-start;gap:.75rem;margin-bottom:.75rem;}
body.dq-app-v103f .tech-section-head-v103f h2{margin:.08rem 0;color:#10213f;font-size:1.05rem;letter-spacing:-.01em;}
body.dq-app-v103f .tech-section-head-v103f p{margin:0;color:#63738c;font-size:.82rem;line-height:1.28;}
body.dq-app-v103f .tech-eyebrow{font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;font-weight:900;color:#244c9b;}
body.dq-app-v103f .tech-card-list-v103f{display:grid;gap:.72rem;}
body.dq-app-v103f .tech-order-card-v103f{position:relative;overflow:hidden;border:1px solid #d6e5f6;border-radius:20px;background:#fff;box-shadow:0 10px 26px rgba(16,33,63,.06);padding:0;}
body.dq-app-v103f .tech-order-card-v103f:before{content:"";position:absolute;inset:0 auto 0 0;width:5px;background:#244c9b;}
body.dq-app-v103f .tech-order-card-v103f.tech-type-repair:before{background:#f97316;}
body.dq-app-v103f .tech-order-card-v103f.tech-type-emergency:before{background:#dc2626;}
body.dq-app-v103f .tech-order-card-v103f.tech-type-maintenance:before{background:#2563eb;}
body.dq-app-v103f .tech-order-card-v103f.tech-type-diagnosis:before{background:#7c3aed;}
body.dq-app-v103f .tech-order-inner-v103f{padding:.85rem .85rem .8rem .95rem;display:grid;gap:.72rem;}
body.dq-app-v103f .tech-order-top-v103f{display:flex;justify-content:space-between;align-items:flex-start;gap:.65rem;}
body.dq-app-v103f .tech-order-id-v103f{display:grid;gap:.13rem;min-width:0;}
body.dq-app-v103f .tech-order-id-v103f strong{font-size:.98rem;color:#10213f;line-height:1.1;}
body.dq-app-v103f .tech-order-id-v103f span{font-size:.74rem;color:#607189;font-weight:850;}
body.dq-app-v103f .tech-order-title-v103f h3{margin:0 0 .12rem;font-size:1rem;color:#10213f;line-height:1.16;}
body.dq-app-v103f .tech-order-title-v103f p{margin:.1rem 0;color:#66758d;font-size:.82rem;line-height:1.25;}
body.dq-app-v103f .tech-order-meta-v103f{display:flex;flex-wrap:wrap;gap:.36rem;}
body.dq-app-v103f .tech-order-meta-v103f span{display:inline-flex;align-items:center;gap:.25rem;border:1px solid #dce8f6;background:#f8fbff;color:#3d506b;border-radius:999px;padding:.28rem .48rem;font-size:.72rem;font-weight:800;}
body.dq-app-v103f .tech-order-next-v103f{border:1px solid #dbe8f7;background:#f8fbff;border-radius:16px;padding:.58rem .64rem;display:flex;align-items:center;justify-content:space-between;gap:.6rem;}
body.dq-app-v103f .tech-order-next-v103f span{font-size:.69rem;color:#66758d;font-weight:900;text-transform:uppercase;letter-spacing:.05em;}
body.dq-app-v103f .tech-order-next-v103f strong{display:block;color:#10213f;font-size:.85rem;line-height:1.15;}
body.dq-app-v103f .tech-order-actions-v103f{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;}
body.dq-app-v103f .tech-order-actions-v103f .btn{min-height:42px;font-weight:900;}
body.dq-app-v103f .tech-assigned-badge-v103f{background:#ecfdf5;color:#047857;border-color:#a7f3d0;}
body.dq-app-v103f .tech-collapsible-v103f{border:1px solid #d8e5f5;border-radius:18px;background:#fff;box-shadow:0 8px 20px rgba(16,33,63,.045);overflow:hidden;}
body.dq-app-v103f .tech-collapsible-v103f > summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:.75rem;padding:.82rem .9rem;background:#f8fbff;}
body.dq-app-v103f .tech-collapsible-v103f > summary::-webkit-details-marker{display:none;}
body.dq-app-v103f .tech-collapsible-v103f > summary strong{color:#10213f;}
body.dq-app-v103f .tech-collapsible-v103f > summary small{display:block;color:#66758d;font-size:.72rem;}
body.dq-app-v103f .tech-collapsible-body-v103f{padding:.8rem .9rem;}
body.dq-app-v103f .tech-page-head-v103f{display:flex;justify-content:space-between;align-items:flex-start;gap:.75rem;border:1px solid #d8e5f5;border-radius:20px;background:linear-gradient(135deg,#fff,#f8fbff);padding:1rem;box-shadow:0 10px 26px rgba(16,33,63,.055);}
body.dq-app-v103f .tech-page-head-v103f h2{margin:.12rem 0;font-size:1.22rem;color:#10213f;letter-spacing:-.015em;}
body.dq-app-v103f .tech-tabs-v103f{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.45rem;margin:.75rem 0;}
body.dq-app-v103f .tech-tabs-v103f a{border:1px solid #d8e5f5;background:#fff;border-radius:15px;padding:.62rem .52rem;text-decoration:none;color:#10213f;display:grid;gap:.05rem;text-align:center;box-shadow:0 4px 14px rgba(16,33,63,.04);}
body.dq-app-v103f .tech-tabs-v103f a.active{background:#244c9b;color:#fff;border-color:#244c9b;box-shadow:0 10px 22px rgba(36,76,155,.22);}
body.dq-app-v103f .tech-tabs-v103f strong{font-size:.78rem;}body.dq-app-v103f .tech-tabs-v103f small{font-size:.68rem;color:inherit;opacity:.78;}
body.dq-app-v103f .tech-search-panel-v103f{border:1px solid #d8e5f5;border-radius:20px;background:#fff;padding:.85rem;box-shadow:0 8px 22px rgba(16,33,63,.05);}
body.dq-app-v103f .tech-search-row-v103f{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.55rem;align-items:end;}
body.dq-app-v103f .tech-search-row-v103f input{min-height:44px;border-radius:14px;}
body.dq-app-v103f .tech-shell-nav-v103f{position:sticky;top:0;z-index:16;display:flex;gap:.42rem;overflow-x:auto;white-space:nowrap;padding:.45rem .1rem .55rem;margin:-.2rem 0 .55rem;background:rgba(243,247,252,.92);backdrop-filter:blur(12px);scrollbar-width:none;}
body.dq-app-v103f .tech-shell-nav-v103f::-webkit-scrollbar{display:none;}
body.dq-app-v103f .tech-shell-nav-v103f a{display:inline-flex;align-items:center;border:1px solid #d7e5f5;background:#fff;color:#10213f;border-radius:999px;padding:.48rem .7rem;text-decoration:none;font-size:.78rem;font-weight:900;box-shadow:0 5px 16px rgba(16,33,63,.055);}
body.dq-app-v103f .tech-shell-nav-v103f a:first-child{background:#10213f;color:#fff;border-color:#10213f;}
body.dq-app-v103f .tech-ot-action-panel-v103f{border:1px solid #bfd8fb;background:linear-gradient(135deg,#eff6ff,#fff);border-radius:18px;padding:.78rem;margin:.82rem 0;display:grid;gap:.58rem;}
body.dq-app-v103f .tech-ot-action-panel-v103f header{display:flex;justify-content:space-between;align-items:flex-start;gap:.55rem;}
body.dq-app-v103f .tech-ot-action-panel-v103f h3{margin:0;color:#10213f;font-size:.98rem;}
body.dq-app-v103f .tech-ot-action-panel-v103f p{margin:.08rem 0 0;color:#62728a;font-size:.8rem;}
body.dq-app-v103f .tech-ot-actions-v103f{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem;}
body.dq-app-v103f .tech-ot-actions-v103f .inline-form,body.dq-app-v103f .tech-ot-actions-v103f .btn{width:100%;}
body.dq-app-v103f .tech-ot-actions-v103f .btn{min-height:44px;}
body.dq-app-v103f .tech-operational-milestones-v102d{margin:.74rem 0 .6rem;}
body.dq-app-v103f .workorder-summary-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:.55rem;}
body.dq-app-v103f .workorder-summary-grid > div{border:1px solid #dce8f6;border-radius:14px;background:#fff;padding:.62rem .68rem;box-shadow:none;}
body.dq-app-v103f .workorder-summary-grid span{font-size:.68rem;color:#718098;text-transform:uppercase;letter-spacing:.04em;font-weight:850;}
body.dq-app-v103f .workorder-summary-grid strong{font-size:.82rem;color:#10213f;}
body.dq-app-v103f .tech-runtime-form-v103f .runtime-section{border-radius:18px;overflow:hidden;}
body.dq-app-v103f .tech-runtime-form-v103f .runtime-section summary{min-height:44px;}
body.dq-app-v103f .tech-runtime-form-v103f .runtime-fields-grid-v102d{gap:.58rem!important;padding:.72rem!important;}
body.dq-app-v103f .tech-runtime-form-v103f .runtime-field{border-radius:14px;}
body.dq-app-v103f .tech-runtime-form-v103f .runtime-field label{font-size:.75rem;}
body.dq-app-v103f .tech-runtime-form-v103f input,
body.dq-app-v103f .tech-runtime-form-v103f select,
body.dq-app-v103f .tech-runtime-form-v103f textarea{min-height:40px;font-size:.9rem;border-radius:12px;}
body.dq-app-v103f .tech-runtime-form-v103f textarea{min-height:78px;}
body.dq-app-v103f .tech-repair-core-v102e3{border-radius:22px;box-shadow:0 12px 30px rgba(16,33,63,.06);}
body.dq-app-v103f .tech-repair-quick-context-v102e3{grid-template-columns:repeat(4,minmax(0,1fr));gap:.5rem;}
body.dq-app-v103f .tech-repair-quick-context-v102e3 > div{border-radius:14px;padding:.58rem .64rem;}
body.dq-app-v103f .tech-repair-item-v102e3{border-radius:16px;overflow:hidden;}
body.dq-app-v103f .tech-repair-item-summary-v102e3{min-height:50px;}
body.dq-app-v103f .tech-repair-item-grid-v102e3{gap:.58rem;}
body.dq-app-v103f .tech-repair-notes textarea{min-height:74px;}
body.dq-app-v103f .tech-repair-item-actions-v102e3{position:sticky;bottom:calc(70px + env(safe-area-inset-bottom));z-index:4;background:rgba(255,255,255,.94);backdrop-filter:blur(10px);padding:.6rem;border:1px solid #dce8f6;border-radius:14px;margin-top:.55rem;box-shadow:0 -8px 18px rgba(16,33,63,.06);}
body.dq-app-v103f .tech-repair-item-actions-v102e3 .btn{width:100%;}
body.dq-app-v103f .dq-empty-state.compact,body.dq-app-v103f .empty-state-card.compact{border:1px dashed #cbdced;background:#f8fbff;border-radius:16px;padding:.85rem;}
@media(max-width:900px){
  body.dq-app-v103f .tech-kpi-strip-v103f{grid-template-columns:repeat(4,minmax(0,1fr));}
  body.dq-app-v103f .workorder-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  body.dq-app-v103f .tech-repair-quick-context-v102e3{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media(max-width:640px){
  body.dq-app-v103f.dq-mode-tech .content{padding:.68rem .58rem calc(82px + env(safe-area-inset-bottom));}
  body.dq-app-v103f.dq-mode-tech .main{padding-bottom:calc(76px + env(safe-area-inset-bottom));}
  body.dq-app-v103f.dq-mode-tech .topbar{padding:.55rem .72rem;}
  body.dq-app-v103f.dq-mode-tech .topbar form .btn{padding:.42rem .55rem;font-size:.74rem;}
  body.dq-app-v103f .tech-hero-v103f{padding:.82rem;border-radius:19px;}
  body.dq-app-v103f .tech-hero-head-v103f h2{font-size:1.22rem;}
  body.dq-app-v103f .tech-hero-head-v103f p{font-size:.82rem;}
  body.dq-app-v103f .tech-mode-pill-v103f{font-size:.68rem;padding:.3rem .45rem;}
  body.dq-app-v103f .tech-gps-card-v103f{grid-template-columns:1fr;gap:.55rem;padding:.65rem;}
  body.dq-app-v103f .tech-gps-card-v103f .btn{width:100%;}
  body.dq-app-v103f .tech-kpi-strip-v103f{grid-template-columns:repeat(4,minmax(0,1fr));gap:.35rem;}
  body.dq-app-v103f .tech-kpi-v103f{padding:.5rem .35rem;text-align:center;border-radius:13px;}
  body.dq-app-v103f .tech-kpi-v103f strong{font-size:1.05rem;}
  body.dq-app-v103f .tech-kpi-v103f span{font-size:.62rem;}
  body.dq-app-v103f .tech-section-v103f{padding:.72rem;border-radius:19px;}
  body.dq-app-v103f .tech-section-head-v103f{align-items:center;margin-bottom:.58rem;}
  body.dq-app-v103f .tech-section-head-v103f h2{font-size:.98rem;}
  body.dq-app-v103f .tech-section-head-v103f p{font-size:.76rem;}
  body.dq-app-v103f .tech-order-inner-v103f{padding:.76rem .72rem .72rem .86rem;gap:.6rem;}
  body.dq-app-v103f .tech-order-id-v103f strong{font-size:.9rem;}
  body.dq-app-v103f .tech-order-title-v103f h3{font-size:.94rem;}
  body.dq-app-v103f .tech-order-meta-v103f span{font-size:.66rem;padding:.24rem .38rem;}
  body.dq-app-v103f .tech-order-next-v103f{display:grid;gap:.3rem;padding:.52rem;}
  body.dq-app-v103f .tech-order-actions-v103f .btn{width:100%;}
  body.dq-app-v103f .tech-assigned-badge-v103f{width:100%;justify-content:center;}
  body.dq-app-v103f .tech-page-head-v103f{padding:.82rem;border-radius:18px;}
  body.dq-app-v103f .tech-page-head-v103f h2{font-size:1.08rem;}
  body.dq-app-v103f .tech-tabs-v103f{gap:.32rem;}
  body.dq-app-v103f .tech-tabs-v103f a{padding:.48rem .32rem;border-radius:13px;}
  body.dq-app-v103f .tech-tabs-v103f strong{font-size:.68rem;}body.dq-app-v103f .tech-tabs-v103f small{font-size:.6rem;}
  body.dq-app-v103f .tech-search-row-v103f{grid-template-columns:1fr;}
  body.dq-app-v103f .tech-ot-actions-v103f{grid-template-columns:1fr;}
  body.dq-app-v103f .workorder-summary-grid{grid-template-columns:1fr 1fr;gap:.42rem;}
  body.dq-app-v103f .workorder-summary-grid > div{padding:.52rem;}
  body.dq-app-v103f .workorder-summary-grid span{font-size:.6rem;}body.dq-app-v103f .workorder-summary-grid strong{font-size:.76rem;}
  body.dq-app-v103f .tech-operational-milestones-v102d{grid-template-columns:repeat(4,minmax(0,1fr));gap:.3rem;padding:.38rem;}
  body.dq-app-v103f .tech-operational-milestones-v102d div{display:grid;grid-template-columns:1fr;text-align:center;gap:.16rem;padding:.38rem .25rem;border-radius:12px;}
  body.dq-app-v103f .tech-operational-milestones-v102d strong{margin:auto;width:24px;height:24px;border-radius:9px;font-size:.68rem;}
  body.dq-app-v103f .tech-operational-milestones-v102d span{font-size:.65rem;}body.dq-app-v103f .tech-operational-milestones-v102d small{display:none;}
  body.dq-app-v103f .tech-runtime-form-v103f .runtime-fields-grid-v102d{grid-template-columns:repeat(12,minmax(0,1fr))!important;gap:.48rem!important;padding:.58rem!important;}
  body.dq-app-v103f .tech-runtime-form-v103f .runtime-field-mobile-50-v103a{grid-column:span 6!important;}
  body.dq-app-v103f .tech-runtime-form-v103f .runtime-field-mobile-100-v103a,
  body.dq-app-v103f .tech-runtime-form-v103f .runtime-field-forced-full-v103a{grid-column:1/-1!important;}
  body.dq-app-v103f .tech-repair-item-grid-v102e3{grid-template-columns:1fr!important;}
  body.dq-app-v103f .tech-bottom-nav{height:auto;padding:.34rem .45rem calc(.34rem + env(safe-area-inset-bottom));gap:.35rem;}
  body.dq-app-v103f .tech-bottom-nav a{border-radius:14px;padding:.5rem .25rem;font-size:.7rem;}
}
/* /v1.0.3F */


/* v1.0.3F1 - Ajustes finos app técnica móvil y hotfix guardado ítems reparación */
body.dq-app-v103f1.dq-mode-tech .tech-order-card-v103f{
  background:linear-gradient(180deg,#fff,#f8fbff);
}
body.dq-app-v103f1.dq-mode-tech .tech-order-inner-v103f{
  gap:.78rem;
}
body.dq-app-v103f1.dq-mode-tech .tech-order-next-v103f{
  width:100%;
  justify-content:center;
  text-align:center;
  background:#fff;
  border-color:#d6e5f6;
  box-shadow:0 6px 16px rgba(16,33,63,.045);
}
body.dq-app-v103f1.dq-mode-tech .tech-order-next-v103f > div{
  width:100%;
}
body.dq-app-v103f1.dq-mode-tech .tech-order-actions-v103f{
  justify-content:center;
}
body.dq-app-v103f1.dq-mode-tech .tech-order-actions-v103f .btn,
body.dq-app-v103f1.dq-mode-tech .tech-order-actions-v103f .tech-assigned-badge-v103f{
  width:100%;
  max-width:280px;
  justify-content:center;
  text-align:center;
}
body.dq-app-v103f1.dq-mode-tech .tech-repair-item-actions-v102e3{
  position:relative;
  bottom:auto;
  z-index:auto;
  background:#fff;
  backdrop-filter:none;
  padding:.65rem 0 0;
  border:0;
  border-radius:0;
  margin-top:.65rem;
  box-shadow:none;
}
body.dq-app-v103f1.dq-mode-tech .tech-repair-item-actions-v102e3 .btn{
  min-height:48px;
  border-radius:14px;
}
body.dq-app-v103f1.dq-mode-tech form.is-saving-v103f1 .tech-repair-item-actions-v102e3 .btn{
  opacity:.88;
}
@media(max-width:640px){
  body.dq-app-v103f1.dq-mode-tech .tech-order-top-v103f{
    display:grid;
    grid-template-columns:1fr;
    justify-items:center;
    text-align:center;
    gap:.35rem;
  }
  body.dq-app-v103f1.dq-mode-tech .tech-order-id-v103f{
    justify-items:center;
    text-align:center;
  }
  body.dq-app-v103f1.dq-mode-tech .tech-order-id-v103f strong{
    font-size:.98rem;
    line-height:1.05;
    max-width:15rem;
  }
  body.dq-app-v103f1.dq-mode-tech .tech-order-title-v103f{
    text-align:center;
  }
  body.dq-app-v103f1.dq-mode-tech .tech-order-meta-v103f{
    justify-content:center;
  }
  body.dq-app-v103f1.dq-mode-tech .tech-order-next-v103f strong{
    font-size:.86rem;
  }
}

/* v1.0.3F2 - App tecnica movil: tarjetas colapsables, nav estable e items compactos */
body.dq-app-v103f2.dq-mode-tech{
  overflow-x:hidden;
}
body.dq-app-v103f2.dq-mode-tech .main{
  padding-bottom:calc(104px + env(safe-area-inset-bottom));
}
body.dq-app-v103f2.dq-mode-tech .content{
  padding-bottom:calc(112px + env(safe-area-inset-bottom));
}
body.dq-app-v103f2.dq-mode-tech .tech-bottom-nav{
  position:fixed!important;
  left:0!important;
  right:0!important;
  top:auto!important;
  bottom:0!important;
  z-index:9000!important;
  width:100%!important;
  transform:none!important;
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr));
  padding:.44rem .55rem calc(.46rem + env(safe-area-inset-bottom))!important;
  background:rgba(14,28,51,.97)!important;
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
  box-shadow:0 -18px 38px rgba(12,25,47,.26)!important;
}
body.dq-app-v103f2.dq-mode-tech .tech-bottom-nav a{
  min-height:48px;
  border-radius:16px;
  display:grid;
  place-items:center;
}
body.dq-app-v103f2.dq-mode-tech .tech-bottom-nav a.active{
  background:rgba(255,255,255,.13)!important;
  color:#fff!important;
}
body.dq-app-v103f2.dq-mode-tech .tech-order-card-v103f2{
  padding:0!important;
  border:1px solid #d7e5f6!important;
  background:linear-gradient(180deg,#ffffff 0%,#f8fbff 100%)!important;
  border-radius:22px!important;
  overflow:hidden;
  box-shadow:0 12px 26px rgba(16,33,63,.075)!important;
}
body.dq-app-v103f2.dq-mode-tech .tech-order-card-v103f2.priority-critical,
body.dq-app-v103f2.dq-mode-tech .tech-order-card-v103f2.priority-urgent{
  border-left:5px solid #f97316!important;
}
body.dq-app-v103f2.dq-mode-tech .tech-order-compact-v103f2{
  display:grid;
  gap:.72rem;
  padding:.9rem;
}
body.dq-app-v103f2.dq-mode-tech .tech-order-compact-main-v103f2{
  display:grid;
  gap:.45rem;
}
body.dq-app-v103f2.dq-mode-tech .tech-order-compact-top-v103f2{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:.7rem;
}
body.dq-app-v103f2.dq-mode-tech .tech-order-number-v103f2{
  color:#10213f;
  font-size:1rem;
  line-height:1.05;
  letter-spacing:-.015em;
  word-break:break-word;
}
body.dq-app-v103f2.dq-mode-tech .tech-order-compact-top-v103f2 .badge{
  flex:0 0 auto;
  max-width:48%;
  text-align:center;
}
body.dq-app-v103f2.dq-mode-tech .tech-order-compact-title-v103f2{
  display:grid;
  gap:.18rem;
  text-align:left!important;
}
body.dq-app-v103f2.dq-mode-tech .tech-order-compact-title-v103f2 span{
  color:#10213f;
  font-weight:950;
  font-size:.96rem;
  line-height:1.2;
}
body.dq-app-v103f2.dq-mode-tech .tech-order-compact-title-v103f2 small{
  color:#5d6f87;
  font-weight:850;
  font-size:.78rem;
  line-height:1.25;
}
body.dq-app-v103f2.dq-mode-tech .tech-order-actions-v103f2{
  display:grid!important;
  gap:.5rem!important;
  justify-content:stretch!important;
  text-align:center;
}
body.dq-app-v103f2.dq-mode-tech .tech-order-actions-v103f2 .btn,
body.dq-app-v103f2.dq-mode-tech .tech-order-actions-v103f2 form,
body.dq-app-v103f2.dq-mode-tech .tech-order-actions-v103f2 button,
body.dq-app-v103f2.dq-mode-tech .tech-order-actions-v103f2 .tech-assigned-badge-v103f2{
  width:100%!important;
  max-width:none!important;
  justify-content:center;
}
body.dq-app-v103f2.dq-mode-tech .tech-order-details-v103f2{
  border-top:1px solid #e1ebf7;
  padding-top:.58rem;
}
body.dq-app-v103f2.dq-mode-tech .tech-order-details-v103f2 summary{
  cursor:pointer;
  list-style:none;
  display:flex;
  justify-content:center;
  align-items:center;
  gap:.35rem;
  min-height:38px;
  border:1px solid #d8e5f5;
  border-radius:14px;
  background:#fff;
  color:#244c9b;
  font-weight:950;
  font-size:.78rem;
}
body.dq-app-v103f2.dq-mode-tech .tech-order-details-v103f2 summary::-webkit-details-marker{display:none;}
body.dq-app-v103f2.dq-mode-tech .tech-order-details-v103f2 summary:after{content:'+';font-weight:1000;}
body.dq-app-v103f2.dq-mode-tech .tech-order-details-v103f2[open] summary:after{content:'-';}
body.dq-app-v103f2.dq-mode-tech .tech-order-detail-body-v103f2{
  display:grid;
  gap:.5rem;
  padding:.68rem .05rem 0;
}
body.dq-app-v103f2.dq-mode-tech .tech-order-detail-body-v103f2>div{
  border:1px solid #e0eaf6;
  background:#fff;
  border-radius:14px;
  padding:.56rem .65rem;
  display:grid;
  gap:.12rem;
}
body.dq-app-v103f2.dq-mode-tech .tech-order-detail-body-v103f2 span{
  color:#6d7d95;
  font-weight:950;
  text-transform:uppercase;
  letter-spacing:.07em;
  font-size:.62rem;
}
body.dq-app-v103f2.dq-mode-tech .tech-order-detail-body-v103f2 strong{
  color:#10213f;
  font-size:.82rem;
  line-height:1.25;
}
body.dq-app-v103f2.dq-mode-tech .tech-order-next-v103f2{
  background:linear-gradient(135deg,#eff6ff,#fff)!important;
  border-color:#cfe0f5!important;
}
body.dq-app-v103f2.dq-mode-tech .tech-repair-item-v103f2{
  border-radius:18px!important;
  overflow:hidden;
  border-color:#dce8f6!important;
  box-shadow:0 8px 18px rgba(16,33,63,.045)!important;
}
body.dq-app-v103f2.dq-mode-tech .tech-repair-item-summary-v103f2{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto;
  gap:.65rem;
  align-items:center;
  padding:.82rem .9rem!important;
}
body.dq-app-v103f2.dq-mode-tech .tech-repair-item-summary-v103f2 strong{
  color:#10213f;
  font-size:.94rem;
  line-height:1.16;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
body.dq-app-v103f2.dq-mode-tech .tech-repair-item-summary-v103f2 small{
  margin-top:.2rem;
  color:#6b7b91;
  font-size:.76rem;
  font-weight:750;
}
body.dq-app-v103f2.dq-mode-tech .tech-repair-item-summary-v103f2 .badge{
  align-self:center;
  white-space:nowrap;
}
body.dq-app-v103f2.dq-mode-tech .tech-repair-item-content-v103f2{
  display:grid;
  gap:.7rem;
  padding:.75rem .9rem .9rem!important;
}
body.dq-app-v103f2.dq-mode-tech .tech-repair-item-original-v103f2{
  border:1px solid #e0eaf6;
  border-radius:14px;
  background:#f8fbff;
  overflow:hidden;
}
body.dq-app-v103f2.dq-mode-tech .tech-repair-item-original-v103f2 summary{
  cursor:pointer;
  padding:.6rem .72rem;
  font-size:.74rem;
  font-weight:950;
  color:#244c9b;
}
body.dq-app-v103f2.dq-mode-tech .tech-repair-item-original-v103f2 p{
  padding:0 .72rem .72rem;
  margin:0;
  font-size:.8rem;
  line-height:1.35;
}
body.dq-app-v103f2.dq-mode-tech .tech-repair-last-note-v103f2{
  border:1px solid #dce8f6;
  border-radius:14px;
  background:#fff;
  padding:.62rem .72rem;
}
body.dq-app-v103f2.dq-mode-tech .tech-repair-last-note-v103f2 span{
  display:block;
  color:#6b7b91;
  font-size:.64rem;
  text-transform:uppercase;
  letter-spacing:.07em;
  font-weight:950;
  margin-bottom:.25rem;
}
body.dq-app-v103f2.dq-mode-tech .tech-repair-last-note-v103f2 p{
  margin:0;
  color:#425269;
  font-size:.8rem;
  line-height:1.35;
}
body.dq-app-v103f2.dq-mode-tech .tech-repair-item-grid-v102e3{
  gap:.62rem!important;
}
body.dq-app-v103f2.dq-mode-tech .tech-repair-item-actions-v102e3{
  position:relative!important;
  bottom:auto!important;
  z-index:auto!important;
  background:transparent!important;
  box-shadow:none!important;
  padding:.25rem 0 0!important;
  border:0!important;
  margin-top:.15rem!important;
}
body.dq-app-v103f2.dq-mode-tech .tech-repair-item-actions-v102e3 .btn{
  width:100%!important;
  min-height:48px;
  border-radius:15px;
}
@media(max-width:640px){
  body.dq-app-v103f2.dq-mode-tech .tech-order-inner-v103f,
  body.dq-app-v103f2.dq-mode-tech .tech-order-top-v103f,
  body.dq-app-v103f2.dq-mode-tech .tech-order-title-v103f,
  body.dq-app-v103f2.dq-mode-tech .tech-order-meta-v103f,
  body.dq-app-v103f2.dq-mode-tech .tech-order-next-v103f{
    text-align:left!important;
    justify-items:stretch!important;
  }
  body.dq-app-v103f2.dq-mode-tech .tech-repair-item-summary-v103f2{
    grid-template-columns:minmax(0,1fr) auto;
    padding:.78rem .78rem!important;
  }
  body.dq-app-v103f2.dq-mode-tech .tech-repair-item-summary-v103f2 .badge{
    font-size:.68rem;
    padding:.32rem .48rem;
  }
}
/* /v1.0.3F2 */
body.dq-app-v103f2.dq-mode-tech .main,
body.dq-app-v103f2.dq-mode-tech .content{
  padding-bottom:calc(var(--dq-tech-bottom-nav-height, 78px) + 34px + env(safe-area-inset-bottom))!important;
}

/* v1.0.3F3 - Correccion fina tarjetas tecnicas movil: ancho real y detalles en dos columnas */
body.dq-app-v103f3.dq-mode-tech .tech-order-card-v103f2{
  display:block!important;
  grid-template-columns:none!important;
  width:100%!important;
  min-width:0!important;
  padding:0!important;
  overflow:hidden!important;
}
body.dq-app-v103f3.dq-mode-tech .tech-order-card-v103f2 > .tech-order-compact-v103f2{
  width:100%!important;
  min-width:0!important;
  box-sizing:border-box!important;
}
body.dq-app-v103f3.dq-mode-tech .tech-order-compact-v103f2{
  padding:1rem 1rem 1rem 1.05rem!important;
  display:grid!important;
  gap:.74rem!important;
}
body.dq-app-v103f3.dq-mode-tech .tech-order-compact-main-v103f2{
  width:100%!important;
  min-width:0!important;
}
body.dq-app-v103f3.dq-mode-tech .tech-order-compact-top-v103f2{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  align-items:center!important;
  gap:.7rem!important;
  width:100%!important;
}
body.dq-app-v103f3.dq-mode-tech .tech-order-number-v103f2{
  white-space:nowrap!important;
  word-break:normal!important;
  overflow-wrap:normal!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  max-width:100%!important;
  font-size:.96rem!important;
  line-height:1.1!important;
  letter-spacing:-.02em!important;
}
body.dq-app-v103f3.dq-mode-tech .tech-order-compact-top-v103f2 .badge{
  max-width:none!important;
  white-space:nowrap!important;
  font-size:.72rem!important;
  padding:.36rem .58rem!important;
}
body.dq-app-v103f3.dq-mode-tech .tech-order-compact-title-v103f2{
  width:100%!important;
  min-width:0!important;
  gap:.22rem!important;
}
body.dq-app-v103f3.dq-mode-tech .tech-order-compact-title-v103f2 span{
  font-size:1rem!important;
  line-height:1.15!important;
  max-width:100%!important;
}
body.dq-app-v103f3.dq-mode-tech .tech-order-compact-title-v103f2 small{
  font-size:.78rem!important;
  line-height:1.22!important;
}
body.dq-app-v103f3.dq-mode-tech .tech-order-actions-v103f2{
  width:100%!important;
  display:grid!important;
  grid-template-columns:1fr!important;
  gap:.48rem!important;
  justify-items:stretch!important;
}
body.dq-app-v103f3.dq-mode-tech .tech-order-actions-v103f2 .btn,
body.dq-app-v103f3.dq-mode-tech .tech-order-actions-v103f2 button,
body.dq-app-v103f3.dq-mode-tech .tech-order-actions-v103f2 form,
body.dq-app-v103f3.dq-mode-tech .tech-order-actions-v103f2 .tech-assigned-badge-v103f2{
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  box-sizing:border-box!important;
}
body.dq-app-v103f3.dq-mode-tech .tech-order-actions-v103f2 .btn,
body.dq-app-v103f3.dq-mode-tech .tech-order-actions-v103f2 button{
  min-height:44px!important;
  border-radius:15px!important;
  font-size:.84rem!important;
  line-height:1.1!important;
}
body.dq-app-v103f3.dq-mode-tech .tech-assigned-badge-v103f2{
  min-height:34px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  border-radius:999px!important;
  font-size:.78rem!important;
}
body.dq-app-v103f3.dq-mode-tech .tech-order-details-v103f2{
  width:100%!important;
}
body.dq-app-v103f3.dq-mode-tech .tech-order-details-v103f2 summary{
  width:100%!important;
  min-height:40px!important;
  box-sizing:border-box!important;
}
body.dq-app-v103f3.dq-mode-tech .tech-order-detail-body-v103f2{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:.55rem!important;
  width:100%!important;
  padding:.7rem 0 0!important;
}
body.dq-app-v103f3.dq-mode-tech .tech-order-detail-body-v103f2 > div{
  min-width:0!important;
  padding:.58rem .62rem!important;
  border-radius:14px!important;
}
body.dq-app-v103f3.dq-mode-tech .tech-order-detail-body-v103f2 strong{
  overflow-wrap:anywhere!important;
  font-size:.8rem!important;
}
body.dq-app-v103f3.dq-mode-tech .tech-order-next-v103f2{
  grid-column:1 / -1!important;
}
body.dq-app-v103f3.dq-mode-tech .tech-order-card-v103f2:before{
  width:5px!important;
}
@media(max-width:380px){
  body.dq-app-v103f3.dq-mode-tech .tech-order-detail-body-v103f2{
    grid-template-columns:1fr!important;
  }
  body.dq-app-v103f3.dq-mode-tech .tech-order-number-v103f2{
    font-size:.88rem!important;
  }
  body.dq-app-v103f3.dq-mode-tech .tech-order-compact-top-v103f2 .badge{
    font-size:.66rem!important;
    padding:.32rem .48rem!important;
  }
}
/* /v1.0.3F3 */


/* v1.0.3F4 - Limpieza cabeceras app tecnica: menos texto, sin botones Inicio redundantes y GPS solo donde aporta */
body.dq-app-v103f4.dq-mode-tech .tech-hero-head-v103f{
  align-items:flex-start!important;
  gap:.85rem!important;
}
body.dq-app-v103f4.dq-mode-tech .tech-hero-head-v103f h2{
  margin-bottom:0!important;
  line-height:1.08!important;
}
body.dq-app-v103f4.dq-mode-tech .tech-hero-head-v103f p{
  display:none!important;
}
body.dq-app-v103f4.dq-mode-tech .tech-logout-form-v103f4{
  margin:0!important;
  flex:0 0 auto!important;
}
body.dq-app-v103f4.dq-mode-tech .tech-logout-btn-v103f4{
  white-space:nowrap!important;
  min-height:42px!important;
  border-radius:16px!important;
  padding:.62rem .78rem!important;
  font-size:.78rem!important;
}
body.dq-app-v103f4.dq-mode-tech .tech-page-head-v103f{
  padding:1rem!important;
  margin-bottom:.8rem!important;
}
body.dq-app-v103f4.dq-mode-tech .tech-page-head-v103f h2{
  margin:.08rem 0 .18rem!important;
}
body.dq-app-v103f4.dq-mode-tech .tech-page-head-v103f .btn[href$="/tech"],
body.dq-app-v103f4.dq-mode-tech .tech-page-head-v103f > a.btn{
  display:none!important;
}
body.dq-app-v103f4.dq-mode-tech .tech-tabs-v103f{
  margin-top:.35rem!important;
}
body.dq-app-v103f4.dq-mode-tech .tech-section-v103f:first-of-type,
body.dq-app-v103f4.dq-mode-tech .tech-search-panel-v103f:first-of-type{
  margin-top:.55rem!important;
}
@media(max-width:640px){
  body.dq-app-v103f4.dq-mode-tech .tech-hero-head-v103f{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    align-items:start!important;
  }
  body.dq-app-v103f4.dq-mode-tech .tech-hero-head-v103f h2{
    font-size:1.42rem!important;
  }
  body.dq-app-v103f4.dq-mode-tech .tech-logout-btn-v103f4{
    min-height:38px!important;
    padding:.5rem .62rem!important;
    font-size:.72rem!important;
  }
  body.dq-app-v103f4.dq-mode-tech .tech-page-head-v103f{
    display:block!important;
  }
  body.dq-app-v103f4.dq-mode-tech .tech-page-head-v103f .muted{
    font-size:.9rem!important;
    line-height:1.32!important;
  }
}
/* /v1.0.3F4 */

/* v1.0.4A - Automatizaciones operativas base */
.dq-app-v104a .dq-automation-page-v104a{display:flex;flex-direction:column;gap:18px;max-width:1480px;margin:0 auto 48px;}
.dq-app-v104a .dq-automation-hero-v104a{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:18px;align-items:stretch;padding:24px;border:1px solid #d8e5f5;border-radius:24px;background:linear-gradient(135deg,#ffffff 0%,#f7fbff 55%,#eef5ff 100%);box-shadow:0 18px 45px rgba(16,33,63,.08);}
.dq-app-v104a .dq-automation-hero-copy-v104a h1{margin:4px 0 8px;font-size:34px;letter-spacing:-.04em;color:#10213f;}
.dq-app-v104a .dq-automation-hero-copy-v104a p{max-width:780px;margin:0;color:#66758d;font-size:16px;line-height:1.55;}
.dq-app-v104a .dq-automation-hero-panel-v104a{display:flex;flex-direction:column;justify-content:space-between;gap:14px;border-radius:20px;padding:18px;background:#10213f;color:#fff;box-shadow:inset 0 0 0 1px rgba(255,255,255,.08);}
.dq-app-v104a .dq-automation-hero-panel-v104a strong{font-size:18px;}
.dq-app-v104a .dq-automation-hero-panel-v104a span{color:#cbd9ef;line-height:1.45;}
.dq-app-v104a .dq-automation-hero-panel-v104a .btn{justify-content:center;}
.dq-app-v104a .dq-kpi-grid-v104a{grid-template-columns:repeat(4,minmax(0,1fr));}
.dq-app-v104a .dq-automation-blueprint-v104a{display:grid;grid-template-columns:330px minmax(0,1fr);gap:20px;align-items:center;padding:22px;border-radius:22px;}
.dq-app-v104a .dq-automation-blueprint-v104a h2{margin:4px 0 8px;color:#10213f;}
.dq-app-v104a .dq-automation-steps-v104a{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;}
.dq-app-v104a .dq-automation-steps-v104a div{position:relative;min-height:116px;border:1px solid #d8e5f5;border-radius:18px;background:#f8fbff;padding:14px;display:flex;flex-direction:column;gap:6px;justify-content:center;}
.dq-app-v104a .dq-automation-steps-v104a b{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:#244c9b;color:#fff;font-size:14px;}
.dq-app-v104a .dq-automation-steps-v104a strong{color:#10213f;font-size:15px;}
.dq-app-v104a .dq-automation-steps-v104a small{color:#66758d;line-height:1.3;}
.dq-app-v104a .dq-process-grid-v104a{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;}
.dq-app-v104a .dq-process-card-v104a{display:flex;flex-direction:column;gap:8px;min-height:150px;padding:16px;border:1px solid #d8e5f5;border-radius:20px;background:#fff;text-decoration:none;color:#10213f;box-shadow:0 10px 28px rgba(16,33,63,.06);transition:transform .16s ease, box-shadow .16s ease, border-color .16s ease;}
.dq-app-v104a .dq-process-card-v104a:hover{transform:translateY(-2px);box-shadow:0 14px 34px rgba(16,33,63,.1);border-color:#a8c4ef;}
.dq-app-v104a .dq-process-card-v104a.is-active{border-color:#244c9b;background:linear-gradient(180deg,#ffffff,#eef5ff);box-shadow:0 12px 32px rgba(36,76,155,.16);}
.dq-app-v104a .dq-process-icon-v104a{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;background:#eef5ff;font-size:22px;}
.dq-app-v104a .dq-process-card-v104a strong{font-size:15px;line-height:1.15;}
.dq-app-v104a .dq-process-card-v104a small{color:#66758d;line-height:1.35;}
.dq-app-v104a .dq-automation-table-card-v104a{border-radius:22px;padding:18px;}
.dq-app-v104a .dq-automation-table-v104a td small{display:block;color:#66758d;margin-top:4px;}
.dq-app-v104a .dq-event-state-v104a{display:inline-flex;margin-left:6px;padding:4px 8px;border-radius:999px;font-size:11px;font-weight:900;letter-spacing:.02em;vertical-align:middle;}
.dq-app-v104a .dq-event-state-v104a.is-available{background:#ecfdf5;color:#047857;border:1px solid #a7f3d0;}
.dq-app-v104a .dq-event-state-v104a.is-soon{background:#fff7ed;color:#b45309;border:1px solid #fed7aa;}
.dq-app-v104a .dq-row-actions-v104a .dq-icon-action{min-width:auto;padding:8px 12px;border-radius:12px;font-weight:800;text-decoration:none;}
.dq-app-v104a .dq-automation-editor-v104a{display:grid;grid-template-columns:320px minmax(0,1fr);gap:22px;padding:0;overflow:hidden;border-radius:24px;}
.dq-app-v104a .dq-editor-guide-v104a{padding:24px;background:linear-gradient(180deg,#10213f,#163762);color:#fff;display:flex;flex-direction:column;gap:14px;}
.dq-app-v104a .dq-editor-guide-v104a h2{margin:0;color:#fff;}
.dq-app-v104a .dq-editor-guide-v104a p{margin:0;color:#d8e5f5;line-height:1.5;}
.dq-app-v104a .dq-guide-callout-v104a{border:1px solid rgba(255,255,255,.16);border-radius:18px;padding:14px;background:rgba(255,255,255,.08);display:flex;flex-direction:column;gap:4px;}
.dq-app-v104a .dq-guide-callout-v104a span{color:#cbd9ef;line-height:1.35;}
.dq-app-v104a .dq-guide-callout-v104a.muted-box{background:rgba(255,255,255,.04);}
.dq-app-v104a .dq-automation-form-v104a{padding:22px;display:flex;flex-direction:column;gap:18px;}
.dq-app-v104a .dq-automation-form-v104a .dq-form-section{border:1px solid #d8e5f5;border-radius:20px;padding:18px;background:#fff;}
.dq-app-v104a .dq-automation-form-v104a .dq-form-section h3{margin:0 0 14px;color:#10213f;font-size:17px;}
.dq-app-v104a .dq-editor-placeholder-v104a{display:flex;justify-content:space-between;gap:18px;align-items:center;border-radius:22px;padding:22px;}
.dq-app-v104a .dq-bottom-grid-v104a{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(320px,.5fr);gap:18px;align-items:start;}
.dq-app-v104a .dq-history-card-v104a,.dq-app-v104a .dq-variable-card-v104a{border-radius:22px;padding:18px;}
.dq-app-v104a .dq-variable-card-v104a code{display:inline-flex;margin:4px;padding:7px 10px;border-radius:10px;background:#eef5ff;color:#244c9b;font-weight:800;}
@media (max-width:1100px){.dq-app-v104a .dq-automation-hero-v104a,.dq-app-v104a .dq-automation-blueprint-v104a,.dq-app-v104a .dq-automation-editor-v104a,.dq-app-v104a .dq-bottom-grid-v104a{grid-template-columns:1fr}.dq-app-v104a .dq-process-grid-v104a{grid-template-columns:repeat(3,minmax(0,1fr))}.dq-app-v104a .dq-automation-steps-v104a{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:760px){.dq-app-v104a .dq-automation-page-v104a{gap:14px;margin-bottom:24px}.dq-app-v104a .dq-automation-hero-v104a{padding:18px;border-radius:20px}.dq-app-v104a .dq-automation-hero-copy-v104a h1{font-size:28px}.dq-app-v104a .dq-kpi-grid-v104a{grid-template-columns:repeat(2,minmax(0,1fr))}.dq-app-v104a .dq-process-grid-v104a{grid-template-columns:1fr 1fr}.dq-app-v104a .dq-automation-steps-v104a{grid-template-columns:1fr}.dq-app-v104a .dq-automation-editor-v104a{border-radius:20px}.dq-app-v104a .dq-editor-guide-v104a{padding:18px}.dq-app-v104a .dq-automation-form-v104a{padding:14px}.dq-app-v104a .dq-editor-placeholder-v104a{align-items:flex-start;flex-direction:column}.dq-app-v104a .dq-table-toolbar{align-items:flex-start;flex-direction:column}}

/* v1.0.4A1 - UX profesional de automatizaciones */
.dq-app-v104a1 .dq-automation-page-v104a1{max-width:none;width:100%;margin:0 0 48px;gap:16px;}
.dq-app-v104a1 .dq-automation-hero-v104a1{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:22px 24px;border-radius:22px;}
.dq-app-v104a1 .dq-automation-hero-v104a1 h1{font-size:32px;margin-bottom:6px;}
.dq-app-v104a1 .dq-automation-hero-actions-v104a1{display:flex;gap:10px;align-items:center;flex-wrap:wrap;justify-content:flex-end;}
.dq-app-v104a1 .dq-kpi-grid-v104a1{grid-template-columns:repeat(4,minmax(0,1fr));}
.dq-app-v104a1 .dq-help-steps-v104a1{padding:0;border-radius:20px;overflow:hidden;}
.dq-app-v104a1 .dq-help-steps-v104a1 summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:16px;align-items:center;padding:16px 20px;color:#10213f;}
.dq-app-v104a1 .dq-help-steps-v104a1 summary::-webkit-details-marker{display:none;}
.dq-app-v104a1 .dq-help-steps-v104a1 summary span{color:#66758d;font-weight:700;}
.dq-app-v104a1 .dq-help-steps-v104a1 ol{margin:0;padding:0 20px 18px;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;counter-reset:steps;}
.dq-app-v104a1 .dq-help-steps-v104a1 li{list-style:none;border:1px solid #d8e5f5;border-radius:16px;background:#f8fbff;padding:12px;display:flex;flex-direction:column;gap:4px;}
.dq-app-v104a1 .dq-help-steps-v104a1 li b{color:#244c9b;font-weight:900;}
.dq-app-v104a1 .dq-help-steps-v104a1 li span{color:#66758d;line-height:1.35;}
.dq-app-v104a1 .dq-process-filter-panel-v104a1{display:flex;flex-direction:column;gap:12px;}
.dq-app-v104a1 .dq-process-filter-head-v104a1{display:flex;justify-content:space-between;gap:18px;align-items:flex-end;}
.dq-app-v104a1 .dq-process-filter-head-v104a1 h2{margin:3px 0 0;color:#10213f;font-size:25px;}
.dq-app-v104a1 .dq-process-filter-v104a1{min-width:150px;padding:12px 16px;border-radius:16px;border:1px solid #d8e5f5;background:#fff;text-decoration:none;color:#10213f;display:flex;flex-direction:column;align-items:flex-end;box-shadow:0 8px 24px rgba(16,33,63,.06);}
.dq-app-v104a1 .dq-process-filter-v104a1.is-active{background:#10213f;color:#fff;border-color:#10213f;}
.dq-app-v104a1 .dq-process-filter-v104a1 small{color:inherit;opacity:.75;}
.dq-app-v104a1 .dq-process-grid-v104a1{grid-template-columns:repeat(6,minmax(0,1fr));}
.dq-app-v104a1 .dq-process-card-v104a1{min-height:138px;box-shadow:0 8px 24px rgba(16,33,63,.05);}
.dq-app-v104a1 .dq-process-card-v104a1 em{margin-top:auto;font-style:normal;font-size:12px;font-weight:900;color:#244c9b;background:#eef5ff;border:1px solid #d8e5f5;border-radius:999px;padding:6px 8px;width:max-content;max-width:100%;}
.dq-app-v104a1 .dq-selected-process-v104a1{display:grid;grid-template-columns:300px minmax(0,1fr);gap:20px;align-items:start;border-radius:22px;padding:20px;}
.dq-app-v104a1 .dq-selected-process-v104a1 h2{margin:4px 0 8px;color:#10213f;}
.dq-app-v104a1 .dq-selected-process-v104a1 p{margin:0;color:#66758d;line-height:1.5;}
.dq-app-v104a1 .dq-process-summary-grid-v104a1{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;}
.dq-app-v104a1 .dq-process-summary-grid-v104a1 div{border:1px solid #d8e5f5;border-radius:18px;background:#f8fbff;padding:14px;display:flex;flex-direction:column;gap:8px;}
.dq-app-v104a1 .dq-process-summary-grid-v104a1 strong{color:#10213f;font-size:14px;text-transform:uppercase;letter-spacing:.08em;}
.dq-app-v104a1 .dq-process-summary-grid-v104a1 span{color:#33435c;line-height:1.35;}
.dq-app-v104a1 .dq-automation-table-card-v104a1{padding:18px 20px;border-radius:22px;}
.dq-app-v104a1 .dq-bottom-grid-v104a1{grid-template-columns:minmax(0,1.5fr) minmax(300px,.5fr);}
.dq-app-v104a1 .dq-automation-editor-page-v104a1{width:100%;max-width:none;margin:0 0 48px;display:flex;flex-direction:column;gap:16px;}
.dq-app-v104a1 .dq-editor-topbar-v104a1{display:flex;align-items:flex-start;gap:18px;border:1px solid #d8e5f5;border-radius:22px;background:#fff;padding:20px 22px;box-shadow:0 12px 32px rgba(16,33,63,.06);}
.dq-app-v104a1 .dq-editor-topbar-v104a1>div{min-width:0;}
.dq-app-v104a1 .dq-editor-topbar-v104a1 h1{margin:3px 0 6px;color:#10213f;font-size:32px;letter-spacing:-.035em;}
.dq-app-v104a1 .dq-editor-topbar-v104a1 p{margin:0;color:#66758d;line-height:1.5;}
.dq-app-v104a1 .dq-editor-progress-v104a1{margin:0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;}
.dq-app-v104a1 .dq-editor-progress-v104a1 li{list-style:none;border:1px solid #d8e5f5;border-radius:16px;background:#f8fbff;padding:12px 14px;display:flex;align-items:center;gap:10px;color:#10213f;font-weight:900;}
.dq-app-v104a1 .dq-editor-progress-v104a1 b{width:30px;height:30px;border-radius:50%;background:#244c9b;color:#fff;display:grid;place-items:center;flex:0 0 auto;}
.dq-app-v104a1 .dq-automation-form-v104a1{display:flex;flex-direction:column;gap:16px;}
.dq-app-v104a1 .dq-editor-section-v104a1{border-radius:22px;padding:20px;display:flex;flex-direction:column;gap:16px;}
.dq-app-v104a1 .dq-section-heading-v104a1{display:flex;gap:13px;align-items:flex-start;}
.dq-app-v104a1 .dq-section-heading-v104a1>b{width:34px;height:34px;border-radius:12px;background:#eef5ff;color:#244c9b;display:grid;place-items:center;font-weight:900;}
.dq-app-v104a1 .dq-section-heading-v104a1 h2{margin:0 0 4px;color:#10213f;font-size:21px;}
.dq-app-v104a1 .dq-section-heading-v104a1 p{margin:0;color:#66758d;line-height:1.45;}
.dq-app-v104a1 .dq-context-strip-v104a1,.dq-app-v104a1 .dq-alert-card-v104a1{border:1px solid #d8e5f5;border-radius:16px;background:#f8fbff;color:#33435c;padding:12px 14px;line-height:1.45;}
.dq-app-v104a1 .dq-alert-card-v104a1{background:#fff7ed;border-color:#fed7aa;color:#8a4b10;}
.dq-app-v104a1 .dq-variable-helper-v104a1{border:1px solid #d8e5f5;border-radius:18px;background:#f8fbff;overflow:hidden;}
.dq-app-v104a1 .dq-variable-helper-v104a1 summary{cursor:pointer;padding:13px 15px;font-weight:900;color:#10213f;}
.dq-app-v104a1 .dq-variable-helper-v104a1 div{padding:0 15px 15px;display:flex;gap:7px;flex-wrap:wrap;}
.dq-app-v104a1 .dq-variable-chip-v104a1{border:1px solid #c8d9f2;background:#fff;color:#244c9b;border-radius:999px;padding:7px 10px;font-weight:900;cursor:pointer;}
.dq-app-v104a1 .dq-variable-chip-v104a1:hover{background:#eef5ff;}
.dq-app-v104a1 .dq-attachment-grid-v104a1{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;}
.dq-app-v104a1 .dq-switch-card-v104a1{margin-top:2px;}
.dq-app-v104a1 .dq-editor-actions-v104a1{position:sticky;bottom:0;z-index:20;background:rgba(246,249,252,.94);backdrop-filter:blur(10px);display:flex;justify-content:flex-end;gap:10px;padding:14px;border:1px solid #d8e5f5;border-radius:18px;box-shadow:0 -8px 28px rgba(16,33,63,.08);}
@media (max-width:1200px){.dq-app-v104a1 .dq-process-grid-v104a1{grid-template-columns:repeat(3,minmax(0,1fr));}.dq-app-v104a1 .dq-help-steps-v104a1 ol,.dq-app-v104a1 .dq-editor-progress-v104a1{grid-template-columns:repeat(3,minmax(0,1fr));}.dq-app-v104a1 .dq-selected-process-v104a1,.dq-app-v104a1 .dq-bottom-grid-v104a1{grid-template-columns:1fr;}.dq-app-v104a1 .dq-process-summary-grid-v104a1{grid-template-columns:1fr 1fr;}}
@media (max-width:760px){.dq-app-v104a1 .dq-automation-hero-v104a1,.dq-app-v104a1 .dq-editor-topbar-v104a1{flex-direction:column;align-items:stretch;}.dq-app-v104a1 .dq-kpi-grid-v104a1{grid-template-columns:repeat(2,minmax(0,1fr));}.dq-app-v104a1 .dq-process-grid-v104a1,.dq-app-v104a1 .dq-help-steps-v104a1 ol,.dq-app-v104a1 .dq-editor-progress-v104a1,.dq-app-v104a1 .dq-process-summary-grid-v104a1,.dq-app-v104a1 .dq-attachment-grid-v104a1{grid-template-columns:1fr;}.dq-app-v104a1 .dq-process-filter-head-v104a1{align-items:stretch;flex-direction:column;}.dq-app-v104a1 .dq-process-filter-v104a1{align-items:flex-start;}.dq-app-v104a1 .dq-editor-actions-v104a1{position:static;flex-direction:column;}.dq-app-v104a1 .dq-editor-actions-v104a1 .btn{width:100%;justify-content:center;}}
.dq-app-v104a1 .dq-variable-chip-v104a1.is-copied{background:#ecfdf5;border-color:#a7f3d0;color:#047857;}


/* v1.0.4B - Alertas por cambio de estado operativo */
.dq-app-v104b .dq-process-summary-grid-v104a1 span{min-height:0;}
.dq-app-v104b .dq-event-state-v104a.is-available{font-weight:900;}
.dq-app-v104b .dq-variable-chip-v104a1[data-dq-copy-variable='{{equipo.estado_anterior}}'],
.dq-app-v104b .dq-variable-chip-v104a1[data-dq-copy-variable='{{equipo.estado_final}}'],
.dq-app-v104b .dq-variable-chip-v104a1[data-dq-copy-variable='{{equipo.cambio_estado}}']{border-color:#a7f3d0;background:#ecfdf5;color:#047857;}

/* v1.0.4B1 - cierre tecnico limpio y condicion sin cambio operativo */
.dq-app-v104b1 .dq-automation-clean-tech-message-v104b1{display:none;}


/* v1.0.4B2 - cola de automatizaciones en segundo plano */
.dq-app-v104b2 .dq-automation-queue-note-v104b2{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    flex-wrap:wrap;
    margin:12px 0 18px;
    padding:14px 16px;
    border:1px solid rgba(37,99,235,.16);
    border-radius:18px;
    background:linear-gradient(135deg, rgba(239,246,255,.95), rgba(255,255,255,.92));
    box-shadow:0 10px 30px rgba(15,23,42,.06);
    color:#334155;
}
.dq-app-v104b2 .dq-automation-queue-note-v104b2 strong{color:#0f172a;font-size:14px;}
.dq-app-v104b2 .dq-automation-queue-note-v104b2 span{font-size:13px;flex:1;min-width:220px;}
.dq-app-v104b2 .dq-automation-queue-note-v104b2 small{font-size:12px;color:#64748b;background:#fff;border:1px solid rgba(148,163,184,.25);border-radius:999px;padding:6px 10px;}
@media (max-width: 760px){
    .dq-app-v104b2 .dq-automation-queue-note-v104b2{align-items:flex-start;flex-direction:column;}
    .dq-app-v104b2 .dq-automation-queue-note-v104b2 small{border-radius:12px;}
}

/* v1.0.5-prep - Saneamiento de estados operativos para Dashboard Operativo */
.dq-app-v105prep .operational-temporary_out_of_service { background:#f5f3ff; color:#6d28d9; }
.dq-app-v105prep .operational-stopped_modernization { background:#f3e8ff; color:#5b21b6; }
