/* ================================================
   UI ROLE BASED PRICING - MODERN & CLEAN
   ================================================ */

/* Les sélecteurs (Correction des flèches) */
#simproba_discount_fields_container select,
#simproba_apply_to {
    appearance: none;
    -webkit-appearance: none;
    background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2212%22%20height%3D%2212%22%20viewBox%3D%220%200%2012%2012%22%3E%3Cpath%20fill%3D%22%23666%22%20d%3D%22M10.293%203.293L6%207.586%201.707%203.293A1%201%200%2000.293%204.707l5%205a1%201%200%20001.414%200l5-5a1%201%200%2010-1.414-1.414z%22%2F%3E%3C%2Fsvg%3E") !important;
    background-repeat: no-repeat !important;
    background-position: right 12px center !important;
    background-size: 12px !important;
    padding-right: 35px !important;
    border: 1px solid #8c8f94;
    border-radius: 4px;
    height: 35px;
    background-color: #fff;
}

/* L'input Number (Plus moderne) */
#simproba_discount_fields_container input[type="number"] {
    height: 35px;
    border: 1px solid #8c8f94;
    border-radius: 4px;
    padding: 0 10px;
    font-size: 14px;
    box-shadow: inset 0 1px 2px rgba(0,0,0,0.07);
    transition: border-color 0.1s ease-in-out;
}

#simproba_discount_fields_container input[type="number"]:focus {
    border-color: #2271b1;
    outline: 2px solid transparent;
    box-shadow: 0 0 0 1px #2271b1;
}

/* Toggle Switch (Version Moderne iOS-style) */
.toggle-switch {
    position: relative;
    display: inline-block;
    width: 46px;
    height: 24px;
    vertical-align: middle;
    margin-left: 10px;
}

.toggle-switch input {
    opacity: 0;
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    margin: 0;
    cursor: pointer;
    z-index: 2;
}

.toggle-switch .slider {
    position: absolute;
    cursor: pointer;
    top: 0; left: 0; right: 0; bottom: 0;
    background-color: #dcdcde;
    transition: .3s;
    border-radius: 34px;
    pointer-events: none;
    z-index: 1;
}

.toggle-switch .slider:before {
    position: absolute;
    content: "";
    height: 18px;
    width: 18px;
    left: 3px;
    bottom: 3px;
    background-color: white;
    transition: .3s;
    border-radius: 50%;
    box-shadow: 0 1px 3px rgba(0,0,0,0.2);
}

.toggle-switch input:checked + .slider {
    background-color: #00a0d2; /* Bleu WordPress */
}

.toggle-switch input:checked + .slider:before {
    transform: translateX(22px);
}

/* Alignement des lignes dans le container */
.simproba-role-field {
    display: flex;
    align-items: center;
    padding: 12px 0;
    border-bottom: 1px solid #eee;
}

.simproba-role-field label {
    display: flex;
    width: 100%;
    align-items: center;
    justify-content: flex-start;
}

.simproba-role-field .title {
    width: 220px;
    font-weight: 600;
    color: #1d2327;
}

/* Enable switch sous Select Role / Apply To */
#simproba_enable_container {
    margin-top: 8px;
    position: relative;
    z-index: 20;
}
.simproba-enable-row {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 8px 0 4px;
}
.simproba-enable-field {
    display: flex;
    align-items: center;
    gap: 12px;
    cursor: pointer;
    margin: 0;
}
.simproba-enable-field .toggle-switch {
    margin-left: 0;
    flex-shrink: 0;
}
.simproba-enable-label {
    font-weight: 600;
    color: #1d2327;
    min-width: 220px;
    cursor: pointer;
}
#simproba-top-row > div:first-child {
    overflow: visible !important;
}
.simproba-rule-status {
    display: inline-block;
    font-size: 12px;
    font-weight: 500;
    padding: 3px 10px;
    border-radius: 12px;
    line-height: 1.4;
}
.simproba-rule-status--inactive  { background: #f0f0f1; color: #646970; }
.simproba-rule-status--active    { background: #edfaef; color: #007017; }
.simproba-rule-status--scheduled { background: #fcf9e8; color: #9a6700; }
.simproba-rule-status--expired   { background: #fcf0f1; color: #8a2424; }
.simproba-unsaved-notice {
    margin: 8px 0 0;
    padding: 8px 12px;
    background: #fcf9e8;
    border-left: 4px solid #dba617;
    border-radius: 2px;
    font-size: 13px;
    color: #3c434a;
}
.simproba-default-discount-hint {
    margin: 0 0 8px;
}
.simproba-panel-block-label {
    flex: 1;
    min-width: 0;
}

/* Top row : Role / Apply To + categories block + panel */
#simproba-top-row {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
    align-items: flex-start;
    margin-bottom: 20px;
    max-width: 100%;
}
#simproba-top-row .simproba-top-col {
    min-width: 0;
    max-width: 100%;
}
#simproba-top-row .simproba-top-col--main {
    flex: 1 1 260px;
    overflow: visible;
    position: relative;
    z-index: 2;
}
#simproba-top-row .simproba-top-col--categories {
    flex: 1 1 300px;
}
#simproba-top-row .simproba-top-col--categories.simproba-col-empty {
    display: none;
}

/* Grand écran : bloc catégories sous le Select2 Role (dropdown au-dessus, z-index col gauche) */
@media screen and (min-width: 1201px) {
    #simproba-top-row .simproba-top-col--categories {
        margin-top: 72px;
        z-index: 1;
    }
}
#simproba-top-row .simproba-top-col--panel {
    flex: 0 1 168px;
    max-width: 100%;
}
#simproba-top-row table.form-table {
    width: 100%;
}
#simproba-top-row table.form-table th.titledesc {
    width: auto;
    padding-right: 10px;
}

/* Styles pour le sélecteur de catégories (Double liste) */
#simproba_category_selector_container {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    align-items: stretch;
    margin-bottom: 30px;
    max-width: 100%;
}

.field-list {
    background: #fff;
    border: 1px solid #c3c4c7;
    border-radius: 4px;
    flex: 1 1 220px;
    width: auto;
    min-width: 0;
    max-width: 100%;
    height: 250px;
    overflow-y: auto;
    overflow-x: hidden;
}

.field-list h3 {
    margin: 0;
    padding: 10px;
    background: #f6f7f7;
    border-bottom: 1px solid #c3c4c7;
    font-size: 13px;
}

.field-list ul { margin: 0; padding: 0; }

.field-list li {
    padding: 8px 12px;
    margin: 0;
    border-bottom: 1px solid #eee;
    cursor: pointer;
}

.field-list li:hover { background: #f0f0f1; }
.field-list li.selected { background: #e5f8ff; color: #0071a1; }
.field-list li .cat-name {
    cursor: pointer;
    user-select: none;
}

#simproba_category_selector_container .arrows {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    flex: 0 0 auto;
    align-self: center;
    gap: 8px;
}

.arrows button {
    display: block;
    margin: 0;
    cursor: pointer;
    min-width: 36px;
}

/* Ligne catégorie sélectionnée (type + valeur) */
.simproba-cat-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin-bottom: 5px;
    padding: 8px 12px;
    border-bottom: 1px solid #eee;
}

.simproba-cat-row .cat-name {
    flex: 1 1 100px;
    min-width: 0;
    word-break: break-word;
}

.simproba-cat-row .cat-type {
    flex: 1 1 130px;
    min-width: 0;
    max-width: 100%;
    height: 28px;
}

.simproba-cat-row .cat-discount-input {
    width: 80px;
    max-width: 100%;
    height: 28px;
    flex: 0 1 80px;
}

#selected-categories .field-list li.simproba-cat-row {
    padding: 8px 12px;
    cursor: default;
}

#selected-categories .field-list li.simproba-cat-row:hover {
    background: #fff;
}

/* Planning — dates */
#simproba_planning_content.simproba-planning-content {
    padding: 15px 0;
    display: none;
    border-top: 1px solid #ddd;
    max-width: 100%;
    overflow: visible;
}

.simproba-planning-dates {
    display: flex;
    flex-wrap: wrap;
    gap: 16px 24px;
    max-width: 100%;
}

.simproba-planning-field {
    flex: 1 1 220px;
    min-width: 0;
    margin: 0;
    max-width: 100%;
}

.simproba-planning-field label {
    display: block;
    margin-bottom: 6px;
}

.simproba-datetime-input {
    display: block;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    height: 35px;
    border: 1px solid #8c8f94;
    border-radius: 4px;
    padding: 0 10px;
    font-size: 14px;
}

/* ================================================
   RESPONSIVE
   ================================================ */
@media screen and (max-width: 1200px) {
    #simproba-top-row {
        flex-direction: column;
    }

    #simproba-top-row .simproba-top-col--categories {
        margin-top: 0;
    }

    #simproba-top-row .simproba-top-col--panel #simproba-panel {
        width: 100%;
        position: static;
    }
}

@media screen and (max-width: 782px) {
    .simproba-role-field {
        flex-direction: column;
        align-items: stretch;
    }

    .simproba-role-field label {
        flex-direction: column;
        align-items: stretch;
    }

    .simproba-role-field .title,
    .simproba-enable-label {
        width: auto;
        min-width: 0;
    }

    #simproba_category_selector_container {
        flex-direction: column;
    }

    #simproba_category_selector_container .arrows {
        flex-direction: row;
        width: 100%;
        justify-content: center;
    }

    .field-list {
        flex: 1 1 100%;
        height: 200px;
    }

    .simproba-cat-row {
        flex-direction: column;
        align-items: stretch;
    }

    .simproba-cat-row .cat-type,
    .simproba-cat-row .cat-discount-input {
        width: 100%;
        flex: 1 1 auto;
    }

    #simproba-top-row table.form-table th.titledesc {
        white-space: normal;
    }

    #simproba-workspace {
        flex-direction: column;
    }

    #simproba-panel {
        width: 100%;
        position: static;
    }

    #simproba-block-overview .wp-list-table {
        display: block;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    .simproba-planning-dates {
        flex-direction: column;
        gap: 16px;
    }

    .simproba-planning-field {
        flex: 1 1 100%;
        width: 100%;
    }
}

/* ================================================
   WORKSPACE - NOTICE
   ================================================ */
#simproba-notice {
    display: flex;
    align-items: center;
    gap: 10px;
    background: #fff;
    border: 1px solid #c3c4c7;
    border-left: 4px solid #f0c040;
    border-radius: 4px;
    padding: 10px 14px;
    margin: 16px 0;
    font-size: 13px;
    color: #3c434a;
}
#simproba-notice .simproba-notice-star {
    color: #f0c040;
    font-size: 16px;
    flex-shrink: 0;
}
#simproba-notice a {
    color: #2271b1;
    font-weight: 500;
    text-decoration: none;
    margin-left: 4px;
}
#simproba-notice a:hover { text-decoration: underline; }
#simproba-notice .simproba-notice-dismiss {
    margin-left: auto;
    background: none;
    border: none;
    cursor: pointer;
    color: #787c82;
    font-size: 18px;
    line-height: 1;
    padding: 0 4px;
    flex-shrink: 0;
}
#simproba-notice .simproba-notice-dismiss:hover { color: #1d2327; }

/* ================================================
   WORKSPACE LAYOUT
   ================================================ */
#simproba-workspace {
    display: flex;
    gap: 20px;
    align-items: flex-start;
    margin-top: 24px;
}

#simproba-blocks {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 12px;
    min-width: 0;
}

/* ================================================
   BLOC INDIVIDUEL
   ================================================ */
.simproba-block {
    background: #fff;
    border: 1px solid #c3c4c7;
    border-radius: 4px;
    overflow: hidden;
    transition: border-color 0.15s, box-shadow 0.15s;
}
.simproba-block.is-dragging {
    opacity: 0.4;
    box-shadow: none;
}
.simproba-block.drag-over {
    border-color: #2271b1;
    box-shadow: 0 0 0 1px #2271b1;
}
.simproba-block-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 14px;
    background: #f6f7f7;
    border-bottom: 1px solid #c3c4c7;
    cursor: default;
    user-select: none;
}
.simproba-block.is-collapsed .simproba-block-header {
    border-bottom: none;
}
.simproba-block-header-left {
    display: flex;
    align-items: center;
    gap: 8px;
}
.simproba-block-title {
    font-size: 13px;
    font-weight: 600;
    color: #1d2327;
}
.simproba-drag-handle {
    cursor: grab;
    color: #787c82;
    font-size: 18px;
    line-height: 1;
    padding: 0 2px;
}
.simproba-drag-handle:active { cursor: grabbing; }
.simproba-collapse-btn {
    background: none;
    border: none;
    cursor: pointer;
    color: #787c82;
    font-size: 18px;
    line-height: 1;
    padding: 0;
    display: flex;
    align-items: center;
    transition: transform 0.2s;
}
.simproba-block.is-collapsed .simproba-collapse-btn {
    transform: rotate(-90deg);
}
.simproba-block-body {
    padding: 16px;
}
.simproba-block.is-collapsed .simproba-block-body {
    display: none;
}

/* ================================================
   PANNEAU PLAN
   ================================================ */
#simproba-panel {
    width: 168px;
    flex-shrink: 0;
    position: sticky;
    top: 32px;
    background: #fff;
    border: 1px solid #c3c4c7;
    border-radius: 4px;
    overflow: hidden;
}
#simproba-panel-header {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 10px 12px;
    background: #f6f7f7;
    border-bottom: 1px solid #c3c4c7;
    font-size: 12px;
    font-weight: 600;
    color: #3c434a;
}
#simproba-panel-header::after {
    content: none;
}
#simproba-panel-list {
    padding: 4px 0;
    list-style: none;
    margin: 0;
}
.simproba-panel-item {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    font-size: 12px;
    color: #3c434a;
    cursor: pointer;
    border-left: 3px solid transparent;
    transition: background 0.1s, border-color 0.1s;
    list-style: none;
}

/* Minimap — aperçu des blocs réorganisable */
.simproba-minimap-item {
    padding: 6px 10px;
    border-radius: 0;
}
.simproba-minimap-grip {
    flex: 0 0 auto;
    cursor: grab;
    color: #c3c4c7;
    font-size: 11px;
    line-height: 1;
    letter-spacing: -2px;
    user-select: none;
}
.simproba-minimap-item.is-dragging-minimap .simproba-minimap-grip {
    cursor: grabbing;
}
.simproba-minimap-preview {
    flex: 0 0 28px;
    width: 28px;
    height: 22px;
    border: 1px solid #c3c4c7;
    border-radius: 3px;
    background: #f6f7f7;
    display: flex;
    align-items: flex-end;
    padding: 3px;
    box-sizing: border-box;
}
.simproba-minimap-bar {
    display: block;
    width: 100%;
    height: 4px;
    border-radius: 2px;
    background: #2271b1;
    transition: width 0.15s ease, background 0.15s ease;
}
.simproba-minimap-item[data-size="m"] .simproba-minimap-preview { height: 18px; }
.simproba-minimap-item[data-size="s"] .simproba-minimap-preview { height: 14px; }
.simproba-minimap-item[data-size="l"] .simproba-minimap-preview { height: 26px; }
.simproba-minimap-item.is-collapsed-preview {
    opacity: 0.55;
}
.simproba-minimap-item.is-collapsed-preview .simproba-minimap-bar {
    background: #787c82;
}
.simproba-minimap-item.is-active,
.simproba-panel-item.is-active {
    border-left-color: #2271b1;
    color: #2271b1;
    background: #f0f6fc;
    font-weight: 500;
}
.simproba-minimap-item.drag-over-panel {
    background: #f0f6fc;
    outline: 1px dashed #2271b1;
    outline-offset: -2px;
}

/* Stack pleine largeur sous le top-row */
.simproba-block-stack {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-bottom: 20px;
    max-width: 100%;
}
.simproba-panel-item:hover {
    background: #f0f0f1;
    color: #1d2327;
}
.simproba-panel-item.is-active {
    border-left-color: #2271b1;
    color: #2271b1;
    background: #f0f6fc;
    font-weight: 500;
}
.simproba-panel-item.drag-over-panel {
    background: #f0f6fc;
}
.simproba-panel-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    flex-shrink: 0;
}
.simproba-panel-dot.dot-on  { background: #00a32a; }
.simproba-panel-dot.dot-off { background: #c3c4c7; }
.simproba-panel-divider {
    height: 1px;
    background: #c3c4c7;
    margin: 4px 0;
}
.simproba-panel-item[draggable="true"] { cursor: grab; }
.simproba-panel-item[draggable="true"]:active { cursor: grabbing; }

/* Panel info items (role + apply to) */
.simproba-panel-info {
    display: flex;
    flex-direction: column;
    padding: 8px 12px;
    font-size: 11px;
    list-style: none;
    border-left: 3px solid transparent;
}
.simproba-panel-info-label {
    color: #787c82;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    font-size: 10px;
}
.simproba-panel-info-value {
    color: #1d2327;
    font-weight: 600;
    font-size: 12px;
    margin-top: 1px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Context — navigation entre blocs (pas de réordonnancement) */
.simproba-panel-block-nav {
    list-style: none;
    margin: 0;
    padding: 0;
}
.simproba-panel-nav-item {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 7px 12px;
    font-size: 12px;
    color: #3c434a;
    cursor: pointer;
    border-left: 3px solid transparent;
    transition: background 0.1s, border-color 0.1s;
}
.simproba-panel-nav-item:hover {
    background: #f0f0f1;
    color: #1d2327;
}
.simproba-panel-nav-item.is-active {
    border-left-color: #2271b1;
    color: #2271b1;
    background: #f0f6fc;
    font-weight: 500;
}
.simproba-panel-nav-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #c3c4c7;
    flex-shrink: 0;
}
.simproba-panel-nav-item.is-active .simproba-panel-nav-dot {
    background: #2271b1;
}
.simproba-panel-nav-label {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.simproba-plan-slot-empty.is-visible {
    pointer-events: auto;
    cursor: copy;
}

/* Plan — carte pleine largeur (vue page dézoomée), repliée par défaut */
.simproba-plan-map-wrap {
    width: 100%;
    max-width: 100%;
    margin: 0 0 18px;
    box-sizing: border-box;
    background: #fff;
    border: 1px solid #c3c4c7;
    border-radius: 4px;
    overflow: hidden;
}
.simproba-plan-map-wrap.is-collapsed {
    margin-bottom: 12px;
}
.simproba-plan-map-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 10px 12px;
    margin-bottom: 0;
    background: #f6f7f7;
    border-bottom: 1px solid #c3c4c7;
    font-size: 13px;
    color: #1d2327;
}
.simproba-plan-map-wrap.is-collapsed .simproba-plan-map-header {
    border-bottom: none;
}
.simproba-plan-map-header-left {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px 10px;
    min-width: 0;
    flex: 1;
}
.simproba-plan-map-header .dashicons-layout {
    color: #2271b1;
}
.simproba-plan-map-sub {
    font-size: 11px;
    font-weight: 400;
    color: #787c82;
}
.simproba-plan-map-wrap.is-collapsed .simproba-plan-map-sub {
    display: none;
}
.simproba-plan-map-wrap.is-collapsed .simproba-plan-map-header .simproba-collapse-btn {
    transform: rotate(-90deg);
}
.simproba-plan-map-body {
    padding: 10px 12px 12px;
}
.simproba-plan-map-wrap.is-collapsed .simproba-plan-map-body {
    display: none;
}
#simproba-plan-canvas {
    width: 100%;
    box-sizing: border-box;
}
.simproba-plan-fractal {
    width: 100%;
    border: 1px solid #c3c4c7;
    border-radius: 4px;
    background: #f0f0f1;
    overflow: hidden;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.6);
}
.simproba-plan-region--top {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.35fr) minmax(88px, 0.42fr);
    gap: 6px;
    padding: 8px;
    background: #e8e8e8;
    border-bottom: 2px solid #c3c4c7;
    min-height: 72px;
    align-items: stretch;
}
.simproba-plan-region--stack {
    padding: 8px 10px 10px;
    background: #f6f7f7;
}
.simproba-plan-region-label {
    display: block;
    font-size: 10px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #646970;
    margin-bottom: 8px;
}
.simproba-plan-zone {
    min-width: 0;
    padding: 6px;
    border: 1px solid #c3c4c7;
    border-radius: 3px;
    background: #fff;
    display: flex;
    flex-direction: column;
    gap: 5px;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.06);
}
.simproba-plan-zone.is-zone-fixed {
    background: #fafafa;
}
.simproba-plan-zone--categories {
    min-height: 58px;
    transition: border-color 0.12s, background 0.12s, box-shadow 0.12s;
}
.simproba-plan-zone--categories.is-drop-hover {
    border-color: #2271b1;
    background: #f0f6fc;
    box-shadow: inset 0 0 0 2px #2271b1;
}
.simproba-plan-zone--sidebar {
    border-color: #8c8f94;
    background: #f0f6fc;
}
.simproba-plan-zone-label {
    font-size: 9px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #50575e;
    line-height: 1.2;
}
.simproba-plan-zone-body {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-height: 36px;
}
.simproba-plan-fractal-inner {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 3px;
    padding: 5px 6px;
    border: 1px solid #dcdcde;
    border-radius: 2px;
    background: #fff;
    min-height: 32px;
}
.simproba-plan-fractal-inner--form .row,
.simproba-plan-fractal-inner--sidebar .row {
    display: block;
    height: 5px;
    border-radius: 2px;
    background: #c3c4c7;
    width: 88%;
}
.simproba-plan-fractal-inner--form .row:nth-child(2) { width: 72%; }
.simproba-plan-fractal-inner--form .row-short,
.simproba-plan-fractal-inner--sidebar .row-short {
    width: 40%;
    background: #2271b1;
}
.simproba-plan-slot-empty {
    display: none;
    align-items: center;
    justify-content: center;
    flex: 1;
    min-height: 36px;
    padding: 6px;
    border: 2px dashed #a7aaad;
    border-radius: 3px;
    background: repeating-linear-gradient(
        -45deg,
        #fff,
        #fff 5px,
        #f0f0f1 5px,
        #f0f0f1 10px
    );
}
.simproba-plan-slot-empty.is-visible {
    display: flex;
}
.simproba-plan-slot-empty-label {
    font-size: 10px;
    color: #787c82;
    font-style: italic;
    text-align: center;
}
.simproba-plan-stack-body {
    display: flex;
    flex-direction: column;
    gap: 0;
    padding: 4px;
    border: 1px dashed #a7aaad;
    border-radius: 3px;
    background: #fff;
    min-height: 48px;
}
.simproba-plan-drop-slot {
    flex: 0 0 auto;
    min-height: 5px;
    margin: 2px 0;
    border-radius: 2px;
    transition: min-height 0.12s ease, background 0.12s ease, border-color 0.12s ease;
}
.simproba-plan-canvas.is-plan-dragging .simproba-plan-drop-slot {
    min-height: 10px;
    border: 1px dashed #c3c4c7;
}
.simproba-plan-canvas.is-plan-dragging .simproba-plan-drop-slot.is-drop-hover {
    min-height: 16px;
    margin: 3px 0;
    border-color: #2271b1;
    background: #e8f2fb;
}
.simproba-plan-chip {
    display: grid;
    grid-template-columns: minmax(72px, 22%) minmax(0, 1fr);
    gap: 8px;
    align-items: stretch;
    padding: 6px 8px;
    border: 1px solid #8c8f94;
    border-radius: 3px;
    background: #fff;
    cursor: grab;
    transition: border-color 0.1s, box-shadow 0.1s, opacity 0.1s;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.08);
    width: 100%;
    box-sizing: border-box;
}
.simproba-plan-chip:active {
    cursor: grabbing;
}
.simproba-plan-chip.is-dragging-chip {
    opacity: 0.5;
    border-style: dashed;
}
.simproba-plan-chip.is-active {
    border-color: #2271b1;
    background: #f0f6fc;
    box-shadow: 0 0 0 2px #2271b1;
}
.simproba-plan-chip.is-collapsed-preview {
    opacity: 0.65;
}
.simproba-plan-chip-label {
    font-size: 10px;
    line-height: 1.3;
    color: #1d2327;
    font-weight: 600;
    display: flex;
    align-items: center;
    overflow: hidden;
    text-overflow: ellipsis;
}
.simproba-plan-chip-preview {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
}
.simproba-plan-chip-bar {
    display: block;
    height: 3px;
    width: 100%;
    border-radius: 2px;
    background: #2271b1;
    flex-shrink: 0;
    transition: width 0.15s ease, background 0.15s ease;
}
.simproba-plan-chip.is-collapsed-preview .simproba-plan-chip-bar {
    background: #787c82;
}
/* Fractales par type de bloc */
.simproba-plan-chip-fractal--overview {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 2px;
    padding: 4px;
    border: 1px solid #dcdcde;
    border-radius: 2px;
    background: #f6f7f7;
    flex: 1;
    min-height: 36px;
}
.simproba-plan-chip-fractal--overview .cell {
    height: 4px;
    border-radius: 1px;
    background: #c3c4c7;
}
.simproba-plan-chip-fractal--categories {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 4px;
    flex: 1;
    min-height: 28px;
}
.simproba-plan-chip-fractal--categories .col {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 3px;
    border: 1px solid #dcdcde;
    border-radius: 2px;
    background: #f6f7f7;
}
.simproba-plan-chip-fractal--categories .line {
    display: block;
    height: 3px;
    border-radius: 1px;
    background: #72aee6;
    width: 90%;
}
.simproba-plan-chip-fractal--categories .line-short { width: 55%; }
.simproba-plan-chip-fractal--planning {
    display: flex;
    flex-direction: column;
    gap: 3px;
    padding: 4px;
    border: 1px solid #dcdcde;
    border-radius: 2px;
    background: #f6f7f7;
    flex: 1;
}
.simproba-plan-chip-fractal--planning .line,
.simproba-plan-chip-fractal--individual .line {
    display: block;
    height: 4px;
    border-radius: 1px;
    background: #72aee6;
    width: 70%;
}
.simproba-plan-chip-fractal--planning .line-short { width: 45%; }
.simproba-plan-chip-fractal--individual {
    padding: 4px;
    border: 1px solid #dcdcde;
    border-radius: 2px;
    background: #f6f7f7;
    flex: 1;
}
.simproba-plan-chip[data-size="s"] {
    min-height: 36px;
}
.simproba-plan-chip[data-size="m"] {
    min-height: 44px;
}
.simproba-plan-chip[data-size="l"] {
    min-height: 52px;
}
.simproba-plan-chip[data-size="xl"] {
    min-height: 64px;
}
.simproba-plan-chip[data-size="xl"] .simproba-plan-chip-fractal--overview {
    min-height: 48px;
}
.simproba-plan-zone--categories .simproba-plan-chip {
    grid-template-columns: 1fr;
    min-height: 48px;
}
.simproba-plan-zone--categories .simproba-plan-chip-label {
    font-size: 9px;
}

@media screen and (max-width: 782px) {
    .simproba-plan-region--top {
        grid-template-columns: 1fr;
    }
    .simproba-plan-chip {
        grid-template-columns: 1fr;
    }
}

