:root {
    --bs-body-bg: #1e1e1e;
    --bs-body-color: #d4d4d4;
    --bs-border-color: #333;
    --tree-hover-bg: #2a2d2e;
    --tree-active-bg: #37373d;
    --tab-active-bg: #1e1e1e;
    --tab-inactive-bg: #2d2d2d;
}

/* Pulse animation for killswitch button */
@keyframes pulse {
    0% {
        box-shadow: 0 0 0 0 rgba(220, 53, 69, 0.7);
    }

    70% {
        box-shadow: 0 0 0 8px rgba(220, 53, 69, 0);
    }

    100% {
        box-shadow: 0 0 0 0 rgba(220, 53, 69, 0);
    }
}

@media (max-width: 768px) {
    body {
        font-size: 14px;
        /* Slightly larger base text for readability when zoomed out */
    }

    /* Optimize sidebar for mobile */
    #sidebar {
        position: absolute;
        bottom: 0px;
        top: 41px;
        /* Below navbar */
        left: 0;
        z-index: 1040;
        /* Increased to be above editor but below modals (1050) */
        background-color: var(--bs-body-bg);
        width: 80% !important;
        /* Wider drawer on phone */
        max-width: 320px;
        box-shadow: 2px 0 10px rgba(0, 0, 0, 0.5);
        display: flex;
        flex-direction: column;
    }

    #sidebar.d-none {
        display: none !important;
    }

    /* Make touch targets slightly friendlier but keep layout dense */
    .file-item {
        padding: 10px 10px;
        /* Larger touch target for files */
    }

    /* Larger touch targets for tabs and buttons */
    #terminal-tabs button,
    #editor-tabs .editor-tab {
        padding-top: 8px !important;
        padding-bottom: 8px !important;
    }

    /* Terminal adjustments */
    #terminal-pane {
        height: 55% !important;
        /* More space for terminal on mobile, accounting for toolbar */
    }

    /* Editor tabs scrollable */
    #editor-tabs {
        overflow-x: auto;
        white-space: nowrap;
    }

    ::-webkit-scrollbar {
        width: 4px;
        /* Thinner scrollbars on mobile */
        height: 4px;
    }
}

body {
    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
    height: 100vh;
    overflow: hidden;
}

/* Scrollbars */
::-webkit-scrollbar {
    width: 10px;
    height: 10px;
}

::-webkit-scrollbar-track {
    background: transparent;
}

::-webkit-scrollbar-thumb {
    background: #424242;
    border-radius: 5px;
}

::-webkit-scrollbar-thumb:hover {
    background: #4f4f4f;
}

/* Navbar */
.navbar {
    height: 40px;
}

/* File Tree */
.file-item {
    cursor: pointer;
    padding: 2px 8px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    border-radius: 3px;
    color: #cccccc;
    font-size: 0.9rem;
}

.file-item:hover {
    background-color: var(--tree-hover-bg);
}

.file-item.active {
    background-color: var(--tree-active-bg);
    color: #fff;
}

.tree-indent {
    display: inline-block;
    width: 12px;
}

/* Editor Tabs */
.editor-tab {
    padding: 6px 12px;
    cursor: pointer;
    background-color: var(--tab-inactive-bg);
    border-right: 1px solid var(--bs-border-color);
    font-size: 0.85rem;
    display: flex;
    align-items: center;
    color: #969696;
    user-select: none;
    max-width: 150px;
}

.editor-tab.active {
    background-color: var(--tab-active-bg);
    color: #fff;
    border-top: 1px solid #007fd4;
}

.editor-tab:hover {
    background-color: #2a2d2e;
}

.editor-tab .close-tab {
    margin-left: 8px;
    opacity: 0;
    transition: opacity 0.2s;
    border-radius: 3px;
    padding: 0 4px;
}

.editor-tab:hover .close-tab,
.editor-tab.active .close-tab {
    opacity: 1;
}

.editor-tab .close-tab:hover {
    background-color: #4b4b4b;
}

/* Terminal */
.terminal {
    padding: 4px;
}

.xterm-viewport {
    overflow-y: auto !important;
}

/* Custom Scroller for Terminal Shell */
.xterm-viewport::-webkit-scrollbar {
    width: 14px;
    /* Wider for touch */
}

.xterm-viewport::-webkit-scrollbar-thumb {
    background-color: #5a5d5e;
    border: 3px solid #1e1e1e;
    /* Creates padding effect */
    border-radius: 7px;
}

.xterm-viewport::-webkit-scrollbar-thumb:hover {
    background-color: #808080;
}

/* Link Overlay Items */
.link-overlay-item {
    pointer-events: auto;
    /* Enable clicking */
    background-color: rgba(37, 37, 38, 0.95);
    border: 1px solid #454545;
    border-radius: 4px;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.3);
    animation: slideIn 0.3s ease-out;
    max-width: 100%;
}

@keyframes slideIn {
    from {
        transform: translateX(100%);
        opacity: 0;
    }

    to {
        transform: translateX(0);
        opacity: 1;
    }
}

.link-overlay-item a {
    color: #3794ff;
    text-decoration: none;
    word-break: break-all;
}

.link-overlay-item a:hover {
    text-decoration: underline;
}

/* Link Overlay Container Styles */
#link-overlay-container {
    z-index: 1000;
    max-width: 300px;
    pointer-events: none;
    max-height: 100%;
    overflow-y: hidden;
}

/* Mobile Toolbar */
#mobile-terminal-toolbar {
    height: 40px;
    flex-shrink: 0;
}

#mobile-terminal-toolbar::-webkit-scrollbar {
    height: 2px;
}

#mobile-terminal-toolbar button {
    height: 28px;
    font-size: 0.8rem;
    white-space: nowrap;
}

.term-toggle.active {
    background-color: var(--bs-primary);
    color: white;
    border-color: var(--bs-primary);
}

/* Modals */
.modal-content {
    background-color: #252526;
    border: 1px solid #454545;
    color: #cccccc;
}

.modal-header,
.modal-footer {
    border-color: #454545;
}

.form-control {
    background-color: #3c3c3c;
    border-color: #3c3c3c;
    color: #cccccc;
}

.form-control:focus {
    background-color: #3c3c3c;
    border-color: #007fd4;
    color: #cccccc;
    box-shadow: 0 0 0 1px #007fd4;
}

/* Context Menu */
#context-menu {
    background-color: #252526;
    border: 1px solid #454545;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.3);
}

.dropdown-item {
    color: #cccccc;
}

.dropdown-item:hover {
    background-color: #094771;
    color: #fff;
}

/* Enable native text selection on mobile devices */
#editor-container,
#terminal-container,
.ace_content,
.ace_text-input,
.ace_layer {
    -webkit-user-select: text !important;
    user-select: text !important;
    -webkit-touch-callout: default !important;
    /* Allow native context menu */
}

/* Ensure Ace's text input handles don't get hidden or blocked */
.ace_text-input {
    z-index: 1000 !important;
    /* Ensure it is top for interactions if needed */
}