/* ===================================
   PREVENTIVATORE MOBILE FIXES
   Specific fixes for preventivatore mobile view
   =================================== */

/* Base adjustments for preventivatore */
.preventivatore-fullscreen {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    overflow-x: hidden;
    width: 100%;
    margin: 0 auto;
}

/* Header responsive */
.preventivatore-header {
    padding: 1rem;
    text-align: center;
}

@media (max-width: 768px) {
    .preventivatore-header h1 {
        font-size: 1.25rem !important;
        margin-bottom: 0.25rem;
    }
    
    .preventivatore-header p {
        font-size: 0.85rem !important;
        margin-bottom: 0;
    }
    
    .preventivatore-header .badge {
        font-size: 0.75rem !important;
        padding: 0.25rem 0.5rem;
    }
}

/* Container adjustments */
@media (max-width: 768px) {
    .preventivatore-container {
        padding: 1rem !important;
    }
    
    .preventivatore-card {
        border-radius: 12px;
        box-shadow: 0 4px 16px rgba(0,0,0,0.05);
        margin: 0 auto;
        max-width: 100%;
    }
}

/* Configuration panel mobile */
@media (max-width: 768px) {
    .configuration-main-panel {
        margin-bottom: 1rem !important;
        border-radius: 8px !important;
    }
    
    .form-header {
        padding: 1rem !important;
        border-radius: 8px 8px 0 0 !important;
    }
    
    .form-header h4 {
        font-size: 1.1rem !important;
    }
    
    .form-header p {
        font-size: 0.8rem !important;
    }
    
    .form-header .text-end {
        display: none !important;
    }
}

/* Form elements mobile */
@media (max-width: 768px) {
    .form-section {
        padding: 1rem !important;
        margin-bottom: 0.75rem !important;
    }
    
    .section-header {
        padding-bottom: 0.5rem !important;
        margin-bottom: 1rem !important;
    }
    
    .section-icon {
        width: 32px !important;
        height: 32px !important;
        font-size: 1rem !important;
    }
    
    .section-header h6 {
        font-size: 0.95rem !important;
    }
    
    .form-control,
    .form-select {
        font-size: 16px !important; /* Prevent iOS zoom */
        padding: 0.5rem 0.75rem !important;
        height: auto !important;
    }
    
    .input-group-text {
        font-size: 0.85rem !important;
        padding: 0.5rem !important;
    }
    
    .form-label {
        font-size: 0.85rem !important;
        margin-bottom: 0.25rem !important;
    }
    
    .form-text {
        font-size: 0.75rem !important;
    }
}

/* Option cards mobile */
@media (max-width: 768px) {
    .option-cards {
        grid-template-columns: 1fr !important;
        gap: 0.5rem !important;
    }
    
    .option-card {
        padding: 0.75rem !important;
        margin-bottom: 0.5rem !important;
    }
    
    .option-card .icon {
        font-size: 1.5rem !important;
        margin-bottom: 0.5rem !important;
    }
    
    .option-card .title {
        font-size: 0.9rem !important;
    }
    
    .option-card .description {
        font-size: 0.75rem !important;
    }
}

/* Summary and results mobile */
@media (max-width: 768px) {
    .sticky-sidebar {
        position: relative !important;
        top: auto !important;
    }
    
    .summary-card,
    .financing-card {
        padding: 1rem !important;
        margin-bottom: 1rem !important;
    }
    
    .summary-card h5,
    .financing-card h5 {
        font-size: 1rem !important;
    }
    
    .summary-item {
        padding: 0.25rem 0 !important;
        font-size: 0.85rem !important;
    }
}

/* Price tracker mobile */
@media (max-width: 768px) {
    .price-tracker-wrapper {
        position: relative !important;
        top: auto !important;
        margin-bottom: 1rem;
    }
    
    .price-tracker {
        padding: 0.75rem !important;
        border-radius: 12px;
    }
    
    .price-tracker .row {
        align-items: center;
    }
    
    .price-tracker h4 {
        font-size: 1rem !important;
    }
    
    .price-tracker .display-6 {
        font-size: 1.25rem !important;
    }
    
    .price-tracker small {
        font-size: 0.7rem !important;
    }
    
    .price-tracker .fa-piggy-bank {
        font-size: 1.5rem !important;
    }
}

/* Roof mapper mobile */
@media (max-width: 768px) {
    .roof-mapper-container {
        display: block !important;
    }
    
    .map-section,
    .controls-section {
        width: 100% !important;
        max-width: 100% !important;
        margin-bottom: 1rem;
    }
    
    #roof-map,
    #panel-overlay-map {
        height: 300px !important;
        width: 100% !important;
        border-radius: 8px;
    }
    
    .map-action-header {
        padding: 0.75rem !important;
        margin-bottom: 0.5rem !important;
    }
    
    .map-action-header h5 {
        font-size: 0.95rem !important;
    }
    
    .map-action-header p {
        font-size: 0.75rem !important;
    }
}

/* Trust badges mobile */
@media (max-width: 768px) {
    .trust-indicators {
        padding: 0 0.5rem !important;
        gap: 0.5rem !important;
    }
    
    .trust-item {
        min-width: auto !important;
        flex: 1 !important;
    }
    
    .trust-item i {
        font-size: 1rem !important;
    }
    
    .trust-item small {
        font-size: 0.65rem !important;
    }
    
    .trust-badge {
        padding: 0.75rem !important;
        margin-bottom: 0.5rem !important;
    }
}

/* Results section mobile */
@media (max-width: 768px) {
    .quote-results {
        padding: 1rem !important;
    }
    
    .result-card {
        padding: 1rem !important;
        margin-bottom: 0.75rem !important;
        border-radius: 8px !important;
    }
    
    .result-icon {
        font-size: 1.75rem !important;
    }
    
    .result-content h3 {
        font-size: 1.25rem !important;
    }
    
    .result-content p {
        font-size: 0.85rem !important;
    }
    
    .result-content small {
        font-size: 0.7rem !important;
    }
}

/* Buttons mobile */
@media (max-width: 768px) {
    .btn-solar,
    .btn-outline-solar {
        width: 100% !important;
        padding: 0.75rem 1rem !important;
        font-size: 0.9rem !important;
        margin-bottom: 0.5rem !important;
    }
    
    .btns-group {
        display: flex;
        flex-direction: column;
        gap: 0.5rem;
    }
    
    .btns-group .btn {
        width: 100% !important;
        margin: 0 !important;
    }
}

/* Financing options mobile */
@media (max-width: 768px) {
    .financing-options-selector {
        padding: 0 !important;
    }
    
    .financing-option-card {
        margin-bottom: 0.5rem !important;
    }
    
    .financing-option {
        padding: 0.75rem !important;
    }
    
    .option-icon {
        font-size: 1.5rem !important;
        margin-right: 0.75rem !important;
    }
    
    .option-content h5 {
        font-size: 0.9rem !important;
    }
    
    .option-content p {
        font-size: 0.75rem !important;
    }
    
    .rate-selector {
        padding: 0.5rem !important;
        margin-top: 0.5rem !important;
    }
}

/* Toggle switches mobile */
@media (max-width: 768px) {
    .option-toggle-container {
        margin-bottom: 0.5rem !important;
    }
    
    .option-toggle-card {
        padding: 0.75rem !important;
        margin-bottom: 0.5rem !important;
    }
    
    .option-toggle-card .fs-4 {
        font-size: 1rem !important;
    }
    
    .option-toggle-card strong {
        font-size: 0.85rem !important;
    }
    
    .option-toggle-card small {
        font-size: 0.7rem !important;
    }
    
    .form-switch-lg .form-check-input {
        width: 2.5rem !important;
        height: 1.25rem !important;
    }
}

/* Sticky summary bar mobile */
@media (max-width: 768px) {
    .sticky-summary-bar {
        padding: 0.75rem !important;
        border-radius: 12px 12px 0 0 !important;
    }
    
    .sticky-summary-bar .summary-item {
        margin-right: 0.5rem !important;
    }
    
    .sticky-summary-bar .summary-item small {
        font-size: 0.65rem !important;
    }
    
    .sticky-summary-bar .fw-bold {
        font-size: 0.8rem !important;
    }
    
    .sticky-summary-bar .btn-light {
        padding: 0.5rem 0.75rem !important;
        font-size: 0.85rem !important;
    }
    
    body.has-sticky-bar {
        padding-bottom: 100px !important;
    }
}

/* Extra small devices */
@media (max-width: 576px) {
    .preventivatore-container {
        padding: 0.75rem !important;
    }
    
    .preventivatore-card {
        padding: 0.75rem !important;
        border-radius: 8px;
    }
    
    .configuration-main-panel {
        box-shadow: none !important;
        border: 1px solid #e9ecef;
    }
    
    .form-header {
        padding: 0.75rem !important;
    }
    
    .form-header h4 {
        font-size: 1rem !important;
    }
    
    .form-section {
        padding: 0.75rem !important;
        margin-bottom: 0.5rem !important;
    }
    
    #roof-map,
    #panel-overlay-map {
        height: 250px !important;
    }
    
    .price-tracker {
        padding: 0.5rem !important;
    }
    
    .price-tracker .display-6 {
        font-size: 1.1rem !important;
    }
    
    .result-card {
        padding: 0.75rem !important;
    }
    
    .btn-solar,
    .btn-outline-solar {
        padding: 0.625rem 0.875rem !important;
        font-size: 0.85rem !important;
    }
}

/* Landscape orientation fixes */
@media (max-width: 768px) and (orientation: landscape) {
    .preventivatore-header {
        padding: 0.5rem !important;
    }
    
    .preventivatore-header h1 {
        font-size: 1.1rem !important;
    }
    
    #roof-map,
    #panel-overlay-map {
        height: 200px !important;
    }
    
    .form-section {
        padding: 0.5rem !important;
    }
}

/* Bootstrap column overrides for mobile */
@media (max-width: 768px) {
    .col-lg-8,
    .col-lg-4 {
        width: 100% !important;
        flex: 0 0 100% !important;
        max-width: 100% !important;
    }
    
    .container,
    .container-fluid {
        padding-left: 15px !important;
        padding-right: 15px !important;
    }
    
    .row > [class*='col-'] {
        padding-left: 15px !important;
        padding-right: 15px !important;
    }
}

/* Utility classes */
@media (max-width: 768px) {
    .d-lg-none {
        display: block !important;
    }
    
    .d-none.d-md-block {
        display: none !important;
    }
    
    .text-center-mobile {
        text-align: center !important;
    }
    
    .w-100-mobile {
        width: 100% !important;
    }
    
    .mt-3-mobile {
        margin-top: 1rem !important;
    }
    
    .mb-3-mobile {
        margin-bottom: 1rem !important;
    }
    
    .p-2-mobile {
        padding: 0.5rem !important;
    }
}