.gps-success-msg { 
    background: #d4edda; 
    color: #155724; 
    padding: 15px; 
    border-radius: 4px; 
    margin-bottom: 20px; 
    border-left: 5px solid #28a745; 
}
.gps-error-msg { 
    background: #f8d7da; 
    color: #721c24; 
    padding: 15px; 
    border-radius: 4px; 
    margin-bottom: 20px; 
    border-left: 5px solid #dc3545; 
}
.gps-excursion-form-section-wrapper {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    flex-direction: column;
    background-color: #fff;
 
}
@media (max-width: 766px){
    .gps-excursion-form-section-wrapper{
        margin-bottom: 24px;
    }
    .gps-excursion-form-section {
        margin-bottom: 0px;
    }
}
@media (min-width: 767px) {
    .gps-excursion-form-section-wrapper{
        margin-bottom: 24px;
    }
    .gps-excursion-form-section {
        margin-bottom: 0px;
    }
}

.gps-excursion-form-section{
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    padding: 16px;
    max-width: 100%;
    -webkit-box-flex: 1;
    -ms-flex-positive: 1;
    flex-grow: 1;
    border: 1px solid #b0b0b0;
}

.gps-form-section-title{
    font-size:      20px;
    font-weight:    400;
    padding: 0px 8px 5px 8px;   
}
.gps-form-section-title-margin{
    margin-top: 18px;   
}

.gps-form-section-content{
    font-size:   18px;
    font-weight: 400;
    line-height: 1.5em;
    padding: 0px;
    margin-top: -14px;
}

.gps-form-group{
    margin-bottom: 20px;
}
.gps-form-group.gps-form-group-last{
     margin-bottom: 0px;
}
.gps-form-group label {
    margin-bottom: 4px;
}
.gps-form-group .required {
    color: red;
}

.gps-form-section-content input[type="text"],
.gps-form-section-content input[type="number"],
.gps-form-section-content textarea {
    border:        1px solid #666;
    border-radius: 3px;
    padding:       7px 8px;
    transition:    all .3s;
    font-size:     16px; 
    box-sizing:    border-box;     
} 
.gps-form-wp-editor{
    border: 1px solid #666;
    border-radius: 3px;    
    overflow: hidden; 
}
.gps-form-wp-editor .wp-switch-editor{
    float:       left;
    box-sizing:  content-box;
    position:    relative;
    top:         1px;
    background:  #f0f0f1 !important;
    color:       #646970 !important;
    cursor:      pointer !important;
    font-size:   12px;
    line-height: 1.46153846;
    height:      20px;
    margin:      8px 5px 0px 0px;
    padding:     3px 8px 4px;
    border:      1px solid #dcdcde;
}
.gps-form-wp-editor .wp-switch-editor:hover{
    box-shadow: 0 0 0  1px #6b3c6a;
    outline:    2px solid transparent;
    color:     #1d2327;
}
.gps-form-wp-editor .wp-switch-editor:focus{
    box-shadow: 0 0 0  1.5px #6b3c6a;
    outline:    2px solid transparent;
    color:     #1d2327;
}
.gps-form-wp-editor button{
    text-transform:none !important;
}
.gps-form-wp-editor button:hover{
    box-shadow: 0 0 0  1px #6b3c6a;    
}
.gps-form-wp-editor .mce-toolbar .mce-btn button {
    background-color: unset !important;
}
.gps-form-wp-editor input[type="button"] {
    background-color: #989898 !important;
}
.gps-form-wp-editor .mce-btn .mce-txt {
    color: #000;
}


.cropper-grid-upload { 
    display: grid; 
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); 
    gap: 15px; 
    margin-top: 0px; 
}
.crop-box {
    aspect-ratio: 3 / 4; 
    border: 2px dashed #aaa; 
    border-radius: 6px; 
    background-color: #fafafa;
    background-size: cover; 
    background-position: center; 
    display: flex; 
    align-items: center; 
    justify-content: center;
    cursor: pointer; 
    position: relative; 
    transition: border-color 0.2s, 
    background-color 0.2s;
}
.crop-box:hover { 
    border-color: #007bff; 
    background-color: #f0f7ff; 
}
.crop-box-placeholder { 
    font-size: 12px; 
    color: #555; 
    text-align: center; 
    pointer-events: none;
    font-weight: 500; 
}
.gps-form-group-row{
    display:    flex;  
    margin-top: 8px;     
}
.gps-flex-col{
    display:     flex;
    gap:         15px;   
    align-items: center;  
    margin-bottom: 0px;    
}
@media (min-width: 768px) {
    .gps-form-group-row{
        gap:        60px;         
    }
    .gps-flex-col-width{
        width: calc((100% - 60px) / 2);
    }    
    .gps-vehicle_name{
        width: calc((100% - 60px) / 2);        
    }
    .gps-vehicle_block{
        display: flex; 
        gap: 60px; 
        width: calc((100% - 60px) / 2);        
    }
    .gps-vehicle_seats{
        width: 4em;
        margin-left: auto;
    }
    .gps-vehicle_price{
        width: 6em;
        margin-left: auto;
    }
}
@media (max-width: 767px) {
    .gps-form-group-row{
        gap:        10px;         
        flex-direction: column;
    }    
    .gps-flex-col-width{
        width: 100%;
    }
    .gps-form-group-row.gps-vehicle{
        display: block;
    }
    .gps-vehicle_name{
        margin-bottom: 10px;            
    }
    .vehicle-input-name{
        height: 34px !important;
        font-size: 0.9rem !important;
    }
    .vehicle-input-capacity,
    .vehicle-input-price{
        height: 34px !important;
        font-size: 0.9rem !important;
        text-align: center;  
    }
    .vehicle-input-description{
        font-size: 0.9rem !important;        
    }
    .gps-vehicle_block{
        display: flex;    
        gap: 60px;
        width: 100%;
    }
    .gps-vehicle_seats{
        width: 4em;
        margin-bottom: 10px; 
        margin-left: auto;
    }
    .gps-vehicle_price{
        margin-bottom: 10px; 
        width: 6em;        
    }
    .gps-form-section-title {
        line-height: 1em;
        font-size: 18px;
    }
    .gps-form-section-content {
        font-size: 16px;
        line-height: 1em;    
    }
    .form-submit-block {
        gap: 10px !important;
        flex-direction: column;
    }
    .btn-submit-excursion {
        width: 100% !important;
    }
    .btn-excursion-preview{
        width: 100% !important;    
    }
    .btn-cancel-excursion {
        margin-left: 0px;
        width: 100%;
    }
    .excursion-attr-select {
        height: 34px !important;
        padding: 0 8px !important;
        font-size: 0.9rem !important;
    }
    .gps-form-group.gps-flex-col .excursion-attr-input-num {
        height: 34px !important;
        width: 4em !important;    
        font-size: 0.9rem !important;
        text-align: center;
    }
    .slot-time-select{
        height: 34px !important;
        width: 3.5em !important;    
        font-size: 0.9rem !important;
        text-align: center;
    }
    .gps-form-group.gps-flex-col .excursion-price-input {
        height: 34px !important;
        width: 4em;
        font-size: 0.9rem !important;
        text-align: center;    
    }
    .gps-form-group.gps-flex-col .excursion-price-input-date {
        background-color: #fff;
        height: 34px !important;
        width: 8em !important;
        padding: .5rem 0.3rem;
        font-size: 0.9rem !important;
    }
    .gps-form-group.gps-flex-col .excursion-attr-input {
        height: 34px !important;
        width: 5em;
        font-size: 0.9rem !important;
        text-align: center;
    }
    .gps-form-group.gps-flex-col .excursion-type-attr-select {
        background-color: #fff;
        height: 34px !important;
        width: 17em;
        font-size: 0.9rem !important;
        padding: 2px 0px 5px 10px;        
    }
    .excursion-attr-textarea{
        font-size: 0.9rem !important;        
    }
    .excursion-seo-title{
        height: 34px !important;
        font-size: 0.9rem !important;        
    }
}
.gps-form-group.gps-flex-col .excursion-attr-select{
    width: 4em;
    margin-left: auto;
}
.gps-form-group.gps-flex-col .excursion-attr-input-num{
    width: 4em;
    margin-left: auto;
}
.gps-form-group.gps-flex-col .excursion-attr-input{
    width: 5em;
    margin-left: auto;
    text-align: center;
}
.gps-form-group.gps-flex-col .excursion-type-attr-select{
    width: 17em;
    margin-left: auto;
}
.gps-form-group.gps-flex-col .excursion-price-input{
    width: 4em;
    margin-left: auto;
}
.gps-form-group.gps-flex-col .excursion-price-input-date{
    width: 9em;
    margin-left: auto;
}
.gps-form-group.gps-flex-col .excursion-deposit-default-checkbox{
    margin-left: auto;
}
.gps-data-group-row{
    display:    flex;  
    gap:        20px;     
}
.gps-data-flex-col-width{
    /*width: calc((100% - 20px) / 2);*/
    margin-left: auto;
}
.excursion-attr-select {
    width: 100%;
    height: 40px; /* Сопоставимо по высоте с текстовыми полями */
    border: 1px solid #ccc;
    border-radius: 4px;
    padding: 0 10px;
    background-color: #fff;
    box-sizing: border-box;
}


.form-field-tip {
    color: #333;
    font-size: 14px;
    background-color: #f8f8f8;
    padding: 3px 0px;
    margin-top: 4px;
    line-height: 1.1em;
}
.gps-duration-calc-badge{
    margin: 8px 0px 20px 0px;
    font-weight: 600;
}

.gps-form-subsection-content{
    margin-top: 16px;    
}
.gps-col-full-width{
    width: 100%;
}
.gps-form-subsection-title{
    
}
.gps-booking_slots_container {
    display: flex;
    flex-direction: column;
    margin: 0px 0px 0px 0px;
}
.booking-slot-row {
    display: flex;
    flex-wrap: wrap;
    gap: 15px;
    align-items: center;   
    padding:       0px 0px;
    margin-top: 10px;
    animation: fadeInSlotRow 0.15s ease-in-out;
    margin-left: auto;
}
.slot-selects-group {
    display: flex;
    align-items: center;
    gap: 5px;
}
.slot-label {
    font-weight: bold;
    color: #555;
    margin-right: 5px;
}
.slot-time-select {
    width:            4em; 
    height:           39px;
    border:           1px solid #666;
    border-radius:    4px;
    padding:          0 5px;
    font-size:        16px;
    background-color: #fff;
    font-family:      monospace;
    cursor:           pointer;
    box-sizing:       border-box;
    transition:       all 0.15s ease;
}
.btn-add-booking-slot{
    margin-left: auto;
    text-transform: none !important;
}
.btn-remove-slot {
    margin-left: 8px;
}
.btn-remove-slot:hover {
}
@keyframes fadeInSlotRow {
    from { opacity: 0; transform: translateY(-3px); }
    to { opacity: 1; transform: translateY(0); }
}
@media (max-width: 480px) {
    .booking-slot-row {
        gap: 10px;
    }
    .btn-remove-slot {
    }
}
.gps-booking-price-rules-container,
.gps-vehicles-container {
    margin-top: 8px;
}
.gps-booking-price-rule-container,
.gps-vehicle-container {
    background-color: #fdfdfd;
    border: 1px solid #dcdfe6;
    border-radius: 6px;
    padding: 8px;
    margin-bottom: 16px;
    position: relative;
    box-shadow: 0 2px 6px rgba(0,0,0,0.02);
    animation: fadeInRuleRow 0.2s ease-in-out;
}
.gps-rule-header-line {
    margin-top: 0px;  
}
.gps-dependencies-wrapper{
    margin-top: 4px;
    width: 100%;
}

.form-submit-block { 
    display: flex; 
    flex-wrap: wrap; 
    gap: 15px; 
    align-items: center; 
    margin-top: 22px; 
}

.btn-submit-excursion {
}
.btn-publish { 
}
.btn-publish:hover {    
}
.btn-draft { 
}
.btn-draft:hover {
}
.btn-cancel-excursion {
    margin-left: auto; 
}

.ex-error-access { padding: 20px; background: #fff3cd; color: #856404; border-radius: 5px; }


.gps-seo_description{
    margin-bottom: 0px;
}
.seo-info-row{
    background-color: #f8f8f8;
}
.seo-progress-container {
    width: 100%;
    height: 6px;
    background-color: #e4e6eb;
    border-radius: 3px;
    margin-top: 6px;
    overflow: hidden;
}
.seo-progress-bar {
    width: 0%;
    height: 100%;
    background-color: #ffc107;
    border-radius: 3px;
    /* Плавное изменение ширины и цвета при печати */
    transition: width 0.15s ease, background-color 0.2s ease; 
}

.attr-row-2col {
    display: flex;
    gap: 15px;
}
.attr-row-2col .flex-1 {
    flex: 1;
}

@media (max-width: 600px) {
    .attr-row-2col {
        flex-direction: column;
        gap: 0;
    }
}
.btn-add-vehicle{
    text-transform: none !important;
    margin-left: auto;
}
.btn-remove-vehicle{
    margin-left: auto;
}
.vehicle-card-row {  
}
.gps-vehicle-header-actions {
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.gps-vehicle-card-title {
    font-weight: 400;
    color: #000;
    font-size: 18px;
}
.gps-flex-vert{
    display:     flex;
    flex-direction: column;
}
.gps-vehicle label{
    display:       block;
    font-size:     16px;
    font-weight:   400;
    color:         #000;
    margin-bottom: 4px;
}
.gps-vehicle_description{
    width: 100%;
    margin-bottom: 0px;
}
.gps-vehicle_summary{
    width: 100%;
}
.vehicle-input-description {    
}

@keyframes fadeInVehicleCard {
    from { opacity: 0; transform: translateY(-4px); }
    to { opacity: 1; transform: translateY(0); }
}

/* Адаптивность для мобильных версий */
@media (max-width: 600px) {
    .vehicle-inputs-grid {
        flex-direction: column;
        gap: 8px;
    }
}


/* Ряд настроек длительности и группы в разделе бронирования */
.booking-fields-row {
    display: flex;
    gap: 15px;
}

@media (max-width: 600px) {
    .booking-fields-row {
        flex-direction: column;
        gap: 0;
    }
}

/* Стили для полей, которые заполняются исключительно автоматически */
.excursion-attr-textarea.readonly-field {
    background-color: #f5f6f8; /* Светло-серый фон */
    color: #4f5660;            /* Чуть более приглушенный цвет текста */
    cursor: not-allowed;       /* Курсор в виде перечеркнутого круга */
    border-color: #dcdfe6;
}

/* Оформление заблокированных автоматических полей ввода */
input.readonly-field, 
textarea.readonly-field {
    background-color: #f5f6f8 !important; /* Светло-серый фон панели */
    color: #4f5660 !important;            /* Приглушенный цвет текста */
    cursor: not-allowed !important;       /* Значок запрета редактирования */
    border-color: #dcdfe6 !important;
}

/* --- КАРТОЧКИ СЕЗОННЫХ ПРАВИЛ ЦЕН --- */


/* Верхняя строка управления правилом */
.rule-checkbox-label {
    font-weight: bold;
    color: #333;
    display: flex;
    align-items: center;
    gap: 8px;
    cursor: pointer;
}
.rule-checkbox-toggle {
    width: 18px;
    height: 18px;
    cursor: pointer;
    display: none;
}
.btn-remove-rule {
    margin-left: auto;
}
.btn-remove-rule:hover {    
}
.btn-add-booking-rule{
    margin-left: auto;
    text-transform: none !important;    
}

@keyframes fadeInRuleRow {
    from { opacity: 0; transform: scale(0.98); }
    to { opacity: 1; transform: scale(1); }
}

