/* ═══ HugPanel Custom Styles ═══ */ /* Scrollbar */ ::-webkit-scrollbar { width: 6px; height: 6px; } ::-webkit-scrollbar-track { background: transparent; } ::-webkit-scrollbar-thumb { background: #374151; border-radius: 3px; } ::-webkit-scrollbar-thumb:hover { background: #4b5563; } /* Hide scrollbar utility */ .scrollbar-hide { -ms-overflow-style: none; scrollbar-width: none; } .scrollbar-hide::-webkit-scrollbar { display: none; } /* ═══ Full-height layout ═══ */ html, body { height: 100%; margin: 0; overflow: hidden; } /* Terminal container */ #terminal-container { min-height: 200px; } #terminal-container .xterm { height: 100%; padding: 4px; } #terminal-container .xterm-viewport { scrollbar-width: thin; scrollbar-color: #374151 transparent; } #terminal-container .xterm-viewport::-webkit-scrollbar { width: 6px; } #terminal-container .xterm-viewport::-webkit-scrollbar-thumb { background: #374151; border-radius: 3px; } /* Textarea editor */ textarea { tab-size: 4; -moz-tab-size: 4; } /* Editor area fills all available space */ .split-editor { display: flex; flex-direction: column; min-height: 0; flex: 1; } .split-editor textarea { flex: 1; min-height: 0; } /* Smooth transitions */ * { -webkit-tap-highlight-color: transparent; } /* Mobile touch improvements */ @media (max-width: 1023px) { .group:hover .group-hover\:opacity-100 { opacity: 1; } /* Always show file actions on mobile */ .group .opacity-0, .file-item .file-actions { opacity: 1 !important; } } /* ═══ Mobile: full-height panels ═══ */ @media (max-width: 1279px) { /* Editor tab: fill remaining viewport height */ .split-editor { height: calc(100vh - 7rem); min-height: 300px; } /* Files tab: fill remaining height */ .split-files { height: calc(100vh - 7rem); min-height: 300px; } } /* Focus ring */ input:focus, textarea:focus, button:focus-visible { outline: none; box-shadow: 0 0 0 2px rgba(139, 92, 246, 0.3); } /* Animation for loading spinner */ @keyframes spin { to { transform: rotate(360deg); } } .animate-spin { animation: spin 1s linear infinite; } /* Bottom sheet modal on mobile */ @media (max-width: 639px) { [x-show="showCreateZone"] > div, [x-show="showRename"] > div { border-bottom-left-radius: 0; border-bottom-right-radius: 0; margin-bottom: 0; } } /* ═══ Desktop Enhancements ═══ */ /* Desktop split: files + editor side by side on lg+ (1024px) */ @media (min-width: 1024px) { .desktop-split { flex-direction: row !important; flex: 1; min-height: 0; } .desktop-split > .split-files { width: 340px; min-width: 280px; max-width: 400px; flex-shrink: 0; border-right: 1px solid #1f2937; display: flex; flex-direction: column; min-height: 0; } .desktop-split > .split-editor { flex: 1; min-width: 0; display: flex; flex-direction: column; min-height: 0; } } /* xl+ wider file panel */ @media (min-width: 1280px) { .desktop-split > .split-files { width: 380px; } } /* Desktop: better file list items */ @media (min-width: 1024px) { .file-item .file-actions { opacity: 0; transition: opacity 0.15s; } .file-item:hover .file-actions { opacity: 1; } } /* Desktop: content areas fill width (no max-width constraint) */ .desktop-content { width: 100%; max-width: 100%; }