/* ============================================
   AGGRESSIVE MOBILE RESPONSIVE OVERRIDE
   Force all styles to be mobile-friendly
   ============================================ */

/* CRITICAL: Reset ALL sizes for mobile */
@media (max-width: 1024px) {
    * {
        -webkit-box-sizing: border-box !important;
        -moz-box-sizing: border-box !important;
        box-sizing: border-box !important;
    }

    html, body {
        width: 100% !important;
        max-width: 100% !important;
        overflow-x: hidden !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    /* Override ALL inline styles that limit width */
    [style*="width"] { width: 100% !important; max-width: 100% !important; }
    [style*="display: grid"] { display: flex !important; flex-direction: column !important; }
    [style*="grid-template-columns"] { grid-template-columns: 1fr !important; }

    /* Form Container */
    .hub-container,
    [class*="container"],
    [class*="panel"],
    .attack-form-panel,
    .attacks-panel {
        width: 100vw !important;
        max-width: 100vw !important;
        padding: 12px 12px !important;
        margin: 0 !important;
        overflow-x: hidden !important;
    }

    /* ALL INPUTS - FORCED MOBILE SIZE */
    input,
    select,
    textarea,
    [type="text"],
    [type="number"],
    [type="email"],
    [type="password"],
    [type="port"],
    [type="url"] {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 100% !important;
        min-height: 48px !important;
        height: auto !important;
        padding: 12px 14px !important;
        margin: 0 0 8px 0 !important;
        font-size: 16px !important;
        box-sizing: border-box !important;
        display: block !important;
        -webkit-appearance: none !important;
        appearance: none !important;
    }

    /* Keep hidden selects hidden */
    select[style*="display: none"],
    select#method {
        display: none !important;
        visibility: hidden !important;
        height: 0 !important;
        width: 0 !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    /* ALL BUTTONS - FORCED MOBILE SIZE */
    button,
    input[type="button"],
    input[type="submit"],
    .btn,
    [onclick],
    [role="button"] {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 100% !important;
        min-height: 48px !important;
        height: auto !important;
        padding: 12px 16px !important;
        margin: 0 0 8px 0 !important;
        font-size: 14px !important;
        box-sizing: border-box !important;
        display: block !important;
        cursor: pointer !important;
    }

    /* Port input container - STACK VERTICALLY */
    .port-input-container,
    .port-buttons-group,
    [style*="display: flex"][style*="gap: 10px"],
    [style*="display: flex"][style*="gap: 5px"] {
        display: flex !important;
        flex-direction: column !important;
        flex-wrap: wrap !important;
        width: 100% !important;
        gap: 10px !important;
    }

    .port-input-container > *,
    .port-buttons-group > * {
        width: 100% !important;
        min-width: 100% !important;
        flex: 1 !important;
    }

    /* Grid layouts - ALL to 1 column */
    [style*="grid-template-columns: repeat"],
    [style*="grid-template-columns: 1fr 1fr"],
    [class*="grid"],
    .hub-grid,
    .info-panel > div,
    [style*="display: grid"] {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 12px !important;
        width: 100% !important;
    }

    /* Flex containers - vertical stack */
    [style*="display: flex"]:not([style*="flex-direction"]) {
        flex-direction: column !important;
        width: 100% !important;
        gap: 10px !important;
    }

    [style*="display: flex"] > div,
    [style*="display: flex"] > button,
    [style*="display: flex"] > input,
    [style*="display: flex"] > select {
        width: 100% !important;
        min-width: 100% !important;
    }

    /* DROPDOWN - CRITICAL */
    #methodDropdown,
    [id*="dropdown"],
    [id*="Dropdown"] {
        position: fixed !important;
        bottom: 0 !important;
        left: 0 !important;
        right: 0 !important;
        top: auto !important;
        width: 100vw !important;
        max-width: 100vw !important;
        max-height: 70vh !important;
        z-index: 999 !important;
        border-radius: 20px 20px 0 0 !important;
        margin: 0 !important;
        padding: 16px 0 30px 0 !important;
        overflow-y: auto !important;
        overflow-x: hidden !important;
        box-sizing: border-box !important;
    }

    #dropdownOverlay {
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        right: 0 !important;
        bottom: 0 !important;
        z-index: 998 !important;
        background: rgba(0, 0, 0, 0.75) !important;
    }

    .method-option,
    [class*="method-option"] {
        padding: 14px 16px !important;
        min-height: 56px !important;
        height: auto !important;
        font-size: 13px !important;
        width: 100% !important;
        box-sizing: border-box !important;
        display: flex !important;
        align-items: center !important;
        cursor: pointer !important;
    }

    /* Form groups */
    .form-group {
        width: 100% !important;
        margin-bottom: 16px !important;
        display: block !important;
    }

    .form-group label {
        display: block !important;
        width: 100% !important;
        font-size: 13px !important;
        margin-bottom: 8px !important;
    }

    .form-group small {
        display: block !important;
        width: 100% !important;
        font-size: 11px !important;
        margin-top: 6px !important;
    }

    /* Page header */
    .page-header,
    [class*="page-header"] {
        width: 100% !important;
        margin-bottom: 12px !important;
    }

    .page-header h1,
    [class*="page-header"] h1 {
        font-size: 18px !important;
        line-height: 1.3 !important;
        margin-bottom: 8px !important;
    }

    .plan-status {
        flex-direction: column !important;
        width: 100% !important;
        gap: 8px !important;
    }

    .status-badge {
        width: 100% !important;
        font-size: 12px !important;
        padding: 10px 12px !important;
    }

    /* Alerts */
    .alert-warning,
    .alert-success,
    [class*="alert"] {
        width: 100% !important;
        padding: 12px !important;
        font-size: 12px !important;
        margin-bottom: 12px !important;
    }

    .alert-warning h4,
    .alert-success h4 {
        font-size: 13px !important;
        margin-bottom: 6px !important;
    }

    .alert-warning p,
    .alert-success p {
        font-size: 11px !important;
        margin: 0 !important;
    }

    /* Attack items */
    .attack-item,
    [class*="attack-item"] {
        width: 100% !important;
        padding: 12px !important;
        margin-bottom: 8px !important;
    }

    .attack-header {
        flex-direction: column !important;
        align-items: flex-start !important;
        gap: 8px !important;
    }

    .attack-details {
        grid-template-columns: 1fr !important;
        gap: 8px !important;
    }

    /* Panels */
    .panel-header,
    .panel-body {
        width: 100% !important;
        padding: 12px !important;
        box-sizing: border-box !important;
    }

    /* Text sizing */
    h1 { font-size: 18px !important; line-height: 1.3 !important; }
    h2 { font-size: 16px !important; }
    h3 { font-size: 14px !important; }
    h4 { font-size: 13px !important; }
    h5 { font-size: 12px !important; }
    p { font-size: 13px !important; line-height: 1.5 !important; }
    span { font-size: 13px !important; }
    small { font-size: 11px !important; }

    /* Messages */
    #responseContainer {
        left: 10px !important;
        right: 10px !important;
        width: auto !important;
        max-width: calc(100vw - 20px) !important;
    }

    .response-message {
        width: auto !important;
        max-width: calc(100vw - 20px) !important;
        font-size: 12px !important;
        padding: 12px 14px !important;
    }

    /* Pagination */
    .pagination-container {
        flex-direction: column !important;
        gap: 10px !important;
        width: 100% !important;
    }

    .pagination-buttons {
        display: flex !important;
        flex-direction: column !important;
        gap: 8px !important;
        width: 100% !important;
    }

    .pagination-buttons button {
        width: 100% !important;
    }

    #paginationInfo {
        text-align: center !important;
        width: 100% !important;
    }

    /* Info panel */
    .info-panel {
        width: 100% !important;
        padding: 12px !important;
        margin-top: 12px !important;
    }

    .info-panel > div {
        grid-template-columns: 1fr !important;
        gap: 12px !important;
    }

    .info-panel > div > div {
        width: 100% !important;
        padding: 10px !important;
    }

    /* Prevent overflow */
    .attack-form-panel,
    .attacks-panel,
    [class*="panel"] {
        overflow-x: hidden !important;
        max-width: 100vw !important;
    }

    /* Remove fixed widths from style attributes */
    [style*="flex: 1"] { flex: 1 !important; width: 100% !important; }
    [style*="min-width"] { min-width: auto !important; }
}

/* ============================================
   VERY SMALL DEVICES (< 480px)
   ============================================ */
@media (max-width: 480px) {
    /* Keep hidden selects hidden on small devices */
    select#method {
        display: none !important;
        visibility: hidden !important;
        height: 0 !important;
        width: 0 !important;
    }

    html, body {
        font-size: 13px !important;
    }

    .hub-container,
    [class*="container"],
    [class*="panel"] {
        padding: 8px !important;
    }

    input,
    select,
    textarea {
        min-height: 44px !important;
        font-size: 16px !important;
        padding: 10px 12px !important;
    }

    button,
    input[type="button"],
    input[type="submit"] {
        min-height: 44px !important;
        font-size: 13px !important;
        padding: 10px 12px !important;
    }

    .page-header h1 {
        font-size: 16px !important;
    }

    .status-badge {
        font-size: 11px !important;
        padding: 8px 10px !important;
    }

    .method-option {
        padding: 12px 14px !important;
        min-height: 50px !important;
        font-size: 12px !important;
    }

    #methodDropdown {
        max-height: 65vh !important;
        padding: 12px 0 25px 0 !important;
    }

    .panel-header,
    .panel-body {
        padding: 10px !important;
    }

    h1 { font-size: 16px !important; }
    h2 { font-size: 14px !important; }
    h3 { font-size: 13px !important; }
    p { font-size: 12px !important; }
}

/* ============================================
   EXTRA SMALL DEVICES (< 360px)
   ============================================ */
@media (max-width: 360px) {
    .hub-container,
    [class*="container"] {
        padding: 6px !important;
    }

    input,
    select,
    textarea {
        min-height: 42px !important;
        font-size: 16px !important;
    }

    button {
        min-height: 42px !important;
        font-size: 12px !important;
        padding: 8px 10px !important;
    }

    .page-header h1 {
        font-size: 15px !important;
    }

    .status-badge {
        font-size: 10px !important;
        padding: 6px 8px !important;
    }

    h1 { font-size: 14px !important; }
}

/* ============================================
   iOS SPECIFIC FIXES
   ============================================ */
input,
select,
textarea {
    font-size: 16px !important; /* Prevent iOS zoom */
}

@media (hover: none) and (pointer: coarse) {
    button, [role="button"] {
        -webkit-tap-highlight-color: transparent !important;
        min-height: 48px !important;
    }

    input, select, textarea {
        -webkit-user-select: none !important;
    }
}

/* ============================================
   LANDSCAPE MODE
   ============================================ */
@media (orientation: landscape) {
    #methodDropdown,
    [id*="dropdown"],
    [id*="Dropdown"] {
        max-height: 85vh !important;
        bottom: 0 !important;
        top: auto !important;
    }

    .panel-body {
        max-height: calc(100vh - 100px) !important;
    }

    input,
    button {
        min-height: 40px !important;
    }

    .nav-btn {
        padding: 8px 10px !important;
        font-size: 11px !important;
    }
}

/* ============================================
   PERFORMANCE OPTIMIZATIONS
   ============================================ */
html {
    -webkit-font-smoothing: antialiased !important;
    -moz-osx-font-smoothing: grayscale !important;
}

body {
    -webkit-text-size-adjust: 100% !important;
}

/* ============================================
   NOTCH DEVICES (iPhone X+)
   ============================================ */
@supports (padding: max(0px)) {
    @media (orientation: landscape) {
        html {
            padding-left: max(12px, env(safe-area-inset-left)) !important;
            padding-right: max(12px, env(safe-area-inset-right)) !important;
        }
    }
}
