* { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; background: #1e1e1e; color: #d4d4d4; height: 100vh; overflow: hidden; } .container { display: flex; flex-direction: column; height: 100vh; } header { background: #252526; padding: 16px 24px; border-bottom: 1px solid #3e3e42; display: flex; justify-content: space-between; align-items: center; flex-shrink: 0; } h1 { font-size: 20px; font-weight: 600; color: #fff; display: flex; align-items: center; gap: 12px; } .logo { width: 32px; height: 32px; background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); border-radius: 8px; display: flex; align-items: center; justify-content: center; font-weight: bold; color: white; } .main-content { display: flex; flex: 1; overflow: hidden; min-height: 0; } .editor-panel { flex: 1; display: flex; flex-direction: column; border-right: 1px solid #3e3e42; min-width: 0; } .toolbar { background: #252526; padding: 12px 16px; border-bottom: 1px solid #3e3e42; display: flex; gap: 12px; align-items: center; flex-shrink: 0; flex-wrap: wrap; } .language-select { padding: 8px 16px; background: #3e3e42; border: 1px solid #505050; border-radius: 6px; color: #d4d4d4; font-size: 14px; cursor: pointer; outline: none; } .language-select:hover { background: #4e4e52; } .analyze-btn { margin-left: auto; padding: 8px 24px; background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); border: none; border-radius: 6px; color: white; font-size: 14px; font-weight: 600; cursor: pointer; transition: transform 0.2s; } .analyze-btn:hover { transform: translateY(-1px); } .analyze-btn:active { transform: translateY(0); } .analyze-btn:disabled { opacity: 0.5; cursor: not-allowed; } #editor { flex: 1; width: 100%; min-height: 0; } .results-panel { width: 400px; min-width: 400px; max-width: 400px; flex-shrink: 0; background: #252526; display: flex; flex-direction: column; overflow-y: auto; } .results-header { padding: 16px 20px; border-bottom: 1px solid #3e3e42; } .results-header h2 { font-size: 16px; font-weight: 600; color: #fff; } .results-content { padding: 20px; } .empty-state { text-align: center; padding: 60px 20px; color: #858585; } .result-section { margin-bottom: 24px; } .result-section h3 { font-size: 14px; font-weight: 600; color: #fff; margin-bottom: 12px; } .complexity-badge { display: inline-block; padding: 6px 12px; background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); border-radius: 6px; font-size: 18px; font-weight: bold; color: white; font-family: 'Courier New', monospace; } .info-list { list-style: none; padding: 0; } .info-list li { padding: 8px 12px; background: #1e1e1e; border-radius: 4px; margin-bottom: 8px; font-size: 13px; } .chart-container { background: #1e1e1e; padding: 16px; border-radius: 8px; height: 300px; position: relative; } .loading { display: none; padding: 20px; text-align: center; } .loading.active { display: block; } .spinner { border: 3px solid #3e3e42; border-top: 3px solid #667eea; border-radius: 50%; width: 40px; height: 40px; animation: spin 1s linear infinite; margin: 0 auto 12px; } @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } /* Tablet */ @media (max-width: 1024px) { .results-panel { width: 350px; min-width: 350px; max-width: 350px; } header { padding: 12px 16px; } h1 { font-size: 18px; } } /* Mobile */ @media (max-width: 768px) { .main-content { flex-direction: column; } .editor-panel { border-right: none; border-bottom: 1px solid #3e3e42; min-height: 50vh; max-height: 50vh; } .results-panel { width: 100%; min-width: 100%; max-width: 100%; flex: 1; } header { padding: 12px 16px; } h1 { font-size: 16px; } .logo { width: 28px; height: 28px; font-size: 14px; } .toolbar { padding: 8px 12px; gap: 8px; } .language-select { padding: 6px 12px; font-size: 13px; } .analyze-btn { padding: 6px 16px; font-size: 13px; margin-left: auto; } .results-content { padding: 16px; } .result-section { margin-bottom: 20px; } .complexity-badge { font-size: 16px; padding: 4px 10px; } .info-list li { font-size: 12px; padding: 6px 10px; } .chart-container { height: 200px; padding: 12px; } .empty-state { padding: 40px 16px; font-size: 14px; } } /* Small mobile */ @media (max-width: 480px) { header { padding: 10px 12px; } h1 { font-size: 14px; gap: 8px; } .logo { width: 24px; height: 24px; font-size: 12px; } .toolbar { flex-direction: column; align-items: stretch; } .analyze-btn { margin-left: 0; width: 100%; } .editor-panel { min-height: 40vh; max-height: 40vh; } .chart-container { height: 180px; } }