/* === COMPREHENSIVE MOBILE RESPONSIVE CSS === */

/* GLOBAL RESETS */
* {
    -webkit-box-sizing: border-box !important;
    -moz-box-sizing: border-box !important;
    box-sizing: border-box !important;
}

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

/* === TABLET & BELOW (768px) === */
@media (max-width: 768px) {
    body {
        font-size: 14px !important;
        overflow-x: hidden !important;
    }

    /* CONTAINERS */
    .container, .hub-container {
        padding: 12px !important;
        width: 100% !important;
        max-width: 100vw !important;
        margin: 0 !important;
        overflow-x: hidden !important;
    }

    /* HEADERS */
    .page-header {
        margin-bottom: 15px !important;
    }

    .page-header h1 {
        font-size: 20px !important;
        margin-bottom: 12px !important;
    }

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

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

    /* GRIDS */
    .hub-grid,
    [style*="grid-template-columns"],
    .info-panel > div {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 12px !important;
    }

    /* FORMS */
    .form-group {
        margin-bottom: 16px !important;
        width: 100% !important;
    }

    .form-group label {
        font-size: 13px !important;
        margin-bottom: 8px !important;
    }

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

    /* ALL BUTTONS - CRITICAL */
    button,
    .btn,
    input[type="button"],
    input[type="submit"],
    [role="button"],
    [onclick] {
        min-height: 48px !important;
        padding: 12px 16px !important;
        font-size: 14px !important;
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
        text-align: center !important;
        display: inline-block !important;
        margin-bottom: 8px !important;
    }

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

    [style*="display: flex"] > * {
        width: 100% !important;
        box-sizing: border-box !important;
    }

    /* DROPDOWN - CRITICAL FIX */
    #methodDropdown {
        position: fixed !important;
        bottom: 0 !important;
        left: 0 !important;
        right: 0 !important;
        top: auto !important;
        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;
        display: none !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.8) !important;
        display: none !important;
    }

    .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;
    }

    /* PANELS */
    .panel-header,
    .panel-body {
        width: 100% !important;
        max-width: 100% !important;
        padding: 12px !important;
    }

    .attack-form-panel,
    .attacks-panel {
        width: 100% !important;
        max-width: 100% !important;
        overflow-x: hidden !important;
    }

    /* ALERTS */
    .alert-warning,
    .alert-success {
        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;
    }

    /* ATTACK ITEMS */
    .attack-item {
        padding: 12px !important;
        margin-bottom: 8px !important;
        width: 100% !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;
    }

    /* TEXT SIZING */
    h1 { font-size: 20px !important; }
    h2 { font-size: 17px !important; }
    h3 { font-size: 15px !important; }
    h4 { font-size: 13px !important; }
    p { font-size: 13px !important; line-height: 1.5 !important; }
    small, .small-text { font-size: 11px !important; }

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

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

    /* PAGINATION */
    .pagination-container {
        flex-direction: column !important;
        gap: 10px !important;
    }

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

    /* INFO PANEL */
    .info-panel {
        padding: 12px !important;
        margin-top: 12px !important;
    }

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

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

/* === SMALL MOBILE (< 480px) === */
@media (max-width: 480px) {
    html, body {
        font-size: 13px !important;
        width: 100% !important;
    }

    .hub-container {
        padding: 8px !important;
    }

    input[type="text"],
    input[type="number"],
    input[type="email"],
    input[type="password"],
    select,
    textarea {
        min-height: 44px !important;
        font-size: 16px !important;
        padding: 10px 12px !important;
    }

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

    .page-header h1 {
        font-size: 18px !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 (< 360px) === */
@media (max-width: 360px) {
    .hub-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: 16px !important;
    }

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

/* === LANDSCAPE MODE === */
@media (orientation: landscape) and (max-height: 500px) {
    #methodDropdown {
        max-height: 80vh !important;
    }

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

/* === PREVENT ZOOM ON INPUT FOCUS (iOS) === */
input[type="text"],
input[type="number"],
input[type="email"],
input[type="password"],
select,
textarea {
    font-size: 16px !important;
}

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

    input, select, textarea {
        -webkit-user-select: none !important;
        padding: 12px 14px !important;
    }
}

/* === SCROLLING PERFORMANCE === */
html {
    -webkit-font-smoothing: antialiased !important;
    -moz-osx-font-smoothing: grayscale !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;
        }
    }
}
