@import url('https://fonts.googleapis.com/css2?family=Space+Mono:wght@400;700&family=VT323&display=swap');

:root {
    --bg-color: #000000;
    --surface-color: #111111;
    --primary-text: #ffffff;
    --secondary-text: #b3b3b3;
    --border-color: #333333;
    --accent-color: #ffffff; /* Default accent, will be dynamic */
    --accent-hover: #cccccc;
    --accent-text: #000000;
    --shadow-color: rgba(255, 255, 255, 0.1);
    --monospace-font: 'VT323', monospace;
    --sans-serif-font: 'Space Mono', 'Roboto Mono', monospace;
    --transparent-bg: rgba(10, 10, 10, 0.7);
    --backdrop-blur: blur(15px);
    --terminal-text: var(--primary-text);
    --recycle-bin-icon-color: var(--primary-text);
    --dynamic-bg-image: none; /* For custom wallpaper */
    --dynamic-bg-size: cover;
    --dynamic-bg-position: center;
    --vanta-wave-color: 0x222222; /* Default Vanta wave color */
}

/* Default theme, which is dark */
body {
    font-family: var(--sans-serif-font);
    font-size: 13.5px;
    background-color: var(--bg-color);
    height: 100vh;
    overflow: hidden;
    cursor: default;
    user-select: none;
    color: var(--primary-text);
    transition: background-color 0.3s ease;
}

/* Light mode variations */
body.light-mode {
    --bg-color: #f7f7f7;
    --surface-color: #ffffff;
    --primary-text: #000000;
    --secondary-text: #555555;
    --border-color: #dddddd;
    --accent-color: #000000;
    --accent-hover: #333333;
    --accent-text: #ffffff;
    --shadow-color: rgba(0, 0, 0, 0.1);
    --transparent-bg: rgba(255, 255, 255, 0.7);
    --terminal-text: var(--primary-text);
    --recycle-bin-icon-color: var(--primary-text);
    --vanta-wave-color: 0xb1b1b1;
}

/* Styles for dynamic wallpaper */
#wallpaper-container {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: -2; /* Below the Vanta.js canvas */
    background-image: var(--dynamic-bg-image);
    background-size: var(--dynamic-bg-size);
    background-position: var(--dynamic-bg-position);
    transition: background-image 0.5s ease;
}

#wallpaper-canvas {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: -1;
    cursor: default;
    /* Allow wallpaper to show through Vanta waves if Vanta is semi-transparent */
    background-color: transparent !important;
}

@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes fadeOut { from { opacity: 1; } to { opacity: 0; } }
@keyframes fadeInScale {
    from { opacity: 0; transform: scale(0.97); }
    to { opacity: 1; transform: scale(1); }
}
@keyframes slideUp {
    from { opacity: 0; transform: translateY(15px); }
    to { opacity: 1; transform: translateY(0); }
}
@keyframes blink { 50% { opacity: 0; } }
@keyframes typing {
    from { width: 0; }
    to { width: 100%; }
}

/* --- System Screens --- */
.shutdown-overlay {
    position: fixed; top: 0; left: 0; width: 100%; height: 100%;
    background: #000; color: #fff;
    display: none; flex-direction: column;
    align-items: center; justify-content: center;
    font-family: var(--sans-serif-font);
    z-index: 10000;
    animation: fadeIn 0.5s ease;
}
.shutdown-overlay.active { display: flex; }
.shutdown-overlay h1 { font-size: 24px; margin-top: 20px; }

.boot-screen {
    position: fixed; top: 0; left: 0; width: 100%; height: 100%;
    background: #000; color: #e0e0e0;
    font-family: var(--monospace-font);
    display: flex;
    align-items: flex-start;
    justify-content: flex-start;
    z-index: 9999;
    padding: 40px;
}
.boot-container {
    width: 100%;
    max-width: 900px;
}
.boot-header {
    font-size: 96px;
    font-weight: bold;
    margin-bottom: 25px;
}
.boot-sub-header {
    font-size: 24px;
    margin-bottom: 35px;
}
.boot-message-line {
    font-size: 24px; /* Adjusted size */
    margin-bottom: 8px;
    white-space: pre;
    display: flex;
    justify-content: space-between;
    width: 100%;
}
.boot-message-line .typed-text {
    overflow: hidden;
    white-space: pre;
    display: inline-block;
}
.boot-message-line .status-warning { color: #ffeeaa; }
.boot-message-line .status-critical { color: #ff6666; font-weight: bold;}

.hidden { display: none !important; }

/* --- Desktop & Icons --- */
.desktop {
    height: calc(100vh - 42px);
    position: relative;
    background-color: transparent;
}
.desktop-icon {
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    color: var(--primary-text); text-shadow: none; padding: 8px; text-align: center;
    position: absolute; border: 1px solid transparent; border-radius: 4px;
    transition: background-color 0.25s ease, border-color 0.25s, opacity 0.25s, top 0.3s ease, left 0.3s ease, width 0.3s ease, height 0.3s ease;
    outline: none;
}

.desktop-icon-small { width: 80px; height: 70px; font-size: 11px; }
.desktop-icon-small .icon-image { width: 32px; height: 32px; font-size: 24px; margin-bottom: 4px; }
.desktop-icon-medium { width: 100px; height: 90px; font-size: 12px; }
.desktop-icon-medium .icon-image { width: 40px; height: 40px; font-size: 28px; margin-bottom: 6px; }
.desktop-icon-large { width: 120px; height: 110px; font-size: 14px; }
.desktop-icon-large .icon-image { width: 56px; height: 56px; font-size: 40px; margin-bottom: 8px; }

.desktop-icon:hover, .desktop-icon.focused { background: rgba(128, 128, 128, 0.1); }
.desktop-icon.selected { background-color: rgba(128, 128, 128, 0.3); border: 1px solid rgba(128, 128, 128, 0.5); }
.desktop-icon.cut { opacity: 0.6; }
.icon-image { display: flex; align-items: center; justify-content: center; font-weight: bold; color: var(--recycle-bin-icon-color); transition: width 0.3s ease, height 0.3s ease, font-size 0.3s ease; }
.icon-image img { width: 100%; height: 100%; object-fit: cover; border-radius: 4px; }
.desktop-icon.droppable-hover { border: 1px dashed var(--accent-color); background-color: rgba(128, 128, 128, 0.3); }
.icon-label { padding: 2px; word-break: break-word; }
.desktop-icon.selected .icon-label { background-color: var(--accent-color); color: var(--accent-text); }
.selection-box { position: absolute; border: 1px solid var(--primary-text); background-color: rgba(128, 128, 128, 0.2); z-index: 1000; display: none; }
.icon-rename-input { width: 100%; text-align: center; background: var(--surface-color); color: var(--primary-text); border: 1px solid var(--primary-text); padding: 2px; font-family: var(--sans-serif-font); outline: none; }


/* --- Taskbar --- */
.taskbar {
    position: fixed; bottom: 0; left: 0; right: 0; height: 42px;
    background: var(--transparent-bg);
    backdrop-filter: var(--backdrop-blur);
    -webkit-backdrop-filter: var(--backdrop-blur);
    border-top: 1px solid var(--border-color);
    display: flex; align-items: center; padding: 0 5px; z-index: 2000;
}
.taskbar-btn { height: 34px; line-height: 34px; padding: 0 10px; background: transparent; border: 1px solid transparent; color: var(--secondary-text); font-weight: normal; font-size: 13px; display: flex; align-items: center; gap: 8px; margin-right: 4px; border-radius: 4px; transition: background-color 0.25s, color 0.25s; }
#start-menu-btn { font-weight: bold; }
.taskbar-btn:hover { background-color: rgba(128,128,128,0.2); color: var(--primary-text); }
.taskbar-btn.active-menu { background-color: rgba(128,128,128,0.3); }
.taskbar-apps-container { display: flex; align-items: center; height: 100%; margin: 0 5px; overflow-x: auto; overflow-y: hidden; flex-grow: 1; flex-shrink: 1; }
.taskbar-app-btn { height: 34px; line-height: 34px; padding: 0 10px; background: transparent; border: 1px solid transparent; color: var(--secondary-text); font-size: 12px; display: flex; align-items: center; margin-right: 3px; border-radius: 4px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 160px; flex-shrink: 0; transition: background-color 0.25s, color 0.25s; }
.taskbar-app-btn.active { background: rgba(128, 128, 128, 0.4); color: var(--primary-text); font-weight: bold; }
.taskbar-time-area { padding: 0 10px; height: 34px; line-height: 1.2; font-size: 12px; color: var(--secondary-text); border-radius: 4px; margin-left: auto; flex-shrink: 0; white-space: nowrap; transition: background-color 0.25s, color 0.25s; display: flex; flex-direction: column; align-items: center; justify-content: center; }
.taskbar-time-area:hover { background: rgba(128,128,128,0.2); }

/* --- Redesigned Start Menu --- */
#start-menu {
    position: fixed;
    bottom: 42px;
    left: 5px;
    width: 280px;
    background: var(--transparent-bg);
    backdrop-filter: var(--backdrop-blur);
    -webkit-backdrop-filter: var(--backdrop-blur);
    border: 1px solid var(--border-color);
    border-radius: 8px;
    z-index: 1999;
    display: none;
    flex-direction: column;
    animation: slideUp 0.25s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    box-shadow: 0 -5px 20px var(--shadow-color);
    color: var(--primary-text);
}
.start-menu-header {
    padding: 15px;
    text-align: center;
    font-size: 16px;
    font-weight: bold;
    border-bottom: 1px solid var(--border-color);
}
.start-menu-body {
    padding: 10px;
    flex-grow: 1;
}
.start-menu-item { display: flex; align-items: center; gap: 12px; padding: 10px; border-radius: 4px; transition: background-color 0.2s, color 0.2s; }
.start-menu-item:hover { background-color: var(--accent-color); color: var(--accent-text); }
.start-menu-item i { font-size: 16px; width: 20px; text-align: center; }
.start-menu-footer { margin-top: auto; display: flex; justify-content: flex-end; align-items: center; padding: 10px; border-top: 1px solid var(--border-color); }
.power-controls { display: none; gap: 10px; } /* Changed to display: none; */
.power-btn { padding: 8px; border-radius: 4px; transition: background-color 0.2s; font-size: 16px; }
.power-btn:hover { background-color: rgba(128, 128, 128, 0.2); }

/* --- Popups (Calendar, Weather) --- */
.calendar-popup, .weather-popup {
    position: fixed;
    bottom: 50px;
    right: 5px;
    width: 280px;
    background: var(--transparent-bg);
    backdrop-filter: var(--backdrop-blur);
    -webkit-backdrop-filter: var(--backdrop-blur);
    border: 1px solid var(--border-color);
    border-radius: 6px;
    z-index: 2005;
    padding: 15px;
    display: none;
    font-family: var(--sans-serif-font);
    animation: slideUp 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    box-shadow: 0 -5px 20px var(--shadow-color);
}
.calendar-popup-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 10px; font-size: 14px; font-weight: bold;}
.calendar-nav button { background: none; border: none; color: var(--primary-text); padding: 2px 6px; border-radius: 4px; }
.calendar-nav button:hover { background-color: rgba(128,128,128,0.2); }
.calendar-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; text-align: center; font-size: 12px; }
.calendar-grid div { padding: 5px 0; border-radius: 4px; }
.calendar-grid .day-name { font-weight: bold; color: var(--secondary-text); }
body.light-mode .calendar-grid .day-name { color: #555; }
.calendar-grid .day-cell.other-month { color: #aaa; }
body.light-mode .calendar-grid .day-cell.other-month { color: #ccc; }
.calendar-grid .day-cell.current-day { background-color: var(--accent-color); color: var(--accent-text); font-weight: bold; }
.popup-current-time { margin-top: 15px; padding-top: 10px; border-top: 1px solid var(--border-color); text-align: center; font-size: 16px; font-family: var(--monospace-font); color: var(--primary-text); }

.weather-popup {
    right: 5px;
    left: auto;
    width: 320px;
}
.weather-header { display: flex; align-items: center; gap: 15px; margin-bottom: 15px; }
.weather-icon-large { font-size: 48px; }
.weather-main-temp { font-size: 36px; font-weight: bold; }
.weather-details { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; font-size: 13px; }

/* --- Windows, Menus, Dialogs --- */
.window {
    position: absolute;
    background: var(--surface-color);
    border: 1px solid var(--border-color);
    width: 600px;
    height: 450px;
    min-width: 350px;
    min-height: 250px;
    box-shadow: 0 8px 30px var(--shadow-color);
    border-radius: 8px;
    overflow: hidden;
    display: none;
    flex-direction: column;
    animation: fadeInScale 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    resize: both;
}
.window.active { display: flex; }
.window-titlebar {
    height: 32px;
    background: var(--bg-color);
    color: var(--secondary-text);
    display: flex;
    align-items: center;
    padding: 0 4px 0 12px;
    font-weight: bold;
    font-size: 13px;
    cursor: move;
    border-bottom: 1px solid var(--border-color);
    flex-shrink: 0;
}
.window-controls { margin-left: auto; display: flex; gap: 2px; }
.window-control {
    width: 30px; height: 30px;
    background: transparent; border: none;
    display: flex; align-items: center; justify-content: center;
    font-size: 12px; font-weight: bold;
    color: var(--secondary-text);
    border-radius: 44px;
    transition: background-color 0.25s, color 0.25s;
}
.window-control:hover { background: rgba(128,128,128,0.2); color: var(--primary-text); }
.window-content {
    flex-grow: 1;
    overflow: auto;
    background: var(--surface-color); /* This should change dynamically */
    color: var(--primary-text);
    font-family: var(--sans-serif-font);
    font-size: 14px;
    padding: 0px;
    display: flex;
    flex-direction: column;
}
.form-input, .form-textarea { background: var(--bg-color); border: 1px solid var(--border-color); color: var(--primary-text); padding: 10px; border-radius: 4px; width: 100%; margin-bottom: 10px; font-family: var(--sans-serif-font); }
.button { padding: 10px 20px; background: var(--accent-color); border: 1px solid var(--accent-color); color: var(--accent-text); border-radius: 4px; transition: background-color 0.2s, color 0.2s; font-weight: bold; cursor: pointer; }
.button:hover { background-color: var(--accent-hover); }

.fullscreen { position: fixed !important; top: 0 !important; left: 0 !important; width: 100vw !important; height: calc(100vh - 42px) !important; z-index: 1500 !important; border-radius: 0 !important; border: none !important; margin: 0 !important; animation: none; resize: none; }

.context-menu {
    position: fixed;
    background: var(--transparent-bg); /* This should change dynamically */
    backdrop-filter: var(--backdrop-blur);
    -webkit-backdrop-filter: var(--backdrop-blur);
    border: 1px solid var(--border-color);
    display: none;
    z-index: 2500;
    min-width: 220px;
    box-shadow: 0 5px 15px rgba(0,0,0,0.5);
    border-radius: 6px;
    padding: 5px;
    font-family: var(--sans-serif-font);
    animation: slideUp 0.18s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    outline: none;
}
.context-menu.show { display: block; }
.context-menu-item { padding: 8px 15px; display: flex; align-items: center; justify-content: space-between; gap: 10px; color: var(--primary-text); font-size: 13px; outline: none; position: relative; border-radius: 4px; }
.context-menu-item:hover, .context-menu-item.focused { background-color: var(--accent-color); color: var(--accent-text); }
.context-menu-item.disabled { color: var(--secondary-text); cursor: not-allowed; opacity: 0.6; }
.context-menu-item.disabled:hover, .context-menu-item.disabled.focused { background: transparent; color: var(--secondary-text); }
.context-menu-item .submenu { display: none; position: absolute; left: 100%; top: -5px; }
.context-menu-item:hover > .submenu { display: block; }
.context-menu hr { border: none; border-top: 1px solid var(--border-color); margin: 5px 0; }
.context-menu-item .fa-check { color: var(--accent-color); visibility: hidden; margin-right: 8px; }
.context-menu-item.selected .fa-check { visibility: visible; }
.context-menu-item:hover .fa-check { color: var(--accent-text); }


#modal-overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(0,0,0,0.6); z-index: 2999; display: none; }
.dialog-box { position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); background: var(--surface-color); border: 1px solid var(--border-color); padding: 25px; z-index: 3000; display: none; min-width: 380px; box-shadow: 0 8px 30px var(--shadow-color); border-radius: 6px; color: var(--primary-text); font-family: var(--sans-serif-font); animation: fadeInScale 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94); }
.dialog-title { font-weight: bold; font-size: 1.2em; margin-bottom: 15px; padding-bottom: 10px; border-bottom: 1px solid var(--border-color); color: var(--primary-text); }
.dialog-content { margin-bottom: 20px; font-size: 0.95em; line-height: 1.5;}
.dialog-buttons { display: flex; justify-content: flex-end; gap: 10px; }

/* --- App & Viewer Styles --- */
.window-content.info-window { padding: 0; }
.window-menubar { position: relative; z-index: 10; flex-shrink: 0; display: flex; background: var(--surface-color); border-bottom: 1px solid var(--border-color); padding: 4px 8px; gap: 4px;}
.menubar-item { padding: 4px 8px; border-radius: 3px; font-size: 13px; position: relative; }
.menubar-item:hover, .menubar-item.active { background-color: var(--accent-color); color: var(--accent-text); }
/* FIX: Submenu visibility */
.menubar-dropdown { display: none; position: absolute; top: 100%; left: 0; background: var(--surface-color); border: 1px solid var(--border-color); border-radius: 4px; padding: 4px; min-width: 180px; box-shadow: 0 4px 10px rgba(0,0,0,0.3); z-index: 20; }
.menubar-item.active > .menubar-dropdown { display: block; }

.dropdown-item { padding: 6px 12px; border-radius: 3px; font-size: 13px; display: flex; justify-content: space-between; align-items: center; }
.dropdown-item:hover { background-color: var(--accent-color); color: var(--accent-text); }
.dropdown-item .shortcut { color: var(--secondary-text); }
.dropdown-item:hover .shortcut { color: var(--accent-text); }
.dropdown-item.disabled { color: var(--secondary-text); cursor: not-allowed; }
.dropdown-item.disabled:hover { background: transparent; color: var(--secondary-text); }

/* Removed Notepad specific styles and replaced with Monaco Editor */
.monaco-editor-container {
    flex-grow: 1;
    width: 100%;
    height: 100%;
    overflow: hidden; /* Monaco handles its own scrolling */
}

/* Ensure Monaco editor themes (vs-dark, vs-light, hc-black) are correctly applied by Monaco itself */
/* We just need to make sure the container allows it to fill the space */


.file-explorer-container { display: flex; flex-direction: column; height: 100%; padding: 0 !important;}
.file-explorer-main { display: flex; flex-grow: 1; overflow: hidden; }
.file-explorer-sidebar { background-color: var(--bg-color); padding: 10px; border-right: 1px solid var(--border-color); flex-shrink: 0; overflow-y: auto; width: 180px; }
.sidebar-item { padding: 8px 12px; border-radius: 4px; margin-bottom: 5px; display: flex; align-items: center; gap: 10px; }
.sidebar-item i { color: var(--secondary-text); }
.sidebar-item:hover { background-color: var(--accent-color); color: var(--accent-text); }
.sidebar-item:hover i { color: var(--accent-text); }
.sidebar-item.active { background-color: var(--accent-color); color: var(--accent-text); font-weight: bold; }
.sidebar-item.active i { color: var(--accent-text); }
.file-explorer-content { flex-grow: 1; display: flex; flex-wrap: wrap; gap: 15px; padding: 15px; align-content: flex-start; flex-direction: row !important; height: 100%; overflow-y: auto; position: relative; }
.file-item { width: 100px; display: flex; flex-direction: column; align-items: center; text-align: center; padding: 10px; border: 1px solid transparent; border-radius: 4px; position: relative; }
.file-item:hover, .file-item.focused { background-color: rgba(128, 128, 128, 0.1); }
.file-item.selected { background: rgba(128, 128, 128, 0.3); border: 1px solid rgba(128, 128, 128, 0.5); }
.file-item.cut { opacity: 0.6; }
.file-thumbnail {
    width: 64px; height: 64px;
    background-color: var(--bg-color); /* This should change dynamically */
    border: 1px solid var(--border-color);
    display: flex; align-items: center; justify-content: center;
    margin-bottom: 8px; overflow: hidden;
    font-family: var(--monospace-font); font-size: 32px;
    color: var(--primary-text);
    border-radius: 4px;
}
.file-thumbnail .fa-folder { color: var(--primary-text); font-size: 48px; }
.file-thumbnail img, .file-thumbnail iframe { max-width: 100%; max-height: 100%; object-fit: cover; }
.file-name { font-size: 12px; color: var(--secondary-text); word-break: break-word; max-height: 2.4em; overflow: hidden; text-overflow: ellipsis; }
.file-item.selected .file-name { background-color: var(--accent-color); color: var(--accent-text); }
.file-rename-input { width: 100%; text-align: center; background: var(--surface-color); color: var(--primary-text); border: 1px solid var(--primary-text); padding: 2px; font-family: var(--sans-serif-font); outline: none; }


.image-viewer-content img, .video-player-content video, .audio-player-content audio, .pdf-viewer-content iframe { width: 100%; height: 100%; object-fit: contain; border: none; }
.audio-player-content { display: flex !important; align-items: center; justify-content: center; background-color: #111; }
.window-content.image-viewer-content, .window-content.video-player-content, .window-content.audio-player-content, .window-content.pdf-viewer-content { padding: 0; overflow: hidden; background-color: #111; }

#search-panel {
    position: fixed;
    bottom: 42px;
    left: 50%;
    width: 600px;
    max-height: 500px;
    background: var(--transparent-bg);
    backdrop-filter: var(--backdrop-blur);
    -webkit-backdrop-filter: var(--backdrop-blur);
    border: 1px solid var(--border-color);
    border-bottom: none;
    border-radius: 8px 8px 0 0;
    box-shadow: 0 -5px 20px var(--shadow-color);
    z-index: 2000;
    display: flex;
    flex-direction: column;
    visibility: hidden;
    opacity: 0;
    transform: translate(-50%, 20px);
    transition: opacity 0.25s ease, transform 0.25s ease, visibility 0.25s;
}
#search-panel.active {
    visibility: visible;
    opacity: 1;
    transform: translate(-50%, 0);
}

#search-input { width: 100%; padding: 15px; background: transparent; border: none; border-bottom: 1px solid var(--border-color); color: var(--primary-text); font-size: 18px; outline: none; }
#search-results { padding: 10px; overflow-y: auto; }
.search-result-item { padding: 10px 15px; display: flex; align-items: center; gap: 15px; border-radius: 4px; }
.search-result-item:hover, .search-result-item.focused { background-color: var(--accent-color); color: var(--accent-text); }
.search-result-item .icon-image { flex-shrink: 0; }
.search-result-item-info span { display: block; }
.search-result-item-info .name { font-weight: bold; }
.search-result-item-info .type { font-size: 12px; color: var(--secondary-text); }
.web-search-item { color: var(--primary-text); font-weight: bold; }

/* --- Terminal Redesign --- */
.terminal-container {
    padding: 10px !important;
    background-color: #0d0d0d;
    font-family: var(--monospace-font);
    font-size: 16px;
    line-height: 1.4;
    flex-grow: 1;
    display: flex;
    flex-direction: column;
    color: #e0e0e0;
}
body.light-mode .terminal-container { background-color: #f7f7f7; color: #000; }

.terminal-output { flex-grow: 1; overflow-y: auto; white-space: pre-wrap; }
.terminal-output div { min-height: 22px; }
.terminal-input-line { display: flex; align-items: center; }
.terminal-prompt { color: #e0e0e0; white-space: pre; }
body.light-mode .terminal-prompt { color: #000; }

.terminal-input { flex-grow: 1; background: transparent; border: none; outline: none; color: #e0e0e0; font-family: inherit; font-size: inherit; }
body.light-mode .terminal-input { color: #000; }

.terminal-input-cursor {
    background: #e0e0e0;
    width: 9px;
    height: 1.2em;
    display: inline-block;
    vertical-align: middle;
    animation: blink 1s step-end infinite;
}
body.light-mode .terminal-input-cursor { background: #000; }

/* --- MONOCHROME INFO WINDOWS --- */
.content-wrapper { padding: 40px; }
.content-header { border-bottom: 1px solid var(--border-color); padding-bottom: 20px; margin-bottom: 30px; }
.content-header h2 { font-size: 32px; font-weight: 700; color: var(--primary-text); margin: 0; }
.content-header .lead { font-size: 18px; color: var(--secondary-text); margin-top: 5px; }
.about-layout { display: flex; gap: 40px; align-items: center; }
.about-pic { width: 150px; height: 150px; border-radius: 50%; overflow: hidden; flex-shrink: 0; border: 2px solid var(--border-color); }
.about-pic img { width: 100%; height: 100%; object-fit: cover; }
.about-text p { font-size: 16px; line-height: 1.7; color: var(--secondary-text); }
.experience-timeline { position: relative; padding-left: 30px; border-left: 2px solid var(--border-color); }
.exp-item { position: relative; margin-bottom: 40px; }
.exp-item::before { content: ''; position: absolute; left: -39px; top: 5px; width: 14px; height: 14px; background: var(--surface-color); border: 2px solid var(--border-color); border-radius: 50%; }
.exp-item h3 { font-size: 20px; font-weight: 500; margin-bottom: 2px; }
.exp-item .meta { font-size: 14px; color: var(--secondary-text); margin-bottom: 10px; }
.exp-item .meta span { margin-right: 15px; }
.exp-item p { font-size: 15px; line-height: 1.6; color: var(--secondary-text); }
.project-list .project-item, .skills-section .project-item { padding: 20px; border: 1px solid var(--border-color); border-radius: 6px; margin-bottom: 20px; transition: background-color 0.2s; }
.project-list .project-item:hover, .skills-section .project-item:hover { background: var(--bg-color); }
.project-list h3, .skills-section h3 { font-size: 20px; margin-bottom: 5px; }
.project-list p, .skills-section p { color: var(--secondary-text); margin-bottom: 15px; }
.project-list .tags span, .skills-section .tags span { display: inline-block; background: var(--bg-color); color: var(--secondary-text); padding: 4px 8px; border-radius: 4px; font-size: 12px; margin-right: 5px; margin-bottom: 5px; }

/* --- Progress Bar --- */
#upload-progress-overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.5); display: none; justify-content: center; align-items: center; z-index: 9998; }
.progress-container { width: 400px; background: var(--surface-color); padding: 20px; border-radius: 8px; box-shadow: 0 5px 20px var(--shadow-color); text-align: center; }
.progress-bar { width: 100%; height: 20px; background: var(--bg-color); border: 1px solid var(--border-color); border-radius: 10px; margin-top: 10px; overflow: hidden; }
.progress-bar-inner { width: 0%; height: 100%; background: var(--primary-text); transition: width 0.3s ease; }

/* --- Settings App & Neofetch Styles --- */
.settings-section { margin-bottom: 25px; }
.settings-section h3 { font-size: 16px; font-weight: bold; margin-bottom: 15px; padding-bottom: 10px; border-bottom: 1px solid var(--border-color); }
.settings-option { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; }
.button.danger { background-color: #c0392b; border-color: #c0392b; color: #fff; }
.button.danger:hover { background-color: #e74c3c; }

.neofetch-container { display: flex; gap: 20px; align-items: flex-start; font-family: var(--monospace-font); }
.neofetch-logo { white-space: pre; color: var(--primary-text); font-weight: bold; }
.neofetch-info .label { color: var(--secondary-text); width: 100px; display: inline-block; }
body.light-mode .neofetch-info .label { color: #555; font-weight: bold; }

.neofetch-info .value { color: var(--primary-text); }
body.light-mode .neofetch-info .value { color: #000; }

/* Color picker input styling (will be removed from context menu but styles retained) */
input[type="color"] {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    border: none;
    width: 32px;
    height: 32px;
    padding: 0;
    border-radius: 50%;
    overflow: hidden;
    cursor: pointer;
    outline: none;
    transition: transform 0.1s ease;
}

input[type="color"]::-webkit-color-swatch-wrapper {
    padding: 0;
}

input[type="color"]::-webkit-color-swatch {
    border: none;
    border-radius: 50%;
}
input[type="color"]::-moz-color-swatch-wrapper {
    padding: 0;
}
input[type="color"]::-moz-color-swatch {
    border: none;
    border-radius: 50%;
}
input[type="color"]:hover {
    transform: scale(1.1);
}
