/* Tablet region: 1015x768px - global UI sizing */ @media (min-width: 900px) and (max-width: 1100px) and (min-height: 700px) and (max-height: 800px) { .ide-container.grid-layout { max-width: 1015px; max-height: 768px; margin: 0 auto; grid-template-rows: 60px 1fr 120px; grid-template-columns: 90px 1fr 220px; grid-template-areas: "title title title" "sidebar editor right" "bottom bottom bottom"; border-radius: 20px; box-shadow: 0 2px 24px 0 rgba(0,0,0,0.20); background: #101014; padding: 12px; overflow: hidden; } .grid-title { font-size: 1.25em; padding: 16px 20px; } .grid-sidebar { min-width: 90px; max-width: 120px; font-size: 1.18em; padding: 16px 0; border-radius: 14px; box-shadow: 0 1px 10px 0 rgba(0,0,0,0.12); } .grid-right { min-width: 180px; max-width: 220px; font-size: 1.15em; padding: 16px 0; border-radius: 14px; box-shadow: 0 1px 10px 0 rgba(0,0,0,0.12); } .grid-editor { min-width: 0; padding: 0 3vw; font-size: 1.22em; border-radius: 16px; box-shadow: 0 1px 10px 0 rgba(0,0,0,0.12); background: #181818; } .grid-bottom { min-height: 120px; max-height: 180px; font-size: 1.15em; padding: 24px 2vw 56px 2vw; border-radius: 14px; box-shadow: 0 1px 10px 0 rgba(0,0,0,0.12); background: #15151a; box-sizing: border-box; } .title-bar { padding: 16px 20px; font-size: 1.25em; border-radius: 14px; box-shadow: 0 1px 10px 0 rgba(0,0,0,0.12); background: #18181c; } .editor-tab, .file-item, .bottom-tab { min-height: 52px; font-size: 1.22em; padding: 0 20px; border-radius: 10px; margin-bottom: 8px; background: #222226; box-shadow: 0 1px 6px 0 rgba(0,0,0,0.10); touch-action: manipulation; } .bottom-collapse-btn { font-size: 1.6em !important; min-width: 56px; min-height: 56px; padding: 0 14px; border-radius: 10px; touch-action: manipulation; } .network-viz.docked { max-width: 440px; padding: 18px 20px; margin: 12px auto; font-size: 1.15em; border-radius: 14px; box-shadow: 0 1px 10px 0 rgba(0,0,0,0.12); } } /* Responsive: docked status panel inside bottom panel for tablet/mobile */ .network-viz.docked { margin: 16px auto; padding: 16px 18px; border-radius: 14px; background: #18181c; box-shadow: 0 1px 8px 0 rgba(0,0,0,0.10); max-width: 420px; width: 100%; display: flex; flex-direction: column; align-items: flex-start; gap: 12px; } .network-viz-header { font-size: 1.1em; font-weight: 600; margin-bottom: 8px; color: #e0e0e0; } .network-nodes { display: flex; flex-direction: row; gap: 18px; } .network-node { display: flex; flex-direction: column; align-items: center; gap: 4px; } .node-dot { width: 18px; height: 18px; border-radius: 50%; margin-bottom: 4px; } .node-dot.foundation { background: #ff0000; } .node-dot.corporation { background: #0066ff; } .node-dot.labs { background: #ffa500; } .node-label { font-size: 1em; font-weight: 500; } .node-status { font-size: 0.95em; color: #b0b0b0; text-align: center; } @media (max-width: 1024px) { .network-viz.docked { max-width: 98vw; padding: 12px 8px; margin: 8px auto; font-size: 1.08em; } .network-nodes { gap: 10px; } .network-node { gap: 2px; } .node-dot { width: 16px; height: 16px; } } @media (min-width: 768px) and (max-width: 1024px) { .ide-container.grid-layout { grid-template-rows: 56px 1fr 120px; grid-template-columns: 72px 1fr 180px; grid-template-areas: "title title title" "sidebar editor right" "bottom bottom bottom"; border-radius: 18px; box-shadow: 0 2px 16px 0 rgba(0,0,0,0.18); background: #101014; padding: 8px; } .grid-sidebar { min-width: 56px; max-width: 90px; font-size: 1.15em; padding: 12px 0; border-right: none; background: #18181c; border-radius: 12px; box-shadow: 0 1px 8px 0 rgba(0,0,0,0.10); } .grid-right { min-width: 100px; max-width: 180px; font-size: 1.1em; border-left: none; background: #18181c; border-radius: 12px; box-shadow: 0 1px 8px 0 rgba(0,0,0,0.10); } .grid-editor { min-width: 0; padding: 0 3vw; font-size: 1.18em; touch-action: manipulation; border-radius: 14px; box-shadow: 0 1px 8px 0 rgba(0,0,0,0.10); background: #181818; } .grid-bottom { min-height: 80px; max-height: 160px; font-size: 1.1em; padding: 16px 2vw 40px 2vw; border-radius: 12px; box-shadow: 0 1px 8px 0 rgba(0,0,0,0.10); background: #15151a; box-sizing: border-box; } @media (max-width: 1024px) { .grid-bottom { padding-bottom: 56px; padding-top: 24px; min-height: 100px; max-height: 180px; } } .title-bar { padding: 12px 12px; font-size: 1.18em; border-radius: 12px; box-shadow: 0 1px 8px 0 rgba(0,0,0,0.10); background: #18181c; } .editor-tab, .file-item, .bottom-tab { min-height: 48px; font-size: 1.18em; padding: 0 16px; touch-action: manipulation; border-radius: 8px; margin-bottom: 6px; background: #222226; box-shadow: 0 1px 4px 0 rgba(0,0,0,0.08); } } @media (max-width: 768px) { .ide-container.grid-layout { grid-template-rows: 56px 1fr 100px; grid-template-columns: 1fr; grid-template-areas: "title" "editor" "bottom"; width: 100vw; height: 100vh; overflow: hidden; border-radius: 0; box-shadow: none; background: #101014; padding: 0; } .grid-sidebar, .grid-right { display: none !important; } .grid-editor { grid-area: editor; width: 100vw; height: calc(100vh - 56px - 100px); min-width: 0; min-height: 0; overflow: auto; font-size: 1.22em; padding: 0 4vw; touch-action: manipulation; border-radius: 0; box-shadow: none; background: #181818; } .grid-bottom { min-height: 64px; max-height: 120px; width: 100vw; overflow-y: auto; font-size: 1.15em; padding: 0 2vw; border-radius: 0; box-shadow: none; background: #15151a; } .title-bar { width: 100vw; min-width: 0; padding: 12px 12px; font-size: 1.22em; border-radius: 0; box-shadow: none; background: #18181c; } .editor-tab, .file-item, .bottom-tab { min-height: 48px; font-size: 1.22em; padding: 0 16px; touch-action: manipulation; border-radius: 0; margin-bottom: 8px; background: #222226; box-shadow: none; } .grid-bottom.collapsed { display: none !important; } } /* Tablet-specific layout: 768px to 1024px */ @media (min-width: 768px) and (max-width: 1024px) { .ide-container.grid-layout { grid-template-rows: 48px 1fr 120px; grid-template-columns: 80px 1fr 220px; grid-template-areas: "title title title" "sidebar editor right" "bottom bottom bottom"; width: 100vw; height: 100vh; overflow: hidden; } .grid-sidebar { min-width: 60px; max-width: 100px; font-size: 1.1em; padding: 8px 0; border-right: 1px solid #222; } .grid-right { min-width: 120px; max-width: 220px; font-size: 1em; border-left: 1px solid #222; } .grid-editor { min-width: 0; padding: 0 2vw; font-size: 1.1em; .bottom-tab { display: inline-block; padding: 14px 28px; font-size: 1.18em; border-radius: 10px 10px 0 0; background: #222226; color: #e0e0e0; margin-right: 12px; cursor: pointer; transition: background 0.2s; min-width: 56px; min-height: 48px; touch-action: manipulation; } .bottom-tab.active { background: #333344; color: #fff; } .bottom-collapse-btn { font-size: 1.35em !important; min-width: 44px; min-height: 44px; padding: 0 8px; border-radius: 8px; touch-action: manipulation; } @media (max-width: 1024px) { .bottom-tab { font-size: 1.22em; min-width: 64px; min-height: 52px; padding: 16px 32px; } .bottom-collapse-btn { font-size: 1.5em !important; min-width: 52px; min-height: 52px; padding: 0 12px; } } padding: 0 12px; touch-action: manipulation; } } /* Mobile layout: <768px */ @media (max-width: 768px) { .ide-container.grid-layout { grid-template-rows: 48px 1fr 120px; grid-template-columns: 1fr; grid-template-areas: "title" "editor" "bottom"; width: 100vw; height: 100vh; overflow: hidden; } .grid-sidebar, .grid-right { display: none !important; } .grid-editor { grid-area: editor; width: 100vw; height: calc(100vh - 48px - 120px); min-width: 0; min-height: 0; overflow: auto; font-size: 1.15em; padding: 0 2vw; touch-action: manipulation; } .grid-bottom { min-height: 80px; max-height: 160px; width: 100vw; overflow-y: auto; font-size: 1.1em; padding: 0 1vw; } .title-bar { width: 100vw; min-width: 0; padding: 8px 8px; font-size: 1.15em; } .editor-tab, .file-item, .bottom-tab { min-height: 44px; font-size: 1.15em; padding: 0 12px; touch-action: manipulation; } .grid-bottom.collapsed { display: none !important; } } /* AeThex Studio Mockup Theme */ @import url('https://fonts.googleapis.com/css2?family=Roboto+Mono:wght@300;400;500;700&family=JetBrains+Mono:wght@400;700&display=swap'); * { margin: 0; padding: 0; box-sizing: border-box; } body, .ide-container { font-family: 'JetBrains Mono', 'Roboto Mono', monospace; background: #0a0a0a; color: #e0e0e0; height: 100vh; } body::before { content: ''; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: repeating-linear-gradient( 0deg, rgba(0, 0, 0, 0.15), rgba(0, 0, 0, 0.15) 1px, transparent 1px, transparent 2px ); pointer-events: none; z-index: 1000; } .ide-container { display: flex; flex-direction: column; height: 100vh; width: 100vw; overflow: hidden; } .title-bar { background: #0d0d0d; border-bottom: 2px solid #1a1a1a; padding: 8px 16px; display: flex; align-items: center; justify-content: space-between; position: relative; } .title-bar::after { content: ''; position: absolute; bottom: -2px; left: 0; width: 100%; height: 2px; background: linear-gradient(90deg, #ff0000 33%, #0066ff 33%, #0066ff 66%, #ffa500 66%); } .title-left { display: flex; align-items: center; gap: 20px; } .logo-small { font-size: 1.2em; font-weight: 700; letter-spacing: 3px; background: linear-gradient(90deg, #ff0000, #0066ff, #ffa500); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; } .project-name { color: #666; font-size: 0.9em; } .project-name span { color: #0066ff; font-weight: 700; } .title-right { display: flex; gap: 15px; font-size: 0.85em; } .status-indicator { display: flex; align-items: center; gap: 8px; } .status-dot { width: 8px; height: 8px; border-radius: 50%; animation: pulse 2s infinite; } .status-dot.foundation { background: #ff0000; } .status-dot.corporation { background: #0066ff; } .status-dot.labs { background: #ffa500; } @keyframes pulse { 0%, 100% { opacity: 1; box-shadow: 0 0 8px currentColor; } 50% { opacity: 0.6; box-shadow: 0 0 4px currentColor; } } .main-content { display: flex; flex: 1; overflow: hidden; } .sidebar { width: 250px; background: #0d0d0d; border-right: 1px solid #1a1a1a; display: flex; flex-direction: column; } .sidebar-section { border-bottom: 1px solid #1a1a1a; } .sidebar-header { padding: 12px 16px; font-size: 0.75em; text-transform: uppercase; letter-spacing: 2px; color: #666; display: flex; align-items: center; gap: 8px; border-left: 3px solid; } .sidebar-header.foundation { border-color: #ff0000; } .sidebar-header.corporation { border-color: #0066ff; } .sidebar-header.labs { border-color: #ffa500; } .file-tree { padding: 8px 0; } .file-item { padding: 6px 16px 6px 24px; font-size: 0.85em; cursor: pointer; transition: background 0.2s; display: flex; align-items: center; gap: 8px; } .file-item:hover { background: #1a1a1a; } .file-item.active { background: #1a1a1a; border-left: 2px solid #0066ff; } .file-icon { color: #666; } .editor-area { flex: 1; display: flex; flex-direction: column; background: #0f0f0f; } .editor-tabs { background: #0d0d0d; border-bottom: 1px solid #1a1a1a; display: flex; padding: 0; } .editor-tab { padding: 10px 20px; font-size: 0.85em; background: #0d0d0d; border-right: 1px solid #1a1a1a; cursor: pointer; transition: background 0.2s; display: flex; align-items: center; gap: 8px; } .editor-tab:hover { background: #1a1a1a; } .editor-tab.active { background: #0f0f0f; border-bottom: 2px solid #0066ff; } .editor-content { flex: 1; overflow: auto; padding: 20px; } .code-line { display: flex; font-size: 0.9em; line-height: 1.6; font-family: 'JetBrains Mono', monospace; } .line-number { color: #333; width: 40px; text-align: right; padding-right: 20px; user-select: none; } .line-content { flex: 1; } .keyword { color: #ff0000; font-weight: 700; } .function { color: #0066ff; } .comment { color: #ffa500; font-style: italic; } .string { color: #00ff88; } .number { color: #ff6b9d; } .variable { color: #e0e0e0; } .operator { color: #999; } .right-panel { width: 320px; background: #0d0d0d; border-left: 1px solid #1a1a1a; display: flex; flex-direction: column; } .panel-header { padding: 12px 16px; font-size: 0.75em; text-transform: uppercase; letter-spacing: 2px; border-bottom: 1px solid #1a1a1a; display: flex; align-items: center; justify-content: space-between; } .panel-content { flex: 1; overflow: auto; padding: 16px; } .copilot-message { margin-bottom: 16px; padding: 12px; background: #1a1a1a; border-left: 3px solid; font-size: 0.85em; line-height: 1.6; } .copilot-message.labs { border-color: #ffa500; } .copilot-message.foundation { border-color: #ff0000; } .copilot-message.corporation { border-color: #0066ff; } .copilot-label { font-size: 0.75em; text-transform: uppercase; letter-spacing: 1px; margin-bottom: 8px; font-weight: 700; } .copilot-label.labs { color: #ffa500; } .copilot-label.foundation { color: #ff0000; } .copilot-label.corporation { color: #0066ff; } .bottom-panel { height: 200px; background: #0d0d0d; border-top: 1px solid #1a1a1a; display: flex; flex-direction: column; } .bottom-tabs-row { display: flex; align-items: center; justify-content: space-between; padding: 0 8px; } .bottom-tabs { display: flex; gap: 0; border-bottom: 1px solid #1a1a1a; } .bottom-tab { padding: 8px 16px; font-size: 0.8em; text-transform: uppercase; letter-spacing: 1px; cursor: pointer; border-right: 1px solid #1a1a1a; transition: background 0.2s; } .bottom-tab:hover { background: #1a1a1a; } .bottom-tab.active { background: #1a1a1a; border-bottom: 2px solid #0066ff; } .bottom-content { flex: 1; overflow: auto; padding: 12px; } .terminal-output { flex: 1; overflow: auto; padding: 12px; font-size: 0.85em; line-height: 1.6; } .terminal-line { margin: 2px 0; } .terminal-line.foundation { color: #ff0000; } .terminal-line.corporation { color: #0066ff; } .terminal-line.labs { color: #ffa500; } .terminal-line.success { color: #00ff00; } .terminal-line.error { color: #ff0000; } .network-viz { position: fixed; bottom: 220px; right: 20px; width: 300px; background: rgba(13, 13, 13, 0.95); border: 1px solid #1a1a1a; padding: 16px; font-size: 0.75em; z-index: 100; } .network-viz-header { text-transform: uppercase; letter-spacing: 2px; margin-bottom: 12px; color: #666; } .network-node { display: flex; align-items: center; gap: 12px; margin: 8px 0; padding: 8px; background: #0f0f0f; } .node-dot { width: 12px; height: 12px; border-radius: 50%; animation: pulse 2s infinite; } .node-dot.foundation { background: #ff0000; } .node-dot.corporation { background: #0066ff; } .node-dot.labs { background: #ffa500; } .node-info { flex: 1; } .node-label { font-weight: 700; margin-bottom: 2px; } .node-status { color: #666; font-size: 0.9em; } .grid-title { grid-area: title; z-index: 2; } .grid-sidebar { grid-area: sidebar; min-width: 180px; max-width: 260px; overflow-y: auto; border-right: 2px solid #181818; background: #111; z-index: 1; } .grid-editor { grid-area: editor; overflow: auto; background: #181818; } .grid-right { grid-area: right; min-width: 220px; max-width: 400px; border-left: 2px solid #181818; background: #15151a; overflow-y: auto; } .grid-bottom { grid-area: bottom; border-top: 2px solid #181818; background: #101014; min-height: 120px; max-height: 220px; overflow-y: auto; } .grid-network { position: fixed; right: 24px; bottom: 24px; z-index: 10; } .title-bar { background: #0d0d0d; border-bottom: 2px solid #1a1a1a; padding: 8px 16px; display: flex; align-items: center; justify-content: space-between; position: relative; } .title-bar::after { content: ''; position: absolute; bottom: -2px; left: 0; width: 100%; height: 2px; background: linear-gradient(90deg, #ff0000 33%, #0066ff 33%, #0066ff 66%, #ffa500 66%); } .title-left { display: flex; align-items: center; gap: 20px; } .logo-small { font-size: 1.2em; font-weight: 700; letter-spacing: 3px; } /* ...continue copying the rest of the CSS from the mockup as needed... */