:root { --bg-color: #1c1c1e; --content-bg: #2c2c2e; --sidebar-bg: #111; --primary-accent: #0a84ff; --text-color: #f2f2f7; --text-secondary: #8e8e93; --border-color: #3a3a3c; --danger-color: #ff3b30; --button-bg-transparent: #ffffff1a; --button-bg-transparent-hover: #ffffff33; --queue-item-hover: #ffffff0d; --modal-bg: #000000b3; --player-bg-color: #000000; --status-bar-bg: #1c1c1e; } html[data-theme='light'] { --bg-color: #f2f2f7; --content-bg: #ffffff; --sidebar-bg: #e5e5ea; --primary-accent: #0a84ff; --text-color: #1c1c1e; --text-secondary: #6c6c70; --border-color: #c6c6c8; --danger-color: #ff3b30; --button-bg-transparent: #0000000d; --button-bg-transparent-hover: #0000001a; --queue-item-hover: #0000000d; --modal-bg: #00000080; --player-bg-color: #e5e5ea; --status-bar-bg: #f2f2f7; } * { box-sizing: border-box; margin: 0; padding: 0; user-select: none } body { font-family: 'Noto Sans KR', sans-serif; background-color: transparent; overflow: hidden; height: 100vh } #car-ui-container { width: 1200px; height: 700px; background-color: var(--bg-color); border-radius: 24px; box-shadow: 0 10px 40px #00000080; display: none; flex-direction: row; overflow: hidden; border: 1px solid var(--border-color); position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); transition: width .25s ease-out, height .25s ease-out, background-color .2s; resize: both; min-width: 640px; min-height: 420px } #car-ui-container.minimized { width: 560px; height: 315px; background-color: #000; resize: both; min-width: 256px; min-height: 144px } #car-ui-container.minimized .sidebar, #car-ui-container.minimized .app-header, #car-ui-container.minimized .app-controls, #car-ui-container.minimized #music-app .app-header, #car-ui-container.minimized #music-app .app-controls, #car-ui-container.minimized #music-queue-container, #car-ui-container.minimized #shortcuts-app, #car-ui-container.minimized .left-status, #car-ui-container.minimized #back-btn-ui, #car-ui-container.minimized #minimize-btn { display: none } #car-ui-container.minimized .app-content-area, #car-ui-container.minimized .app-view-wrapper, #car-ui-container.minimized #youtube-app, #car-ui-container.minimized #music-app { padding: 0; height: 100%; overflow: hidden } #car-ui-container.minimized #video-player-container, #car-ui-container.minimized #music-player-container { height: 100%; min-height: 100%; border-radius: 0; padding: 10px } #car-ui-container.minimized #now-playing-title { font-size: 16px; margin-bottom: 15px } #car-ui-container.minimized .music-controls button { width: 40px; height: 40px; font-size: 18px } #car-ui-container.minimized #maximize-btn { display: block !important } .sidebar { width: 90px; background-color: var(--sidebar-bg); padding: 175px 0 20px; display: flex; flex-direction: column; align-items: center; justify-content: space-between; flex-shrink: 0; transition: background-color .2s; } .sidebar-top-apps { display: flex; flex-direction: column; align-items: center; gap: 20px } .app-btn { width: 64px; height: 64px; border-radius: 18px; border: none; background-color: var(--content-bg); cursor: pointer; transition: transform .2s ease, box-shadow .2s ease; overflow: hidden } .app-btn img { width: 100%; height: 100%; object-fit: cover } .app-btn:hover { transform: scale(1.05) } .app-btn.active { box-shadow: 0 0 0 3px var(--primary-accent) } #home-btn { width: 64px; height: 64px; border-radius: 18px; border: none; background-color: var(--content-bg); cursor: pointer; transition: transform .2s ease, box-shadow .2s ease; overflow: hidden; color: var(--text-color); font-size: 28px } .app-content-area { flex-grow: 1; display: flex; flex-direction: column; position: relative } .status-bar { display: flex; justify-content: space-between; align-items: center; padding: 8px 15px; background-color: var(--status-bar-bg); color: var(--text-color); -webkit-app-region: drag; border-bottom: 1px solid var(--border-color); } .status-bar .left-status { display: flex; align-items: center; gap: 8px } .status-bar .center-controls { display: flex; align-items: center; gap: 15px } .status-bar .center-controls i { cursor: pointer; color: var(--text-color); padding: 5px; transition: color .2s } .status-bar .center-controls i:hover { color: var(--primary-accent) } .status-bar .back-btn { color: var(--primary-accent); cursor: pointer } .status-bar .back-btn i { margin-right: 5px } .app-view-wrapper { flex-grow: 1; padding: 0 35px 25px; position: relative; overflow: hidden; display: flex; flex-direction: column } .app-view { width: 100%; height: 100%; display: flex; flex-direction: column; animation: fadeIn .3s ease-in-out } .app-view.hidden { display: none } @keyframes fadeIn { from { opacity: 0; transform: translateY(10px) } to { opacity: 1; transform: translateY(0) } } .app-header h2 { font-size: 32px; font-weight: 700; color: var(--text-color); margin-bottom: 20px } .app-controls { display: flex; gap: 10px; margin-bottom: 20px } .app-controls input { flex-grow: 1; padding: 14px; font-size: 16px; background-color: var(--content-bg); border: 1px solid var(--border-color); border-radius: 10px; color: var(--text-color); outline: none } .app-controls input:focus { border-color: var(--primary-accent) } .app-controls button { padding: 0 24px; font-size: 16px; font-weight: 500; background-color: var(--primary-accent); border: none; border-radius: 10px; color: #fff; cursor: pointer; transition: background-color .2s; font-family: inherit } .app-controls button:hover { background-color: #0060c0 } #video-player-container { flex-grow: 1; background-color: var(--player-bg-color); border-radius: 12px; display: flex; justify-content: center; align-items: center; color: var(--text-secondary); min-height: 200px; overflow: hidden; } #video-player-container iframe { width: 100%; height: 100%; border-radius: inherit; border: none } #music-app-content { display: flex; flex-grow: 1; gap: 20px; overflow: hidden } #music-player-container { flex: 3; background-color: var(--content-bg); border-radius: 12px; display: flex; flex-direction: column; justify-content: center; align-items: center; padding: 20px; min-height: 300px; transition: all .25s ease-out } #now-playing-title { font-size: 22px; font-weight: 500; margin-bottom: 40px; text-align: center; color: var(--text-color) } .music-controls { display: flex; gap: 20px; align-items: center } .music-controls button { width: 60px; height: 60px; border-radius: 50%; border: none; cursor: pointer; font-size: 24px; color: var(--text-color); background-color: var(--button-bg-transparent); transition: background-color 0.2s, transform .2s; display: flex; justify-content: center; align-items: center } .music-controls button:hover { transform: scale(1.1); background-color: var(--button-bg-transparent-hover); } .music-controls .play-pause-btn { width: 70px; height: 70px; font-size: 30px } #music-queue-container { flex: 2; display: flex; flex-direction: column; background-color: var(--content-bg); border-radius: 12px; padding: 15px; overflow: hidden } #music-queue-container h3 { font-size: 18px; color: var(--text-secondary); margin-bottom: 10px; padding: 0 5px; flex-shrink: 0 } #music-queue-list { flex-grow: 1; overflow-y: auto } #music-queue-list::-webkit-scrollbar { width: 8px } #music-queue-list::-webkit-scrollbar-track { background: transparent } #music-queue-list::-webkit-scrollbar-thumb { background-color: var(--border-color); border-radius: 4px } #music-queue-list::-webkit-scrollbar-thumb:hover { background-color: var(--text-secondary) } .queue-item { display: flex; justify-content: space-between; align-items: center; padding: 12px 8px; border-radius: 8px; cursor: pointer; transition: background-color .2s; color: var(--text-color) } .queue-item:hover { background-color: var(--queue-item-hover); } .queue-item.playing { background-color: var(--primary-accent); color: #fff } .queue-item-title { flex-grow: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; margin-right: 10px } .remove-queue-item { background: none; border: none; color: var(--text-secondary); cursor: pointer; font-size: 16px; padding: 5px; opacity: .5; transition: opacity 0.2s, color .2s } .queue-item:hover .remove-queue-item { opacity: 1 } .queue-item.playing .remove-queue-item, .remove-queue-item:hover { color: var(--danger-color) } .shortcuts-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 20px } .shortcut-item { background-color: var(--content-bg); border-radius: 12px; padding: 20px; display: flex; flex-direction: column; justify-content: space-between; height: 120px; cursor: pointer; transition: transform .2s, background-color .2s; } .shortcut-item:hover { transform: translateY(-5px) } .shortcut-item p { font-size: 18px; font-weight: 500; color: var(--text-color) } .shortcut-item span { font-size: 36px; align-self: flex-end } #autopilot-modal { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-color: var(--modal-bg); display: none; justify-content: center; align-items: center; z-index: 100; animation: fadeIn .2s ease-in-out } .modal-content { background-color: var(--content-bg); padding: 30px; border-radius: 20px; box-shadow: 0 5px 25px #0006; width: 450px; text-align: center } .modal-content h3 { font-size: 24px; color: var(--text-color); margin-bottom: 25px } .driving-styles { display: flex; flex-direction: column; gap: 15px } .style-btn { padding: 15px; font-size: 18px; font-weight: 500; border-radius: 10px; border: 1px solid var(--border-color); background-color: var(--button-bg-transparent); color: var(--text-color); cursor: pointer; transition: background-color 0.2s, border-color .2s; font-family: inherit } .style-btn:hover { background-color: var(--primary-accent); border-color: var(--primary-accent) } #cancel-autopilot-btn { background-color: var(--danger-color); border-color: var(--danger-color) } #cancel-autopilot-btn:hover { background-color: #d13026 } #close-modal-btn { margin-top: 25px; background: none; border: none; color: var(--text-secondary); font-size: 16px; cursor: pointer; font-family: inherit } .theme-switch-container { display: flex; align-items: center; gap: 8px; padding: 5px; margin-left: 15px; } .theme-icon { color: var(--text-secondary); font-size: 16px; } .theme-switch { width: 44px; height: 24px; background-color: var(--button-bg-transparent); border-radius: 12px; cursor: pointer; padding: 3px; transition: background-color 0.2s ease; border: 1px solid var(--border-color); display: flex; align-items: center; } .theme-switch-handle { width: 18px; height: 18px; background-color: var(--text-color); border-radius: 50%; transition: transform 0.25s ease-in-out; } .theme-switch.light .theme-switch-handle { transform: translateX(20px); }